报文流
流入:报文流入源服务器
流出:工作完成后,流向用户 Agent 代理中
无论是请求报文还是响应报文,都会向 下游 流动。
报文的发送者永远在接收者的 上游。
报文的组成
请求报文
- 起始行 <method> <request-URL> <version>
- 首部 <headers>
- 主体 <entity-body>
响应报文
- 起始行 <version> <status> <reason-phrase>
- 首部 <headers>
- 主体 <eneity-body>
起始行
请求行
请求报文的起始行称为请求行,请求报文请求服务器对资源进行一些操作
相应行
响应报文的起始行称为相应行,响应报文承载状态信息和操作产生的数据,返回给客户端
method(方法)
客户端希望服务器对资源执行的动作
| 方法 | 描述 | 是否包含主体 |
|---|---|---|
| GET | 从服务器获取文档 | 否 |
| HEAD | 从服务器获取文档首部 | 否 |
| POST | 向服务器发送需要处理的数据 | 是 |
| PUT | 将请求主体保存在服务器 | 是 |
| TRACE | 对可能经过代理传送到服务器的报文进行追踪 | 否 |
| OPTIONS | 决定可以在服务器上执行的方法 | 否 |
| DETELE | 在服务器上删除文档 | 否 |
request-URL(请求 URL)
请求资源的URL
version(版本)
报文使用的HTTP版本,格式HTTP/<主版本号>.<次要版本号>
ststus(状态码)
三位数字,告诉客户端请求过程中的发生的情况
- 100~199:信息状态码
- 200~299:成功状态码
-
300~399:重定向状态码
告知客户端使用替代位置访问资源,或者提供替代响应而不是资源 - 400~499:客户端错误状态码
- 500~599:服务器错误状态码
| 状态码 | 原因短语 | 含义 |
|---|---|---|
| 100 | Continue | 客户端询问是否可以在后续请求中发送附件 |
| 200 | OK | 一切正常 |
| 201 | Created | 表示服务器在请求中建立了新文档 |
| 202 | Accept | 告诉客户端请求正在被执行 |
| 301 | Moved Permanently | 请求的文档在别处,响应行中会给出行URL |
| 401 | Unauthorized | 需要输入用户名密码 |
| 404 | Not Found | 无法找到资源 |
| 502 | Bad Gateway | 接收服务器接收到远程服务器的错误响应 |
| 503 | Service Unavailable | 服务器无响应 |
| 504 | Gateway Timeout | 接收服务器没有从远程服务器得到及时响应 |
reason-phrase(原因短语)
数字状态的可读版本
headers(首部)
零个或多个,格式<名字>:<值>,由一个空行结束
分类
通用首部
既可以出现在请求报文中,也可以出现在响应报文中
例如:Date: Tue, 3 Oct 1974 02:16:00 GMT,说明构建报文时间
请求首部
提供更多有关请求的信息
例如:Accept: */*,客户端告知服务器愿意接受任意媒体类型
响应首部
提供更多有关响应的信息
例如:Server: Tiki-Hut/1.0,告知客户端与之交流的服务器的Tiki-Hut
实体首部
描述主体的长度和内容,或者资源自身
例如:Content-Type: text/html; charset=iso-latin-1,告知应用程序数据类型
扩展首部
规范中没有定义的新首部
entity-body(实体的主体部分)
包含一个由任意数据组成的数据块,并不是所有报文都拥有主体
想了解更多关于HTTP 报文介绍的内容,请扫微信
或微信搜索jiemingpan
版权说明:本文版权由作者自行负责,如有侵权请联系本站删除。