龙空技术网

从edge浏览器突然打不开必应聊天网页谈缓存

曹CHG 120

前言:

目前同学们对“页面加载失败是什么原因”大体比较关心,各位老铁们都想要分析一些“页面加载失败是什么原因”的相关文章。那么小编同时在网络上汇集了一些对于“页面加载失败是什么原因””的相关文章,希望兄弟们能喜欢,兄弟们快快来学习一下吧!

科学上网后,输入:,打不开必应聊天网页,而是重新定位到了国内的必应搜索网页。出现这种现象,一般可能有一下几种原因:

1、edge开发者版本有缓存或者插件的问题,导致无法正常加载必应聊天网页。您可以尝试清除缓存或者禁用插件,然后重新打开网页。

2、网络连接有问题,导致无法访问必应聊天网页。尝试切换网络或者重启路由器,然后重新打开网页。

3、必应聊天网页本身有故障,导致无法正常运行。尝试访问其他网站,看看是否有同样的问题。如果没有,那么可能是必应聊天网页的问题。

一般情况下,你可以打开其他网页,并且重新启动路由器等等这些措施做完之后,都不能解决问题。出现这个错误现象之前,没有安装过什么插件,前一天必应聊天用得好好的,隔天开机之后突然就不能连上必应聊天了。在排除了其他可能后,就只剩下缓存的问题。考虑到科学上网的不稳定性,如果一定时间内发起连接到必应聊天的请求没有得到响应,微软就会给你重定向,这跟你没有科学上网而去连接必应聊天被重定向是一样的道理。

如果你还想要知其所以然,那么就参考 查看缓存数据 - Microsoft Edge Development | Microsoft Learn 这篇文章,去查看缓存数据;或者使用浏览器开发者工具,点击网络标签,抓包,看看浏览器是否会发起网络请求还是直接使用了缓存。这里不再赘述。一般我清空下图选择的两项后,就可以连接聊天页面了。

谈谈缓存

缓存是一种将资源存储在本地,以便于快速访问的技术。缓存可以提高性能、节省带宽和减轻服务器压力。但是,如果缓存的资源过期或者与服务器上的资源不一致,就可能导致网页加载错误或者显示不完整。

浏览器缓存是一种常见的缓存类型,它根据服务器返回的响应头中的缓存规则来决定是否使用缓存的资源。控制浏览器缓存的字段主要有 Expires 和 Cache-Control ,其中 Cache-Control 优先级比 Expires 高。

Expires 是一个绝对时间,表示资源在该时间之前是有效的。Cache-Control 是一个相对时间,表示资源在请求后多长时间内是有效的。例如,Cache-Control: max-age=3600 表示资源在请求后一个小时内是有效的。

如果服务器没有返回缓存规则,或者缓存规则不明确,浏览器会使用启发式缓存,根据响应的 Last-Modified 时间来推测资源的有效期。这种方式可能不够准确,导致缓存失效或者过期。

如果缓存规则指定了 no-cache 或者 no-store ,则表示不使用强制缓存,而是使用协商缓存。协商缓存就是浏览器携带缓存标识向服务器发起请求,由服务器根据缓存标识决定是否使用缓存的过程。控制协商缓存的字段主要有 Last-Modified/If-Modified-Since 和 ETag/If-None-Match ,其中 ETag/If-None-Match 优先级比 Last-Modified/If-Modified-Since 高。

Last-Modified/If-Modified-Since 是根据资源的最后修改时间来判断是否更新的。浏览器首先发送一个请求,让服务器在响应头中返回资源的最后修改时间,就是 Last-Modified ,浏览器会缓存下这个时间。然后浏览器再次请求时,在请求头中带上 If-Modified-Since: [保存的Last-Modified的值] 。服务器根据浏览器发送的修改时间和自己保存的修改时间进行比对,如果一致,则表示资源没有改变,返回304和Not Modified,并让浏览器从缓存中读取资源;如果不一致,则表示资源有更新,返回200和请求结果,并更新浏览器的缓存。

ETag/If-None-Match 是根据资源的内容生成一个唯一标识来判断是否更新的。浏览器首先发送一个请求,让服务器在响应头中返回资源的唯一标识,就是 ETag ,浏览器会缓存下这个标识。然后浏览器再次请求时,在请求头中带上 If-None-Match: [保存的ETag的值] 。服务器根据浏览器发送的标识和自己重新生成的标识进行比对,如果一致,则表示资源没有改变,返回304和Not Modified,并让浏览器从缓存中读取资源;如果不一致,则表示资源有更新,返回200和请求结果,并更新浏览器的缓存。

ETag/If-None-Match 要优于 Last-Modified/If-Modified-Since ,因为它能够更精确地判断资源是否改变,而不受时间误差或者秒级修改的影响。但是 ETag/If-None-Match 也有一些缺点,比如生成标识的过程需要消耗服务器的资源,而且不同服务器生成的标识可能不一致,导致缓存失效。

缓存类型

浏览器缓存文件格式,是指浏览器将网页中的一些资源(如图片、js、css等)保存在本地的一种文件格式。浏览器缓存文件格式并不是一种标准,而是每个浏览器的实现不一样。不同的浏览器可能使用不同的缓存机制、缓存策略、缓存位置和缓存大小。

一般来说,浏览器缓存类型从宏观角度可以分为两种:磁盘缓存和内存缓存。

磁盘缓存是指浏览器将缓存文件保存在硬盘中,这样可以在关闭浏览器后仍然保留缓存,下次打开网页时可以直接从磁盘中读取缓存,提高加载速度。磁盘缓存的文件格式通常是二进制文件或者文本文件,例如.jpg、.png、.js、.css、.html等。磁盘缓存的位置和大小可以在浏览器的设置中进行调整。

内存缓存是指浏览器将缓存文件保存在内存中,这样可以在同一个会话中快速访问缓存,减少磁盘的读写操作。内存缓存的文件格式通常是二进制数据或者对象,例如图片的位图数据、js的执行结果、css的解析结果等。内存缓存的位置和大小由浏览器自动管理,一般随着浏览器的关闭而清除。

磁盘缓存文件数据

浏览器磁盘缓存文件不仅保存了网页的内容,还保存了HTTP响应头的内容,包括缓存规则、资源的最后修改时间、资源的唯一标识等。缓存文件以二进制格式存储的,每个文件都有一个固定的头部,包含了一些元数据,如URL、响应头、过期时间等。文件的内容是按照HTTP响应的格式存储的,即首先是响应行,然后是响应头,最后是响应体。

Chrome浏览器的HTTP缓存文件有两种类型:单独文件和块文件。单独文件是以f_开头的文件,它们存储了大于16KB的响应。块文件是以data_开头的文件,它们存储了小于16KB的响应。块文件有不同的大小,分别是256字节、1KB和4KB。1

如果你想查看或修改缓存文件的内容,你可以使用一些专门的工具,如CacheView或者WinHex。这些工具可以解析缓存文件的头部和内容,并以可读的方式显示出来。你也可以使用这些工具来更改缓存文件的位置或者删除缓存文件。

标签: #页面加载失败是什么原因 #httpscss无法加载 #edge浏览器安装包打不开 #microsoftedge未响应