【面试八股总结】超文本传输协议HTTP(二):缓存技术、版本更新、请求/响应过程

本文详细阐述了HTTP缓存技术,包括强制缓存和协商缓存的工作原理,以及HTTP1.0、1.1和2.0版本间的差异。还介绍了完整的HTTP请求/响应流程。

参考资料 :小林Coding、阿秀、代码随想录 

一、HTTP缓存技术

        将资源(如网页、图像、脚本等)的副本存储在客户端或中间代理服务器上,以便将来的请求可以直接从缓存中获取,而不必重新从服务器下载资源。这有助于减少网络延迟,提高页面加载速度,并减轻服务器的负担。

HTTP 缓存有两种实现方式,分别是强制缓存和协商缓存

1. 强制缓存

        浏览器判断请求的目标资源是否有效命中强缓存,如果命中,则可以直接从内存中读取目标资源,无需与服务器做任何通讯。

       强缓存是利用下面两个 HTTP 响应头部(Response Header)字段实现的,它们都表示资源在客户端缓存的有效期:

  • Cache-Control : http1.1 中增加该字段,使⽤ max-age 指令,可以设置资源在缓存中的最⻓有效时间,单位为秒。
  • Expires :设置⼀个强缓存时间,此时间范围内,从内存中读取缓存并返回。

Cache-Control 的优先级高于 Expires 

2. 协商缓存

       与强制缓存不同,协商缓存依赖于客户端和服务器之间的交互,在协商缓存中,服务器在响应中提供了资源的⼀些标识信息,客户端在后续请求中通过这些信息来判断资源是否发生变化,进而判断是否需要重新传输资源。

常用于协商缓存的⼀些头部字段:

1)ETag 和 If-None-Match

  • ETag 是服务器为资源⽣成的唯⼀标识符,可以是根据⽂件内容计算出的哈希值
  • 客户端在请求头部的 If-None-Match 字段中携带上次响应的 ETag 值。
  • 服务器比较请求中的 If-None-Match 值与当前资源的 ETag 值,如果匹配,表示资源未发⽣变化,返回状态码 304 Not Modified 。

2)Last-Modified 和 If-Modified-Since

  • Last-Modified 是资源的最后修改时间,服务器在响应头部中返回
  • 客户端在请求头部
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值