0

GET 请求不包含任何 HTTP 正文数据,但如果它以查询字符串的形式提供一些补充数据属性,它们在 GET 请求的 Header 或 Body 中存储在哪里?它们是否也存储在标题中?

例子

...form?email=hi@world.com&comments=good%20site
4

2 回答 2

2

URI 属性随GET请求一起发送。如果您从服务器请求页面,则浏览器正在向网络服务器发送请求,如下所示:

<open the connection to www.server.com>
GET /form HTTP/1.1
<server sends document>

如果您GET发出包含数据的请求,您已经指出的字符串将被简单地添加到 URI

<open the connection to www.server.com>
GET /form?email=hi@world.com@comments=good%20site HTTP/1.1
<server sends document>

这样做的缺点是,在默认 web 服务器日志记录打开的情况下,客户端发送的所有数据都将写入服务器日志,因为它是请求 URI 的一部分!

如需参考,请查看此处:超文本传输​​协议 -- HTTP/1.1

于 2012-12-06T13:17:06.700 回答
0

您引用的属性实际上称为查询字符串(“?”之后的所有内容都被视为查询字符串),并且查询字符串只是整个 URL 的一部分,因此是标头的一部分。它们没有被放入体内。

于 2012-12-06T13:15:32.247 回答