http缓存

面试被问到什么是http缓存,一脸茫然,所以查询并记录下来。
1.产生原因
想服务器重复发送请求时,网络上传来传去都是一份数据,造成浪费
2.解决办法
将内容缓存到本地磁盘或者缓存服务器中,加速访问且减轻源服务器负担
3.具体操作

  1. response header中加入expires,浏览器在指定日期前访问本地(?)缓存即可,现在一般用chache-control替代(状态码200,强制缓存);
  2. espires到期后再访问,请求头加入上次修改时间(if-Modified-Since),服务器判断如果与内部文件(eg: a.js)相同的话使用缓存(状态码304,协商缓存)
  3. 有可能a.js定期修改,但内容没变,请求头加入文件ID(if-Match),服务器比对a.js的ETag,如果相同就使用缓存(状态码304,协商缓存)
    补充:
    Referer请求头用来表示,服务器原始资源的URI?意思是当前页面的URI?可以用来保证安全支付,判断如果不是同源的就认为非法而拒绝访问。?、、
    补充:
    HTTP通信时,除了客户端和服务器以外,还有用于通信数据转发的应用程序,如代理(缓存/不缓存),网关(修改报文/不修改)和隧道(使用SSL等加密手段保证安全通信)。
    补充
    正向代理和反向代理。
    转自https://blog.csdn.net/riba2534/article/details/80964097
    翻墙的原理就是正向代理,S能访问D,D能访问A(比如美国网站),这样客户端就在服务器前隐藏了自己的身份,正向代理是客户端隐藏(比如托人找马云借钱)
    反向代理是服务器隐藏,浏览器不知道源服务器在哪。(比如给10086打电话)
    Nginx是反向代理,可以用来做负载均衡
    webpack处理跨域的原理也是反向代理,本地服务器是localhost,访问的也是localhost,他代理了源服务器,浏览器才有同源策略,服务器间没有,因此可以访问到。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值