浏览器缓存
HTTP 1.0 在HTTP1.0中,可以在服务端设置 Expires 的HTTP头来告诉客户端在多久之后重新请求服务,可以通过 if-modified-since 的条件请求来使用缓存,其中发送时间是文件最初被下载的时间,而不是过期时间。如果文件没有改变,服务器可以响应 304-Not Modified 表示文件未改变,客户端可以继续使用缓存的文件。 HTTP1.0中服务器在返回时,可以通过在响应头中添加 Last-Modified 的方式表示资源上一次更改时间。请求时传递的 if-modified-since 值就是 Last-Modified 的值。但是这个时间仅仅只能代表编辑时间,如果文件内容没有变化,一样会修改这个时间,所以再次请求还是会重新加载资源,而不会使用缓存。 HTTP 1.1 引入了文件标签 e-tag ,e-tag 是文件或对象的唯一标识,也就是一个MD5值, e-tag 通过Response Heasers 返回。 e-tag 在使用时会结合 If-None-Match 搭配使用,当缓存过期时,浏览器会在请求头中设置 If-None-Match ,值服务端返回的e-tag值(MD5),当文件未发生变化时,MD5值是不变的,此时服务端可以响应 304 状态码,浏览器继续使用本地缓存,如果返回200,则服务器返回新的文件和新的 e-tag 值。 HTTP1