当前位置:首页 > Web开发 > 正文

Web服务器将发送该文档的最新版本给浏览器客户端与缓存有关的header我们来看看每个header的具体含义

2024-03-31 Web开发

http请求和http响应中有很多的header,http请求要领和http  header共同事情,配合决定客户端和处事器端能够做什么工作。

header叫做首部或者头域也可以直接叫做header。

http请求中有header,http响应中也有header,使用fiddler的raw选项卡可以看到完整的header

fiddler中的headers选项卡把header进行了分类,便利检察;

header的语法格局是:key:value;一行一个header。

技术图片

技术图片

====================================================================================================================================

技术图片

Accept:暗示浏览器客户端可以接收的媒体类型; Accept:text/html 代表浏览器可以接收处事器返回html; 通配符*代表任意类型;例如:Accept:text/html,*/*;q=0.8代表浏览器可以措置惩罚惩罚所有的类型。一般浏览器发送的就是这个; Accept-Encoding:跟压缩有关,浏览器发送http请求给web处事器,http请求中的header有Accept-Encoding:gzip,deflate(报告处事器,浏览器撑持gzip压缩) Accept-language:浏览器声明本身接受的语言;例如:Accept-Language: zh-CN,zh;q=0.9 Accept-Charset:浏览器申明本身接收的字符集,这就是本文前面介绍的各类字符集和字符编码,如gb2312,utf-8(凡是我们说Charset包孕了相应的字符编码方案); +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ GET https://cambrian-images.cdn.bcebos.com/[email protected]_100,h_100 HTTP/1.1 Host: cambrian-images.cdn.bcebos.com Connection: keep-alive If-Modified-Since: Sun, 25 Aug 2019 17:19:19 GMT User-Agent: Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.97 Safari/537.36 Accept: image/webp,image/apng,image/*,*/*;q=0.8 Sec-Fetch-Site: cross-site Sec-Fetch-Mode: no-cors Referer: https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&rsv_idx=1&tn=sitehao123&wd=%E4%B8%AD%E5%9B %BD&rsv_pq=ee5e88db00155eb1&rsv_t=9b46NVmtUvhHk8NuPqytTgFcpScJZfmNOSxhFBaAu5rlcjCsQ9PfON8N98xNepLuQQ&rqlang=cn&rsv_enter=0&rsv_dl=tb&rsv_sug3=10&rsv_sug1=1&rsv_sug7=00 1&prefixsug=%25E4%25B8%25AD%25E5%259B%25BD&rsp=8&rsv_sug9=es_0_1&inputT=10643&rsv_sug4=12203&rsv_sug=9 Accept-Encoding: gzip, deflate, br Accept-Language: zh-CN,zh;q=0.9 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ GET https://image.baidu.com/httpsjsonp/pc?callback=imageCheckHttps&_=1575711683734 HTTP/1.1 Host: image.baidu.com Connection: keep-alive User-Agent: Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.97 Safari/537.36 Accept: */* Sec-Fetch-Site: same-site Sec-Fetch-Mode: no-cors Referer: https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&rsv_idx=1&tn=sitehao123&wd=%E4%B8%AD%E5%9B %BD&rsv_pq=ee5e88db00155eb1&rsv_t=9b46NVmtUvhHk8NuPqytTgFcpScJZfmNOSxhFBaAu5rlcjCsQ9PfON8N98xNepLuQQ&rqlang=cn&rsv_enter=0&rsv_dl=tb&rsv_sug3=10&rsv_sug1=1&rsv_sug7=00 1&prefixsug=%25E4%25B8%25AD%25E5%259B%25BD&rsp=8&rsv_sug9=es_0_1&inputT=10643&rsv_sug4=12203&rsv_sug=9 Accept-Encoding: gzip, deflate, br Accept-Language: zh-CN,zh;q=0.9 Cookie: BIDUPSID=1655D38E3EB9FAF984C3D838C40375AC; PSTM=1564563068; BAIDUID=8B7CDF0DBB1D8B4D8DC4288AE32C655B:FG=1; MCITY=-%3A; BDORZ=B490B5EBF6F3CD402E515D22BCDA1598; BDSFRCVID=7AKsJeCCxG3e2tjwgnO1j79umibdsgZhD6873J; H_BDCLCKID_SF=tbAD_CKKf-3bfTuGDJOqKn0thxtX2bjMfbTf_p7F5l8-hCQXDPjf-n-shxTw- lQCMJ7PBfQaKqcxOKQphPbm5nIXQ48qbpbjb2oiLInN3KJm_UK9bT3v5Duy-tQ42-biW2tH2Mbdax7P_IoG2Mn8M4bb3qOpBtQmJeTxoUJ25DnJhhCGe6D2e5Q3jNLsbtQb26r-3--8-bTVHRDk5-Qo- 4_eqxby26Pf0m3eaJ5n0-nnhnK45-6bbPCgDfCfqRQL2CrbQb3u2p--bK0Ry66jK4JKDG0tJ6OP; H_PS_PSSID=1469_21080_30211_30071_26350; delPer=0; PSINO=5 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ User-Agent:浏览器用来报告处事器,客户端使用的操纵系统及版本、cpu类型、浏览器及版本、浏览器衬着引擎、浏览器语言、浏览器插件等 注意:如果想模拟各类差此外客户端,只需要改削User-Agent就可以 Referer:供给了Request的上下文信息的处事器,报告处事器我是从哪个链接过来的,好比从我主页上链接到一个伴侣那里, 他的处事器就能够从HTTP Referer中统计出每天有几多用户点击我主页上的链接访谒他的网站。 例如: Referer:http://translate.google.cn/?hl=zh-cn&tab=wT ConnectionConnection: keep-alive:当一个网页打开完成后,客户端和处事器之间用于传输HTTP数据的TCP连接不会封锁, 如果客户端再次访谒这个处事器上的网页,会继续使用这一条已经成立的连接 Connection: close:代表一个Request完成后,客户端和处事器之间用于传输HTTP数据的TCP连接会封锁, 当客户端再次发送Request,需要从头成立TCP连接。 Host(发送请求时,该报头域是必须的): 请求报头域主要用于指定被请求资源的Internet主机和端标语,它凡是从HTTP URL中提取出来的 例如: 我们在浏览器中输入:http://www.guet.edu.cn/index.html 浏览器发送的请求动静中,就会包罗Host请求报头域,如下:Host:http:// 此处使用缺省端标语80,若指定了端标语,则酿成:Host:指定端标语。 Content-Length:发送给HTTP处事器数据的长度。 Content-Type:便是Internet Media Type,互联网媒体类型;也叫做MIME类型,在Http协议动静头中,使用Content-Type来暗示具体请求中的媒体类型信息。 例如:Content-Type: application/x-www-form-urlencoded 常见的媒体格局类型如下: text/html : HTML格局 text/plain :纯文本格局 text/xml : XML格局 image/gif :gif图片格局 image/jpeg :jpg图片格局 image/png:png图片格局 以application开头的媒体格局类型: application/xhtml+xml :XHTML格局 application/xml : XML数据格局 application/atom+xml :Atom XML聚合格局 application/json : JSON数据格局 application/pdf :pdf格局 application/msword : Word文档格局 application/octet-stream : 二进制流数据(如常见的文件下载) application/x-www-form-urlencoded : <form encType=””>中默认的encType,form表单数据被编码为key/value格局发送随处事器(表单默认的提交数据的格局) 此外一种常见的媒体格局是上传文件之时使用的: multipart/form-data : 需要在表单中进行文件上传时,就需要使用该格局 --------------------------------------------------------------------------------------------- cache:缓存 http中具有缓存成果的是浏览器缓存,以及缓存代办代理处事器。 http缓存的是指:当Web请求抵达缓存时, 如果本地有“已缓存的”副本,就可以从本地存储设备而不是从原始处事器中提取这个文档。 web处事器通过一下两种方法来判断浏览器缓存是否最新: (1):浏览器把缓存文件的最后改削时间通过header“if-modified-since”报告处事器2):浏览器把缓存文件的ETag通过header“if-none-match”报告处事器 通过最后改削时间来判断缓存的新鲜度: 1. 浏览器客户端想请求一个文档,首先查抄本地缓存,发明存在这个文档的缓存,获取缓存中文档的最后改削时间,通过: If-Modified-Since, 发送Request给Web处事器。 2. Web处事器收到Request,将处事器的文档改削时间(Last-Modified): 跟request header 中的,If-Modified-Since对对照, 如果时间是一样的,说明缓存还是最新的,Web处事器将发送304 Not Modified给浏览器客户端,报告客户端直接使用缓存里的版本。 3. 假如该文档已经被更新了。Web处事器将发送该文档的最新版本给浏览器客户端 与缓存有关的header我们来看看每个header的具体含义。 Request Cache-Control: max-age=0 以秒为单位 If-Modified-Since: Mon, 19 Nov 2012 08:38:01 GMT 缓存文件的最后改削时间。 If-None-Match: "0693f67a67cc1:0" 缓存文件的Etag值 Cache-Control: no-cache 不使用缓存 Pragma: no-cache 不使用缓存

--------------------------------------------------

Response


Cache-Control: public 响应被缓存,并且在多用户间共享, (公有缓存和私有缓存的区别,请看另一节)

Cache-Control: private 响应只能作为私有缓存,不能在用户之间共享

Cache-Control:no-cache 提醒浏览器要从处事器提取文档进行验证

Cache-Control:no-store 绝对禁止缓存(用于机密,敏感文件)

Cache-Control: max-age=60 60秒之后缓存过期(相对时间)

Date: Mon, 19 Nov 2012 08:39:00 GMT 当前response发送的时间

Expires: Mon, 19 Nov 2012 08:40:01 GMT 缓存过期的时间(绝对时间)

Last-Modified: Mon, 19 Nov 2012 08:38:01 GMT 处事器端文件的最后改削时间

ETag: "20b1add7ec1cd1:0" 处事器端文件的Etag值

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/web/32721.html