HTTP报文
2018-04-23 本文已影响32人
fenerchen
报文的组成
报文有三部分组成:对报文描述的起始行、包含属性的首部和包含数据的主体。


每行以ASCII终止,ASCII包括回车符和换行符,简称CRLF。稳健的应用程序也接受耽搁换行符作为行终止。
首部和主体之间必须要有回车+换行。

报文语法
请求报文格式:
<method>空格<request-URL> 空格<version>空格+回车
<headers>
空格+回车
<entity-body>
响应报文格式:
<version>空格<status>空格<reason-phrase>
<headers>
空格+回车
<entity-body>
- 方法(method)
客户端希望服务器对资源执行的动作。比如GET、POST、PUT等。GET和HEAD是安全的方法,他们的请求在服务器上不会产生什么结果,也不是说什么动作都不知晓,有时候允许HTTP应用程序开发者通知用户,例如点击付款,浏览器可能会弹出警告。 - 请求URL(request-URL)
请求资源的路径。 - 版本(version)
报文所使用的HTTP版本。HTTP/1.22的版本比HTTP/1.3的版本高。 - 状态码(status-code)
三位数字描述了请求过程中所发生的情况。 - 原因短语(reason-phrase)
状态码的可读版本。 - 首部(header)
可以有0个或多个首部。每个首部的格式名字+:+可选空格(可有可无)+值。Host:www.jose-hardware.com
,请求头中的Host表示接受请求的服务器的域名(包括主机名和端口号)。HTTP/1.1要求首部不能空。首部延续行,必须至少一个空格或tab。例如:
Server: Test Server
Version 1.0
- 实体的主体部分(entity-body)
任意数据组成的数据库。并不是所有的报文都有实体的主体部分。