网络协议——状态码及缓存(部分知识点)

面试常见状态码:

状态码作用
200请求成功
203非授权信息
204无内容返回
206范围请求成功,返回部分内容
301永久重定向
302临时重定向
303查看其它地址,客户端应采用Get方法请求
304所请求的资源未修改
400客户端请求语法错误
401请求要求用户身份认证
403服务器拒绝执行此请求
404无法根据请求找到资源
500服务器内部错误
501服务器不支持请求的功能
503服务器超载,系统维护
504充当网关或代理的服务器未及时获取请求
505服务器不支持请求的HTTP协议的版本

主要背以上的状态码即可。
解释304的时候最好加上缓存的概念,能加分。
缓存:
缓存是一种保存资源副本并在下次请求时直接使用该副本的技术。当 web 缓存发现请求的资源已经被存储,它会拦截请求,返回该资源的拷贝,而不会去源服务器重新下载。
优点:缓解服务器端压力,提升性能(减少网页加载速度),提高用户体验。
浏览器缓存有两种:强缓存和协商缓存。

请求资源时浏览器怎么知道是强缓存还是协商缓存?
用户首次请求并获取到该资源后,根据返回的信息来告诉如何缓存资源,可能采用的是强缓存,也可能告诉客户端浏览器是协商缓存,这都需要根据响应的header内容来决定。

强缓存:
(1)过程
用户请求访问过的资源,浏览器拦截请求,查看该资源的强缓存相关header字段来判断资源是否过期,若未过期即命中强缓存,直接从本地获取资源来展示给用户,若没有命中强缓存,则从服务器重新加载资源或进入协商缓存流程(如果资源同时设置了强缓存和协商缓存)

(2)相关header字段
Expires: 一个未来时间,浏览器再次加载资源时,如果在这个过期时间内,则命中强缓存。

Expires: 
Thu , 15 Apr 2030  20:00:00  GMT  //代表 2030 年4月15日请求过期,在这之前当前请求都有效。

Cache-Control: 当值设为max-age=300时,则代表在这个请求正确返回时间(浏览器也会记录下来)的5分钟内再次加载资源,就会命中强缓存。
(当然还有几个参数,但面试不会这么深入问,只需回答强缓存和协商缓存的用法即可)
注: 同时设置时 cache-control 优先级高于 expires

协商缓存:
用户请求访问过的资源,请求头携带相关header字段去跟服务器的对应相关header字段做对比,由服务器判断资源是否修改,未修改则命中协商缓存,服务器返回304状态码,不返回资源,浏览器获取本地资源。若资源被修改,则返回200状态码并返回新的资源。

强缓存和协商缓存的区别:
强缓存是浏览器(判断是否命中后)单方面做决定是否向服务器发起请求,比较强势,若命中则不会与服务器进行任何通信。而协商缓存是浏览器与服务器(相关字段的校对)双方协商是否返回新资源。
一般将一些不常更新的静态资源设置强缓存加协商缓存,而类似index.html等更新频繁的资源设置为协商缓存。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值