像this这样的问题和像this这样的材料提供了很多关于HTTP POST的有用信息...但是我找不到任何一个澄清第二个URL的作用(或者它是一个URI,或者在POST请求标题的第一行中,还有其他内容,甚至是次要的?:
POST /second/url/here/ HTTP/1.1
请求本身被发送到URL(URI?),从某种意义上说,这对我来说是“主要的”。有人可以澄清两者的作用,以及为什么它们会尽可能相同或不同?
(PS可能曾经很明显,没有人认为它可能需要解释。但是现在当你谷歌搜索“HTTP POST”时,互联网出现了一半,并且几乎不可能看到森林中的树木...... )
答案 0 :(得分:1)
我不知道帽子是第一个和第二个网址。我只看到一个。并且它不是在身体中,而是在第一行。
L01 POST /something?query=string HTTP/1.1\r\n
L02 Host: www.example.com\r\n
L03 Foo: here another header content\r\n
L04 Content-Length: 26\r\n
L05 \r\n
L06 This=is+the+body&arg=val\r\n
让我们从底部分析这个:
L06
:这是 body ,大小为26个八位字节,并且包含一些数据,此主体的格式可能更复杂,如fom-url编码, gzipped,可能包含其他一些\r
和\n
等。取决于标题列表。L05
:body separator L04
:其中一个标题,正文大小L03
:另一个标题(您可以拥有大量标题)L02
:重要的标头,在HTTP版本1.1上使用主机标头必须,告诉服务器您真正想要哪个虚拟主机L01
:第一行。**第一行**是:
METHOD URL PROTOCOL
其中:
METHOD
:是POST URL
:是/something?query=string
,?
之后的所有内容都是查询字符串,它不表示文档(这是第一部分的工作),但是有一些额外的参数(唯一可以与GET查询一起使用的方法)。PROTOCOL
:是HTTP / 1.1,意味着您正在与HTTP协议1.1版进行通信