HTTP Header解析
HTTP Header又叫HTTP头,几乎是面试中的必考题。为了更直观地理解HTTP头的内容,我们可以使用chrome浏览器的开发者模式。如图,我们在百度一个发送一个查询请求,然后按F12进入开发者模式,点击Network,这样就能看到HTTP头的内容。
HTTP 头包括以下几个部分:通用头、响应头、请求头。其中,请求头和响应头最为重要。
以下部分内容参考了:
https://kb.cnblogs.com/page/92320/
http://blog.youkuaiyun.com/hufan11100914/article/details/48029633
http://blog.youkuaiyun.com/u012572955/article/details/50144535
1、通用头 General
Request URL :请求的url
Request Method : 请求的方法,可以是GET、POST
Status Code:HTTP 状态码,表示请求成功
Remote Address:远程IP地址
Referrer Policy 参考自:https://juejin.im/entry/5976b5356fb9a06bcb7fd611
当从一个链接跳到另一个链接,另一个链接的referer就记录了是从哪个链接跳来的。Referrer Policy就是管理这个来源信息的机制。
unsafe-url:无论是同源请求还是非同源请求,都发送完整的 URL(移除参数信息之后)作为引用地址。
2、响应头 Response Headers
Cache-Control:
以下参考自:http://blog.youkuaiyun.com/u012572955/article/details/50144535
指定请求和响应遵循的缓存机制,
Public 指示响应可被任何缓存区缓存。
Private 指示对于单个用户的整个或部分响应消息,不能被共享缓存处理。这允许服务器仅仅描述当用户的部
分响应消息,此响应消息对于其他用户的请求无效。
Content-Encoding:内容的压缩类型,此处是gzip
Content-Length:返回的内容的长度
Content-type:返回的内容类型,此处是html
Connection:
以下参考自:http://blog.youkuaiyun.com/hufan11100914/article/details/48029633
例如: Connection: keep-alive 当一个网页打开完成后,客户端和服务器之间用于传输HTTP数据的TCP连接不会关闭,如果客户端再次访问这个服务器上的网页,会继续使用这一条已经建立的连接
例如: Connection: close 代表一个Request完成后,客户端和服务器之间用于传输HTTP数据的TCP连接会关闭, 当客户端再次发送Request,需要重新建立TCP连接。
Date:请求的日期
Expires: 响应过期的日期和时间
Server:服务器
3、请求头 Request Headers
Accept:浏览器能够接收的内容类型,如text/javascript
Accept-Encoding:浏览器支持的压缩编码类型。
Accept-language:浏览器支持的语言
Cookie:HTTP请求发送时,会把保存在该请求域名下的所有cookie值一起发送给web服务器。
Host:指定请求的服务器的域名和端口号
Referer: 先前网页的地址,当前请求网页紧随其后,即来路
User-Agent:包含发出请求的用户信息
4、附:Query String Parameters
小结
General
- Request URL
- Request Method
- Status Code
- Remote Address
Response Headers
- Connection:Keep-Alive
- Content-Encoding、Content-Length、Content-Type
- Date
- Cache-Control
Request Headers
- Accept、Accept-Encoding、Accept-Encoding
- Connection
- Cookie
- User-Agent