gpt4 book ai didi

php - HTTP 请求 URL 不是 HTTP 请求 header 的一部分吗?

转载 作者:可可西里 更新时间:2023-11-01 13:11:32 28 4
gpt4 key购买 nike

这是维基百科文章的摘录:

In contrast to the GET request method where only a URL and headers are sent to the server, POST requests also include a message body.

据此,URL 似乎与 header 分开发送,但如果是这样,我们为什么要使用 PHP 中的 header() 方法来设置要重定向到的 URL?

header("Location: http://google.com");

最佳答案

当您想从浏览器中浏览一个 URL 时,您可以输入一个 URL。浏览器将 url 放入 HTTP REQUEST 中,如下所示:

GET /path/to/resource.php?var=data1&othervar=data2 HTTP/1.1
Host: example.com
Connection: keep-alive
"empty line"

然后网络服务器会给你这样的答案:

HTTP/1.0 200 OK
Date: Fri, 02 Sep 2011 14:37:36 GMT
Server: Apache
Cache-Control: private, s-maxage=0, max-age=0, must-revalidate
Content-Encoding: gzip
Vary: Accept-Encoding
Content-Length: 149
Content-Type: text/javascript; charset=utf-8
Connection: keep-alive
"empty line"
"149 bytes of Response data"

像“Header-Name: header_value\r\n”这样的每一行都是一个标题。
PHP header 函数在将响应发送到用户浏览器之前将 header 添加到响应中。
在您的示例中, header 是:

Location: http://google.com

它被添加到“空行”(这是一个只包含\r\n 的行)之前的最后一个标题之后。
POST 请求不同于 GET 请求,因为您在“空行”之后有一个请求主体:

POST /path/to/resource.php HTTP/1.1
Host: example.com
Connection: keep-alive
Content-Length: "number of bytes in the body"
"empty line"
variable=data&othervar=data2

总之,HTTP 请求是这样的:

  1. 请求/响应行(POST 或 GET 后跟请求的 url 和 http 版本,Http 版本后跟响应代码和响应字符串)以\r\n 结尾
  2. 请求/响应 header ( header 名称:header_value\r\n)
  3. 空行 (\r\n)
  4. 响应/请求正文

附言。行总是以“\r\n”字节结束(“空行”仅由这两个字节组成)。

关于php - HTTP 请求 URL 不是 HTTP 请求 header 的一部分吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7284953/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com