简单了解HTTP报文及示例
- HTTP报文
- 请求报文
- 响应报文
- 通用首部字段
- Cache-Control
- Connection
- Date
- 请求首部字段
- Accept
- Accept-Charset
- Accept-Encoding
- Accept-Language
- Host
- If-Match
- If-Modified-Since
- If-None-Match
- Referer
- User-Agent
- 响应首部字段
- Accpet-Ranges
- Age
- Location
- Server
- 实体首部字段
- Allow
- Content-Encoding
- Content-Language
- Content-Type
- Expire
- Last-Modified
HTTP报文
- 报文首部 – 客户端和服务器处理的请求或响应的内容以及属性。
- 报文主体 – 应该被发送的数据。
请求报文
客户端的HTTP报文
请求行 – 方法、URL、HTTP 版本
首部字段:
- 请求首部字段
- 通用首部字段
- 实体首部字段
响应报文
服务器的HTTP报文
状态行 – HTTP版本、状态码
首都字段:
- 响应首部字段
- 通用首部字段
- 实体首部字段
HTTP首部字段类型
- 通用首部字段–请求报文和响应报文,都会使用的首部
- 请求首部字段-- 从客户端向服务器发送请求报文时使用的首部
- 响应首部字段-- 从服务器向客户端返回响应报文使用的首部
- 实体首部字段–请求报文和响应报文使用的首部
通用首部字段
Cache-Control
能操作缓存的工作机制。
- public : 表明其他用户可以利用缓存
- private:响应只以特定的用户作为对象
- no-cache:为了防止从缓存中返回过期的资源
Connection
作用:
1.控制不在转发给代理的首部字段
connection:不在转发的首部字段
Hop-by-hop
2.管理持久连接
- Connection:close - 明确的断开连接
- Connection:Keep-Alive - 持久连接
Date
表明创建HTTP报文的日期和时间
请求首部字段
作用:补充一些请求的附加信息、客户端信息、对响应内容相关的优先级等
Accept
能够处理的媒体类型及媒体类型的相对优先级。
Accept: text/html, application/xhtml+xml,application/xml;q=0.9
- 文本文件
- text/html —— HTML格式, text/plain——纯文本格式, text/css——css格式
- 组合 application/xhtml+xml, application/xml ,application/json,application/pdf
- 图片文件
- image/jpeg – jpge 格式, image/gif, image/png
- 视频
- video/mpeg, video/quicktime
- 应用程序中使用的二进制文件
- application/octet-stream,application/zip,application/x-www-from-urlencoded
q=0.9 权重
范围 : 0-1 可以精确到小数点后两位
1 位最大值
不指定权重 q 值时,默认权重为 q=1.0。
Accept-Charset
来通知服务器期望支持的字符集
Accept-Charset: charset=utf-8
Accept-Encoding
告知服务器期望支持的内容编码
- gzip
- compress
- deflate
- identity —— 不执行压缩或者不会变化的默认编码格式
Accept-Language
来告知服务器期望能够处理的自然语言集(值中文或英文等)
Accept-Language: zh-cn,zh;q=0.7,en-us,en;q=0.3
Host
Host:www.baidu.com
告知服务器,请求的资源所处的互联网主机名和端口号。
Host首部字段在HTTP/1.1规范内是唯一一个必须被包含在请求内部的首部字段。
If-Match
像If-XXX 条件请求
服务器接收到附带条件的请求后,只有判断指定条件为真,才会执行请求。
If-Match:“12345”
两端资源进行比较,只有判断条件为真才会接收请求。
If-Modified-Since
如果服务器If-Modified-Since早于资源的更新时间,希望能处理请求
304
If-None-Match
实体标记(ETag)值和请求资源的ETag的值不一致的时候,告知服务器处理请求。
Referer
告知服务器,请求的原始资源的地址。
User-Agent
客户端的信息传给服务器
内容包含:操作系统/版本、浏览器/版本、设备信息(移动端)/版本
响应首部字段
用于补充响应附加信息、服务器信息、对客户端的附加要求。
Accpet-Ranges
告诉客户端,我的服务器是否可以接受范围请求,是
bytes
,否none
Age
资源在代理缓存中存在的时间
Location
客户端重定向到某个RUL
Server
服务器的名字:
Apache Nginx BWS ...
实体首部字段
Allow
资源的正确请求方式:
GET HEAD POST
服务器接收到了不支持的HTTP方法,会以状态码405返回
Content-Encoding
告知客户端服务器对实体的主体部分选用的内容编码方式
- gzip
- compress
- deflate
- identity
Content-Language
告知客户端,实体主体使用的自然语言(中文或英文等)
Content-Type
说明了实体主体内对象的媒体类型
text/html charset=utf-8
Expire
资源失效日期
缓存服务器,如果接受到了这个字段,会以缓存应答,如果在这个时间之前,响应的副本会一直保存,如果超过了这个时间,会转发给源服务器。
如果源服务器不希望缓存服务器对资进行缓存,那么这个时间设置为Date相同的时间即可。
Last-Modified
指明资源最终修改的时间
好啦~就到这里吧,文章还是有点点长,大家可以捡自己重点的关注的看哟!