1. HTTP报文是在HTTP应用程序之间发送的数据块。
1.1 HTTP使用术语 流入(inbound) 和流出 (outbound) 来描述事务处理 (transaction) 的方向。 报文流入源端服务器,工作完成之后,会流回用户的 Agent 代理中。
2. HTTP报文是简单的格式化数据块。它们由三部分组成: 对报文进行描述的 起始行 (start line) 、包含属性的 首部 (header) 块,以及可选的、包含数据的 主体 (body) 部分。
2.1 所有的HTTP报文都可以分为两类: 请求报文 (request message) 和 响应报文 (response message)。请求报文会向Web服务器请求一个动作。响应报文会将请求的结果返回给客户端。请求和响应报文的基本报文结构相同。
这是请求报文的格式:
<method> <request-URL> <version>
<headers>
<entity-body>
这是响应报文的格式 (注意,只有起始行的语法有所不同) :
<version> <status> <reason-phrase>
<headers>
<entity-body>
下面是对各部分的简要描述。
方法(method)
客户端希望服务器对资源执行的动作。是一个单独的词,比如GET、HEAD或POST
请求URL (request-URL)
命名了所请求资源,或者URL路径组件的完整URL。
版本 (version)
报文所使用的HTTP版本 ,HTTP / <major> . <minor> ,其中主要版本和次要版本都是整数。
状态码 (status-code)
这三位数描述了请求过程中所发生的情况。
原因短语 (reason-phrase)
数字状态码的可读版本,包含行终止序列之前的所有文本。
首部 (header)
可以有零个或多个首部,每个首部都包含一个名字,后面跟着一个冒号(:),然后是一个可选的空格,接着是一个值,最后是一个CRLF。首部是由一个空行(CRLF)结束的,表示了首部列表的结束和实体主体本分的开始。
实体的主体部分 (entity-body)
实体的主体部分包含一个有任意数据组成的数据块。并不是所有的报文都包含实体的主体部分,有时报文只是以一个CRLF结束。
请求和响应报文
网友评论