浏览器缓存

浏览器缓存通过减少网络带宽消耗、降低延迟和减轻服务器压力来提高性能。Cache-Control和Expires头用于控制缓存策略,如no-cache、no-store和max-age。Referer头用于追踪用户来源,可配置不同策略以保护隐私。同时,文章讨论了HTTP的短连接与长连接以及防盗链技术,如通过检查referer和使用时间戳签名防止资源被盗用。
摘要由CSDN通过智能技术生成

浏览器缓存

把已请求并响应的WEB资源(HTML页面、图片、js文件、CSS文件、数据等)复制一个副本存储在浏览器的缓存中

缓存的好处

1、减少网络带宽的消耗
2、减少网络延迟
3、降低服务器的压力

Pragma: no-cahe(响应头中),指示浏览器忽略资源缓存副本,每次访问需要到服务器获取
HTTP1.0中的字段,HTTP1.1用Cache-Control替代(HTTP协议向下兼容,所以很多网站依旧有这个字段)

C a t h − C o n t r o l 缓存控制在响应头中 \color{#00bfff}Cath-Control 缓存控制在响应头中 CathControl缓存控制在响应头中
no-cache:指示浏览器忽略资源缓存副本,强制到服务器获取资源(浏览器仍然会缓存)
no-stroe: 强制缓存任何情况下都不要保留任何副本
max-age = 31536000: 只是缓存副本的有效时长,从请求开始到过期时间之间的秒数
**public:**表明可以被任何对象(包括发送请求的客户端,代理服务器等等)
private: 表面响应只能被单个用户缓存,不能作为共享缓存

Expires 启用缓存和定义缓存时间,告诉浏览器资源缓存过期时间,如果没有过该时间则不发请求
在HTTP1.1版本开始,使用Cache-Control:max-age = 秒 替代

浏览器请求的流程,有缓存的情况下(没有缓存就直接请求服务器)
xixi

  1. 浏览器先查看缓存是否过期
  2. 如果没过期,直接从浏览器中读取缓存获取数据
  3. 如果缓存过期,向服务器发起请求,请求头中携带if-None-Match/if-Modified-Since向服务器 发起请求
  4. 服务器对if-None-Match/if-Modified-Since字段进行对比,如果服务器资源没被修改,就返回304重定向,浏览器在缓存中读取数据,如果资源修改了就返回200,和新的资源

connection:keep-alive

HTTP短连接与长连接
短链接:所谓短连接,就是每次请求一个资源就建立连接,请求完成后连接立马关闭
长连接:只建立一次连接,多次资源请求都复用该连接,完成后关闭
早期HTTP1.0:每个请求都要创建一个TCP/IP连接,后期HTTP1.0在请求头中增加Connection:keep-alive
HTTP1.1默认开启:Connection:keep-alive,如需关闭:close
Connectionkeep-alive在大多数浏览器中默认使用HTTP/1.1,服务器也须由相应的支持才能达到C/S协议进行长连接

content-length

content-length用于描述HTTP消息实体的传输长度
GET请求: 请求头没有 c o n t e n t − l e n g t h ,响应头带 c o n t e n t − l e n g t h \color{#baf}请求头没有content-length,响应头带content-length 请求头没有contentlength,响应头带contentlength
POST请求:请求头与响应头都带content-length

referer

referer: ( 来源域名 \color{#daa}来源域名 来源域名)referer是request headers的一部分,当浏览器发送请求的时候,一般会带上Referer,告诉服务器我是从哪个页面链接过来的
好处 \color{#adf}好处 好处:可通过referer分析不同渠道的流量分布、用户搜索的关键词
不发送referer信息
< m e t a n a m e = " r e f e r r e r " c o n t e n t = " n o − r e f e r r e r " > \color{#abf}<meta name="referrer" content="no-referrer"> <metaname="referrer"content="noreferrer">
R e f f e r r P o l i c y : n o − r e f e r r e r \color{#fdd}Refferr Policy: no-referrer RefferrPolicy:noreferrer
无 r e f e r r e r 字段 \color{#e09045}无referrer字段 referrer字段
只发送Referer:origin信息
< m e t a n a m e = " r e f e r r e r " c o n t e n t = " o r i g i n " > \color{#abf}<meta name="referrer" content="origin"> <metaname="referrer"content="origin">
R e f f e r r P o l i c y : o r i g i n ( 源域名地址 ) r \color{#fdd}Refferr Policy: origin(源域名地址)r RefferrPolicy:origin(源域名地址)r
R e f e r r e r : h t t p : / / l o c a l h o s t / \color{#e09045}Referrer:http://localhost/ Referrerhttp://localhost/
默认情况发送Referer信息
Referrer Policy: no-referrer-when-downgrade(仅当协议降级比如HTTPS页面引入HTTP资源时发送)
HTML不设置
Referer: http://localhost/network/class5/
Referer应用场景
资源防止盗链: 服务器拉取资源之前判断referer是否是自己的域名或IP,如果不是就拦截,如果是就拉取资源
另一种防盗链方式 —>时间戳防盗链:
通过时间戳和签名规则生成密钥,将密钥和资源一起发送给服务器,服务器判断密钥是否过期和密钥是否匹配,如果都通过就返回资源,其中一个不通过就阻止资源获取 \color{#ff00dd}通过时间戳和签名规则生成密钥,将密钥和资源一起发送给服务器, 服务器判断密钥是否过期和密钥是否匹配,如果都通过就返回资源,其中一个不通过就阻止资源获取 通过时间戳和签名规则生成密钥,将密钥和资源一起发送给服务器,服务器判断密钥是否过期和密钥是否匹配,如果都通过就返回资源,其中一个不通过就阻止资源获取

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值