http缓存,减少网络请求的体积和数量,http缓存分为强制缓存和协商缓存,参考链接:b23.tv/AA90bMj
1.强制缓存
若服务器对资源文件,譬如html/css/js/img等在资源第一次请求返回时,响应头设置Cache-Control: max-age = 3600 【强制缓存时间(单位秒)】。
下次浏览器在请求同文件时(文件名相同),浏览器会判断强制缓存时间有无过期,若没有过期,直接从本地缓存拿取这个文件渲染页面。
走强制缓存时,服务器响应头 Status Code:200(from memory cache)
2.协商缓存
2.1响应头设置Last-Modified:[该文件最后一次修改的时间】
1.若服务器对资源文件,譬如html/css/js/img等在资源第一次请求返回时,响应头设置Last-Modified:时间【该文件最后一次修改的时间】,
2.则后续浏览器,请求同文件时(文件名相同),请求头会带上 If-Modified-Since:时间(服务器上次返回的),
3.服务器判断该文件是否是最新文件(服务器中该文件没有修改过),则服务器响应头 Status Code:304(Not Modified),告诉浏览器从本地缓存中获取资源; 若服务器判断该文件已经在服务器更新过,则服务器响应头 Status Code:200,最新的资源以及新的Last-Modified:时间【该文件最后一次修改的时间】
2.2响应头设置ETag:资源标识字符串
1.若服务器对资源文件,譬如html/css/js/img等在资源第一次请求返回时,响应头设置ETag:资源标识,
2.则后续浏览器,请求同文件时(文件名相同),请求头会带上 If-None-Match:资源标识(服务器上次返回的),
3.服务器判断该文件是否是最新文件(服务器中该文件没有修改过),则服务器响应头 Status Code:304(Not Modified),告诉浏览器从本地缓存中获取资源; 若服务器判断该文件已经在服务器更新过,则服务器响应头 Status Code:200,最新的资源以及新的响应头设置ETag:资源标识(重新生成)