条件请求有两个用途
- Cache update
- Integrity of a partial download
一、Cache update
条件请求是指浏览器能够询问服务器,是否有最新资源的副本。浏览器会发送些它持有的缓存资源的一些信息,服务器决定是否返回更新的数据或者使用浏览器的副本(也就是资源没更新)。若依然使用浏览器的副本,则响应状态码为304(not modified)。
虽然条件请求也会在网络中发生调用,但是在资源未修改时,其响应体是空的(节省了传输资源给客户端的成本)。服务器能够很快的在不访问资源的情况下决定资源最后修改时间。
1.Time-based
若资源在浏览器副本缓存后改变,则会传送内容;否则返回304。
1.1实现过程
为了保证条件请求,应用通过Last-Modified指定资源的最近修改时间,返回给浏览器。
Last-Modified: Mon, 03 Jan 2011 17:45:57 GMT
下次,浏览器请求这个资源时,会询问资源是否自从这个时间修改过,通过If-Modified-Since。
If-Modified-Since: Mon, 03 Jan 2011 17:45:57 GMT