1.缓存基础知识
什么是http缓存?
Web请求抵达缓存时,如果本地有缓存数据,就可以从本地存储设备而非原始服务器中提取文档
优点?
减少冗余的数据传输,节省传输时间;
减少服务器负担,提高网站性能;
加快客户端加载网页的速度;
与缓存相关的header
Ps:如果同时存在cache-control和expires,优先考虑cache-control
2.如何判断缓存的新鲜程度
If-Modified-Since代表缓存文件的最后修改时间,Last-Modified代表服务器文档的修改时间.服务器收到请求后,会将二者时间进行对比.如果时间一直,则不需要更新本地缓存,返回状态码304;否则,服务器会将文档最新信息发送给客户端进行更新,返回状态码200
3.ETag
Etag是 Entity tag(实体标签)的缩写,可以理解为“被请求变量的实体值”,Etag是服务端的一个资源的标识,主要是为了解决Last-Modifie无法解决的问题.
4.浏览器缓存
不使用缓存
Ctrl+f5刷新浏览器
此时,缓存参数变为Cache-control:no-cache
F5和直接输入网址
按f5刷新浏览器,浏览器会在web服务器验证缓存,不会直接使用本地缓存
直接输入网址获取数据,浏览器会直接使用缓存,不会去web服务器验证
Ie不使用缓存需要进行设置
5.压缩过程
客户端将包含压缩方法(如:gzip)的http请求发给服务器;服务器收到请求后生成原始响应,然后使用客户端提供的压缩方法进行压缩,将压缩后的响应结果返回给客户端;客户端再解压相应内容,显示返回结果
6.常用的压缩方法
gzip如何压缩?
在一个文本文件找出类似的字符串,并临时替换它们,从而使整个文件变小
这种方法比较适合web,因为html和css通常会包含大量重复字符串(如空格,标签),但不太适合于jpeg
7.编码和压缩的区别
在http协议中,可以使用gzip这种编码方式达到压缩的目的;也可以使用别的编码方式把内容调乱或加密.
http压缩其实就是http编码的一种