第1章 DNS与浏览器缓存
1.1 浏览器DNS缓存
1.1.1 浏览器
://net-/#dns
1.1.2 浏览器
about:
1.1.3 DNS预获取
预先将url进行域名解析,将解析结果保存下来加快用户的访问。
1.2 浏览器缓存
1.2.1 浏览器缓存
1.2.2 浏览器和服务器之间基于Last-缓存协商
浏览器向服务器发送If--Since字段,若发送的时间与服务器上的last-时间匹配,则服务器不再向客户端发送数据,浏览器使用本地的缓存打开页面,此时的状态码为304。
1.2.3 浏览器和服务器之间基于Etag缓存协商
通过算法(根据服务器不同算法也不同,如nginx/等)生成标签,每次访问时比对标签,标签相同时则服务器不向客户端传输数据,浏览器使用自己的本地缓存显示页面,此时状态码也为304。这种方式主要用于Last-经常变化但是内容却没有变化的情况(实际的使用比较少)。
1.2.4 浏览器和服务器之间基于缓存协商
通过Cache-:max-age设置缓存过期时间长度谷歌浏览器清除DNS缓存的方法,显示过期实际时间,到期后彻底消灭连接,此时状态码为200。
1.2.5 浏览器刷新
1.2.5.1 在地址栏中输入网址后按回车或点击转到按钮
浏览器会对所有没有过期的内容直接使用本地缓存,这个时候Last-、Etag、和均不会受刷新的影响。
1.2.5.2 按F5或浏览器刷新按钮
浏览器会在请求中附加必要的缓存协商,这个时候Last-、ETag就要受影响,要发起缓存协商的动作,但是对无效。
1.2.5.3 按Ctrl+F5或按Ctrl并点击刷新按钮
每次浏览器都发起一个全新的请求,不使用任何缓存。
1.2.6 不使用浏览器缓存
1.2.7 设置网站静态文件时间
图片文件:每次更新都会生成新的文件名,此时时间可以设置长时间,如1年
JS/CSS文件:根据业务类型设置时间,若经常变化则时间设置短一些谷歌浏览器清除DNS缓存的方法,相反则设置的长一些
ICO文件:不需要设置,浏览器会自动强制设置缓存。
备注:由于现在很多浏览器默认回去请求网站小图标ico文件,此时网站若没有ico文件则会出现许多404错误,此时可以在服务器端编写规则,设置ico为 off,禁止浏览器访问ico文件。
评论留言