HTTP 首部是用于服务端沟通的一些控制字段,比如写一封信,信的内容是 body,发件人、收件人、地址、邮编等信息就是头部。如下罗列几个常见头部。
请求头部
1. User-agent
作用:向服务器发送浏览器的版本、系统、应用程序的信息。
- 示例:User-agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36
- 解释:Chrome 浏览器的版本信息为 63.0.3239.132,并将自己伪装成 Safari,使用的是 WebKit 引擎,WebKit伪装成 KHTML,KHTML伪装成Gecko(伪装是为了接收那些为Mozilla、safari、gecko编写的界面)
2. Cookie
作用:告诉服务器关于 Session 的信息,存储让服务器辨识用户身份的信息。
当你在模拟接口访问的时候,如果提示需要登录,那么需要获取 Cookie 信息并加入请求头部,一并发送到服务端。
3. Cache-control
作用:控制浏览器的缓存,常见值为 private、no-cache、max-age、alidate,默认为 private,根据浏览器查看页面不同的方式来进行区别
- 示例:Cache-control: max-age=0
- 解释:浏览器在访问了该页面后,不再会访问服务器
4. Referer
作用:告诉服务器该页面从哪个页面链接的
- 示例:Referer:https://www.baidu.com/xxxxxxxxxx
- 解释:该页面从 https://www.baidu.com 中的搜索结果中点击过来的
5. Content-type
作用:设置响应体的媒体资源类型(MIME),也就是告诉服务器请求中的数据类型,使服务器能正确处理
- 示例:Content-type:text/html; charset=UTF-8
- 解释:服务器发送 html 文档,字符集为 UTF-8
- 常见类型:
application/json
JSON格式
application/x-www-form-urlencoded
将键值对的参数用&连接起来,如果有空格,将空格转换为+加号;有特殊符号,将特殊符号转换为ASCII HEX值)
multipart/form-data
文件上传等
响应头部
1. Content-length
作用:HTTP消息实体的传输长度
- 示例:Content-length:24211
- 解释:该实体的传输长度(被 br 压缩后的长度为)24211
2. Content-type
作用:设置响应体的媒体资源类型(MIME),告诉客户端,应该以什么方式来解析响应的数据。
- 示例:Content-type:text/html; charset=UTF-8
- 解释:服务器发送 html 文档,字符集为 UTF-8
3. Content-encoding
作用:设置数据使用的编码类型(压缩类型)
- 示例:Content-encoding:gzip
- 解释:数据使用 gzip进行压缩后返回到浏览器上
4. Set-cookie
作用:设置 http 的 Cookie, 告诉浏览器,需要把 Set-cookie 携带的内容加入 浏览器Cookie中保存
5. Age
作用:表明该响应从缓存中拿到时响应的寿命,代理服务器当前的系统时间与此应答消息中的通用消息头Date的值之差
- 示例:Age:1037016
- 解释:该响应在缓存代理中存放了 1037016 秒
6. Date
作用:设置响应被服务器创建的时间
- 示例:Date:Thu, 15 Feb 2018 20:31:45 GMT
- 解释:在 GMT(格林威治标准时间)Thu, 15 Feb 2018 20:31:45,发送的响应
7. Expires
作用:设置响应体的过期时间。如果在过期之前进行访问,就会读取缓存中的版本。
- 示例:Expires:Fri, 01 Feb 2019 17:33:57 GMT
- 解释:在 GMT(格林威治标准时间)Fri, 01 Feb 2019 17:33:57,在这个时间之前,客户端不用再向服务器发送请求
- 延伸:如果和 Cache-control 同时存在,那么被其中的 max-age 覆盖
还有一部分是自定义的首部:
所谓自定义,是指并没有在 RFC 标准中定义的。
X-frame-options:点击劫持保护;
X-xss-protection:设置浏览器的 XSS 防护机制,浏览器如果检测到恶意代码,则不渲染恶意代码;
注:RFC,Request for Comments 征求修正意见书。是HTTP的规范标准。