一、内容协商
1、Accept:希望服务器返回的数据格式,如下面的:text/javascript, application/javascript, application/ecmascript, application/x-ecmascript
q=0.01表示优先级,参数越高表示浏览器对这种数据格式越支持,没有带q值默认q=1
Accept: text/javascript, application/javascript, application/ecmascript, application/x-ecmascript, */*; q=0.01
2、Accept-Charset:希望服务器返回的字符集,q值同上,备注:utf-8;q=0.7为一组,表示utf-8的优先级为0.7
Accept-Charset: ISO-8859-1,gb2312,utf-8;q=0.7,*;q=0.3
3、Accept-Language:希望服务器返回的语言
Accept-Language: zh-CN,zh;q=0.9
4、Accept-Encoding:希望服务器返回的压缩格式
Accept-Encoding: gzip, deflate, br
二、缓存控制
1、If-None-Match:服务器使用md5等哈希函数对内容进行计算得出摘要返回给浏览器,下次浏览器请求服务器时会将该摘要放在If-None-Match带过去,服务器对最新的内容进行哈希计算得出新的摘要和浏览器带过来的摘要进行对比,如果一致,则返回304让浏览器从缓存中获取内容
2、If-Modified-Since:服务器将数据的最新修改时间返回给浏览器,下次浏览器请求服务器时会将该修改时间放在If-Modified-Since中带到服务器中,服务器对比数据最新的修改时间和浏览器带过来的时间,如果一致,则返回304
3、If-Match:服务器使用md5等哈希函数对内容进行计算得出摘要返回给浏览器,下次浏览器请求服务器时会将该摘要放在If-Match带过去,服务器对最新的内容进行哈希计算得出新的摘要和浏览器带过来的摘要进行对比,如果一致,则修改内容,不一致,证明内容已经被其他人修改了,则不能对该内容进行修改
4、If-Unmodified-Since:服务器将数据的最新修改时间返回给浏览器,下次浏览器请求服务器时会将该修改时间放在If-Unmodified-Since中带到服务器中,服务器对比数据最新的修改时间和浏览器带过来的时间,如果一致,则修改内容,不一致,证明内容已经被其他人修改了,则不能对该内容进行修改
5、If-Range
三、其他常用头
1、User-Agent:告诉服务器,浏览器当前的系统及相关信息
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36
2、Referer:用于请求跟踪,告诉服务器,当前页面是从哪一个页面跳转过来的
Referer: https://www.baidu.com
3、Host:请求是客户端的域名
Host: www.baidu.com
4、Connection: Keep-Alive 浏览器和服务器建立一个长连接,避免多次三次握手和四次挥手造成低效连接