HTTP协议定义了请求报文和响应报文的格式。我们把两种格式并列以示比较。
每一种报文由四个部分组成。请求报文中的第一部分称为请求行;响应报文的第一部分称为状态行。其他三部分在请求报文和响应报文中有相同的名称。然而,这三部分只是名称相似,它们可能含有不同的内容。

请求报文
请求行
- 方法: 定义了请求类型
- GET : 发送一个请求,报文主体为空。
- HEAD : 客户仅需要从服务器获得关于网页的消息,比如上次修改的时间。也可以用来检测URL的有效性。这种情况下的响应报文只有头部,主体是空的。
- PUT:允许客户将一个新的页面发送到服务器上。
- POST : 与PUT方法类似,但是它用来发送一些消息到服务器上,这些信息被加入网页或用来修改网页。
- TRACE :用来调试,客户要求服务器回送请求来检查服务器是否正在获取请求。
- DELETE : 如果客户获得许可,该方法允许客户删除一个服务器上的网页。
- CONNECT : 原先作为预留方法,这个方法可能被代理服务器使用。
- OPTIONS : 允许客户询问网页属性。
- URL
- 版本
请求头部
在请求行之后可以有一个或多个请求头部行。每一个头部行都从客户端向服务器发送额外的信息,每个头部行有头部名字、一个冒号、一个空格和一个头部值,值字段定义了与每个头部名字相关的值。值列表可以在相应的RFC中查找。

主体
根据方法类型,主体可以为空的。
响应报文
状态行
- 版本: 定义了HTTP协议的版本,通常为1.1
- 状态码: 定义了请求的状态,包含三个数字
- 100:只代表一个报告
- 200:表示这是一个成功的请求
- 300:表示把客户端重定向到另一个URL
- 400:表示在客户端发生错误
- 500:表示错误发生在服务器端
- 短语:以文本格式解释了状态码
响应头部
在状态行之后,可以有一个或多个响应头部行。每一个头部行都从服务器向客户端发送额外的信息。

主体
包含了从服务器发送给客户的文档。除非响应是一个错误报文,否则主体是存在的。
举例


