响应就是服务器发送给客户端的数据!
1. 响应格式:
* 响应首行
* 响应头
* 空行
* 响应体(或称之为响应正文)
2. 状态码
响应首行的结构:协议及版本 状态码 状态码说明,例如:HTTP/1.1 200 OK
* 200:请求成功
* 302:请求重定向
* 304:请求资源没有改变
* 404:请求资源不存在,属性客户端错误
* 500:服务器内部错误
3. 响应头
* Content-Type:响应正文的MIME类型,例如image/jpeg表示响应正文为jpg图片,例如text/html;charset=utf-8表示响应正文为html,并且编码为utf-8编码。浏览器会通过这一信息来显示响应数据
* Content-Length:响应正文的长度
* Set-Cookie:服务器寄存在客户端的“小甜点”,当客户端再次访问服务器时会把这个“小甜点”还给服务器
* Date:响应时间,可能会有8小时的误差,因为中国的时区问题
通知客户端浏览器不要缓存页面的响应头:
* Expires:-1
* Cache-Control: no-cache
* Pragma: no-cache
自动刷新响应头,浏览器会在3秒钟后自动重定向到baidu主页
* Refresh: 3;url=http://www.baidu.com
4. 状态码304
相关头信息
* Last-Modified:响应头,表示当前资源的最后修改时间;
* If-Modified-Since:请求头,表示缓存的资源最后修改时间;
状态码304:表示访问的资源没有改变
1. 客户端首次访问服务器的静态资源index.html,服务器会把index.html响应给客户端,而且还会添加一个名为Last-Modified的响应头,它说明了当前index.html的最后修改时间
2. 客户端收到响应后,会把index.html缓存在客户端上,而且还会把Last-Modified缓存起来。
3. 客户端第二次请求index.html时,会添加名为If-Modified-Since的请求头,它的值是上次服务器响应头Last-Modified,服务器获取到客户端保存的最后修改时间,以及当前资源的最后修改时间进行比较,如果相同,说明index.html没有改动过,那么服务器不会发送index.html,而是响应状态码304,即通知客户端资源没有改变,你可以使用自己的缓存。
网友评论