浏览器缓存策略分为两种 强缓存 (本地缓存) 和 协商缓存 (弱缓存)。
浏览器在发请求前,先检查强缓存,若没有需要的内容(未命中),则发起请求判断是否需要用弱缓存。
强缓存 是不发起请求,直接使用缓存内的内容的。浏览器将 js 、 css 、 image 、 font-family 等存到内存(存小文件)或者磁盘(存大文件)中,下次用户再访问的时候就从内存中取,以便提升性能。
协商缓存 需要往后台发请求, 通过判断来决定是使用协商缓存。如果请求内容没发生变化,则请求返回304(服务器收到请求,但内容无变化),浏览器就用缓存内的内容。
如果服务器返回的响应标头中包含 Expires (时间戳),那么客户端发起请求的时间在 Expires 之前的话,就触发强缓存。
服务器在上一次响应请求时,返回一个带 Last-Modified 的响应头,值为一个时间戳,表示该资源最后一次在服务器修改的时间。当客户端再一次请求这个资源的时候, 请求头就会带上 If-Modified-Since ,值为上次服务器发来的 Last-Modified , 服务器收到后,就和该资源最后修改时间比对, 没变化就返回304, 触发协商缓存。
弊端 : 时间间隔最小为1s,如果请求的资源在1s内发生了改变,是可能会触发协商缓存的, 导致无法获取到最新的资源。
为解决间隔最小1s的问题, If-None-Match 和 Etag 就诞生了。 Etag 是由服务器生成的, 是每个资源的唯一标识字符串, 随资源变化而改变。 判断过程和>梦幻西游的转服是收费的,而且转服只能转到开服时间差不多的区。转服需1200点,但如果转后想回你原来的服只需150点。
开转服本来就增加了玩家的流动性,但不能无条件的转,这样整个梦幻会乱的。从这个收费看,价格是挺合理的,同时也给转服设置了一定的门槛,保证了游戏的平衡性。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)