一. HTTP消息都包含什么内容?
HTTP 消息就是指服务器和客户端之间交换的数据。和古代写信一样的。 信件就是类似HTTP消息。信件一般分为来信和回信。 对应的HTTP 消息也分为2种。
●请求— 类似来信,就是客户端发给服务器端的信息。
●响应—类似回信,服务器的应答信息。
下面用抓包工具抓到的请求和响应内容详细解读下HTTP消息都包含什么内容。
一) HTTP 请求它包含 三部分,起始行,HTTP 头以及HTTP body。中间空行不算。
1. 起始行 起始行包含三要素:
a.HTTP 方法。 Postman 支持的HTTP 方法昨天给大家截图了。包含如下方法,都可以在Postman中测试。
2. HTTP URL, 上图中是 / c. HTTP 协议版本。目前有HTTP 1.0, HTTP 1.1, HTTP2.0, 绝大多数使用 HTTP1.12. HTTP 请求头 HTTP请求头包含三部分。见下图。
1.General headers,适用于整个报文。
2.Request headers,通过进一步的定义或者给定上下文或者进行有条件的限制 来修改请求。
3.Entity headers,给请求的 body用的。如果请求中没有任何 body,就不会有这个头。
3. Body 请求的最后一部分是它的body。一般获取资源的请求, Get Head DELETE 和OPTIONS,通常不需要body。有些请求将数据发送到服务器以便更新数据,常见的post 请求(包含HTML 表单数据)。Body 大致可分为两类:
1.Single-resource bodies,由一个单文件组成。该类型 body 由两个 header 定义:Content-Type 和 Content-Length.
2.Multiple-resource bodies,由多部分 body 组成,每一部分包含不同的信息位。通常是和 HTML Forms 连系在一起。
二)HTTP 响应响应中和HTTP 请求部分相同的就不说了。重点说一下不同部分。
1.起始行(状态行)
HTTP 响应的起始行被称作 状态行 (status line),包含以下信息:
1.协议版本,通常为 HTTP/1.1。
2.状态码 (status code),表明请求是成功或失败。常见的状态码是 200,404,或 302。
3.状态文本 (status text)。一个简短的,纯粹的信息,通过状态码的文本描述,帮助人们理解该 HTTP 消息。
一个典型的状态行看起来像这样:HTTP/1.1 404 Not Found。
2. HTTP 响应头
响应头可以分为几组:
1.General headers,用于整个报文。
2.Response headers,提供其它不符合状态行的关于服务器的信息。
3.Entity headers,来自请求的 body。如果请求中没有任何 body,则不会有这个头。
3. Body
响应的最后一部分是 body。不是所有的响应都有 body:具有状态码 (如 201 或 204) 的响应,通常不会有 body。Body 大致可分为三类:
- 1.Single-resource bodies,由已知长度的单个文件组成。该类型 body 由两个 header 定义:Content-Type 和 Content-Length。
- 2.Single-resource bodies,由未知长度的单个文件组成,通过将 Transfer-Encoding 设置为 chunked 来使用 chunks 编码。
- 3.Multiple-resource bodies,由多部分 body 组成,每部分包含不同的信息段。但这是比较少见的。
关于HTTP消息部分已经介绍完毕了。开始把这个消息和Postman 关联起来啦。二. 如何在Postman 中设置 HTTP 消息?
一) HTTP 请求HTTP 方法 和URL 填入上面部分。
HTTP 请求headers 填入下面部分
HTTP请求的body 填入下面部分
点击保存,HTTP请求就填写 好了。点击发送后我们看下HTTP 响应。二)HTTP 响应
完整的响应部分见下图。
先看状态码。
再看响应Header
再看看 响应的body
HTTP消息在Postman 中的应用 已经介绍完毕了。 你学会了吗?
如果你也想学习如何使用Postman 工具,欢迎跟着阿萨 一起完成21天打卡学习。