本文部分参考
《图解HTTP》——人民邮电出版社
《HTTP权威指南》——人民邮电出版社
及前辈分享的文章
1.https://blog.csdn.net/rainysia/article/details/8131174
2.https://blog.csdn.net/bbwangj/article/details/81321046?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task
一、分类
Http header的分类有两种说法:
1.General Header, Request Header, Response Header, Entity Header。
分别对应:通用首部(可以在客户端、服务器和其他应用程序之间提供一些通用功能)、请求首部、响应首部和实体首部(用于应对实体主体部分的首部)。
2.根据维基百科对http header内容的组织形式,大体分为Request和Response两部分。
主要解释第二种分类方法。
(一)请求头 Request Headers
请求首部是只在请求报文中有意义的首部。
用于说明是谁或什么在发送请求、请求源自何处,或者客户端的喜好及能力。服务器可以根据请求首部给出的客户端信息,试着为客户端提供更好的响应。
Accept:浏览器能够接收的内容类型,如text/javascript
Accept-Encoding:浏览器支持的压缩编码类型。
Accept-language:浏览器支持的语言
Cookie:HTTP请求发送时,会把保存在该请求域名下的所有cookie值一起发送给web服务器。
Host:指定请求的服务器的域名和端口号
Referer: 先前网页的地址,当前请求网页紧随其后,即来路
User-Agent:包含发出请求的用户信息
具体表格参见
https://blog.csdn.net/qq_33890670/article/details/80060214?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task
(二)响应头 Response Headers
响应首部为客户端提供了一些额外信息,比如谁在发送响应、响应者的功能,甚至与响应相关的一些特殊指令。这些首部有助于客户端处理响应,并在将来发起更好的请求。
Content-Encoding:内容的压缩类型是gzip
Content-type:返回的内容类型是html
Content-Length:返回的内容的长度
Date:显示当前的时间
Expires: 响应过期的日期和时间
Server:服务器
具体表格参见
https://blog.csdn.net/qq_33890670/article/details/80060214?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task
二、Headers常见问题
(一)跨域
“跨域:指的是浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器对javascript施加的安全限制。”
解决方法:
1.在网关服务中引入CorsFilter,指定或者放开所有的域名和header。
2.调整代理服务器如nginx。
(二)http协议中不支持中文的header
传递信息需要先转码,且接收端需要解码。
(三)header丢失
(四)header注入漏洞(SQL注入)