304和200

首先理解强缓存和协商缓存。

1.强缓存

        强缓存就是向浏览器缓存查找该请求结果,并根据该结果的缓存规则来决定是否使用该缓存结果的过程。控制强制缓存的字段分别是 Expires 和 Cache-Control。

2.协商缓存

        协商缓存就是强制缓存失效后,浏览器携带缓存标识向服务器发起请求,由服务器根据缓存标识决定是否使用缓存的过程。控制协商缓存的字段分别有:Last-Modified / If-Modified-Since(资源修改的时间)  和 Etag / If-None-Match(标识符字符串)。

注:

        浏览器第一次发请求,服务器在返回的 respone 的 header 加上 Last-Modified, 表示资源的最后修改时间 。再次请求资源,在 requset 的 header 加上 If-Modified-Since , 值就是上一次请求返回的 Last-Modified 值

        一个标识符字符串,表示文件唯一标识,只要文件内容改动,ETag就会重新计算。缓存流程和 Last-Modified 一样。但如果我们打开文件但并没有修改其内容,Last-Modified 也会改变,而Etag则不会改变。

3.304和200

协商缓存主要有以下两种情况:

        (1)协商缓存生效,返回304;

        (2)协商缓存失效,返回200和请求结果

请求过程:        

        当客户端第一次请求服务器资源,服务器成功返回资源,这时状态码为200,并在浏览器的缓存中记录下max-age(指定缓存的有效时间)。

        当客户端再次请求该资源,客户端首先从缓存中查找该资源。如果该资源存在且在有效期内,则不请求服务器,直接读缓存,也就不会产生对应的请求数据包;如果不在有效期内,则客户端会请求服务器,重新获取。服务器会判断修改时间,如果没有修改过,就会返回状态码304,表示该资源仍然有效,可以直接读取缓存。304状态码返回时,不包含任何响应的主体部分。


                
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值