浏览器绕过本地缓存发送请求给服务器的暗号

优采云 发布时间: 2021-06-15 02:23

  浏览器绕过本地缓存发送请求给服务器的暗号

  当用户通过浏览器发起数据请求时,浏览器会通过以下步骤获取数据:

  本地缓存阶段:首先在本地查找数据,如果找到数据,且数据未过期,则使用该数据,不会向服务器发送http请求

  协商缓存阶段:如果在本地缓存中找到对应的数据,但不知道数据是否过期,则向服务器发送一个HTTP请求,然后服务器判断请求,如果请求的数据在服务器上没有被更改或过期,返回304状态码(可以理解为服务器给浏览器的密码),允许浏览器在本地查找数据

  缓存失败阶段:当服务器发现请求的资源已经被修改,或者这是一个新的请求时,服务器返回带有200状态码的数据。这个过程的前提是找到数据。如果没有数据就返回404(这个你看过了,就是看到404页面时的状态码)

  浏览器中的操作对缓存的影响:

  强制刷新:按ctrl+F5刷新页面时,浏览器会绕过各种缓存(本地缓存和协商缓存),直接让服务器返回最新数据

  普通刷新:当按F5或点击刷新按钮刷新页面时,浏览器会绕过本地缓存,向服务器发送请求。此时协商缓存生效。

  回车或跳转:当您在地址栏输入回车或按跳转按钮时,所有缓存都会生效。

  

  浏览器缓存机制

  四、Android、iOS 缓存机制

  APP上的缓存机制类似于浏览器缓存的原理,APP与服务器交互的协议也大多基于HTTP(S)。

  先普及一下基础知识:

  手机内存包括运行内存和内存。

  运行内存是用来运行程序的,不能用来永久存储数据。一旦手机关机或进程被杀,内存中的所有数据都会丢失。

  内部存储相当于计算机中硬盘的作用,是用于存储操作系统和应用程序的存储介质。

  iOS 的本地缓存数据存储在磁盘存储(内部存储)中。由于Android手机通常将内部存储固定在核心上,因此一般无法更换内部存储。

  为了增强安卓手机的存储容量,很多安卓手机都支持扩展SD卡(相当于电脑的U盘或移动硬盘)功能。因此,Android手机存储缓存可以选择数据存储位置。

  APP在存储数据时,会存储大量的字段内容。一般后端会为每条数据设置一个独立的id值,然后前端在请求数据时可以先查询本地缓存的数据,最新的一条数据的id值通过网络请求发送到服务器。服务器会根据id查询后端服务器,看看有没有比id值大(更新)的数据。如果是这样,它将被更新。数据返回给前端APP。

  五、数据库缓存

  数据库的缓存机制分为两个层次。

  1.由数据库提供,可以缓存给数据表。

  数据库中的数据临时存放在一个位置,相同的请求直接再次返回数据,无需再次查询各种表取数据,减少了查询数据库的时间,提高了效率.

  并非所有历史记录都被缓存。一定要有策略,比如只缓存两个月的数据,两个月前请求后不再请求数据的时候再回收。这是记录被删除,只保存最近的请求。

  如果时间过长,使用率不高,清除优先级,否则缓存会失去缓存的本质和意义。

  2.在数据库中,数据存储在磁盘中。

  虽然数据库层有相应的缓存,但这种数据库级缓存一般都是针对查询内容的。一般情况下,数据库对应的缓存只有在表中的数据没有发生变化时才起作用。

  有时无法减轻业务系统生成的数据库增删查改的巨大压力。这时候一般的做法是在数据库和业务服务器之间加一个缓存服务器,比如大家熟悉的redis。

  客户端第一次请求的数据从数据库中取出后放入redis。在数据没有过期或更改的前提下,下次请求会直接从redis中取数据,大大缓解了数据库的压力。

  

  服务器缓存

  六、Business 服务器缓存

  业务服务器缓存就是直接从动态页面生成静态页面,放到服务器上的硬盘中。当用户调用同一个页面时,静态页面会直接下载到客户端,不再需要运行程序和访问数据库,大大节省了服务器的负载。

  每次访问页面时,都会检查对应的缓存页面是否存在。如果不存在,则连接数据库获取数据渲染页面并生成缓存页面文件,以便下次访问的页面文件可以使用。

  一个小例子:

  

  用户A访问页面a,服务器解析页面a返回给用户A,同时在服务器内存上进行映射,将页面a缓存在服务器硬盘上。用户B访问页面a,服务器根据内存上的映射直接找到对应的页面缓存,直接返回给用户B。

  这减少了服务器对同一页面的重复分析。

  七、代理服务器缓存

  

  代理服务器是客户端和业务服务器之间的中间服务器。客户端首先向这个中间服务器发起请求,经过处理后,将请求转发给业务服务器。代理服务器缓存的工作原理与浏览器类似,但规模更大。

  可以理解为共享缓存,不仅服务于一个用户,一般服务于大量用户,因此有效减少了相应的时间和带宽占用。相同的缓存数据将被多次重复使用。

  以上是缓存机制的简要总结。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线