HTTP报文
一、报文的语法
1. 报文的格式
(1) .请求报文的格式
<method> <request-URL> <version> <headers>
<entity-body>
(2) .响应报文的格式
<version> <status> <reason-phrase> <headers>
<entity-body>
2. 报文的格式 各部分的简要描述
(1) .方法(method)
客户端希望服务器对资源执行的动作。是一个单独的词,比如 GET、HEAD 或 POST。本章稍后将详细介绍方法
(2) .请求URL(request-URL)
命名了所请求资源,或者 URL 路径组件的完整 URL。如果直接与服务器进行对 话,只要 URL 的路径组件是资源的绝对路径,通常就不会有什么问题——服务 器可以假定自己是 URL 的主机 / 端口
(3) .版本(version)
报文所使用的 HTTP 版本,其格式看起来是这样的:
HTTP/.
其中主要版本号(major)和次要版本号(minor)都是整数
(4) .状态码(status-code)
这三位数字描述了请求过程中所发生的情况。每个状态码的第一位数字都用于描 述状态的一般类别(“成功”、“出错”等)。本章稍后提供了 HTTP 规范定义的状 态码及其含义的完整列表。
(5) .原因短语(reason-phrase)
数字状态码的可读版本,包含行终止序列之前的所有文本。本章稍后提供了 HTTP 规范定义的所有状态码的原因短语示例。原因短语只对人类有意义,因 此,比如说,尽管响应行 HTTP/1.0 200 NOT OK 和 HTTP/1.0 200 OK 中原因短 语的含义不同,但同样都会被当作成功指示处理。
(6) .首部(header)
可以有零个或多个首部,每个首部都包含一个名字,后面跟着一个冒号(:),然 后是一个可选的空格,接着是一个值,最后是一个 CRLF。首部是由一个空行 (CRLF)结束的,表示了首部列表的结束和实体主体部分的开始。有些 HTTP 版 本,比如 HTTP/1.1,要求有效的请求或响应报文中必须包含特定的首部。本章 稍后会探讨各种 HTTP 首部
(7) .实体的主体部分(entity-body)
实体的主体部分包含一个由任意数据组成的数据块。并不是所有的报文都包含实 体的主体部分,有时,报文只是以一个 CRLF 结束