HTTP POST请求中有多少个URL / URI,它们是什么?

时间:2016-02-18 23:51:01

标签: http

this这样的问题和像this这样的材料提供了很多关于HTTP POST的有用信息...但是我找不到任何一个澄清第二个URL的作用(或者它是一个URI,或者在POST请求标题的第一行中,还有其他内容,甚至是次要的?:

POST /second/url/here/ HTTP/1.1

请求本身被发送到URL(URI?),从某种意义上说,这对我来说是“主要的”。有人可以澄清两者的作用,以及为什么它们会尽可能相同或不同?

(PS可能曾经很明显,没有人认为它可能需要解释。但是现在当你谷歌搜索“HTTP POST”时,互联网出现了一半,并且几乎不可能看到森林中的树木...... )

1 个答案:

答案 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版进行通信