刚学完HTTP响应,小编就和大家分享一哈我的笔记
响应数据 分为三个部分:状态行、头信息、响应体
- 状态行 (分为三个部分: HTTP协议版本、状态码、描述信息)
例如: HTTP/1.1200 OK
100~199 Informational 请求信息不足 ,还需要其他信息才能处理
200~299 Success 请求处理成功
300~399 Redirection 服务器已经处理完毕,客户端还需要进一步动作
400~499 Client Error 客户端错误
500~599 Server Error 服务器端错误
200 请求处理成功 302 客户端进行重定向 304 客户端访问资源没有被修改后,客户端访问本地缓存 404 访问资源不存在 500 服务器内部出错
这里我利用借钱进行辨析理解
200 A 找 B 借钱 B 将钱借个A
302 A 找 B 借钱 B 通知 A 找C 借钱 --- A 找C 借钱
304 A 找 B 借钱 , B对A 说 借过了 --- A 使用 之前从B 借的钱
404 没钱
505 B 不存在了
2 .响应头
重定向地址 结合 302 一起使用
* 重定向两次请求 两次响应
Server:apache tomcat ----- 服务器类型
Content-Encoding: gzip ---- 设置响应数据压缩格式 ---- 请求 Accept-Encoding
* 如果响应数据经过压缩传输体积更小,性能更好
如何设置tomcat压缩
* 通过设置 tomcat/conf/server.xml 设置响应数据压缩
在下添加compressableMimeType="text/html,text/xml,text/plain"compression="on"
* 清除浏览器缓存,重启tomcat
Content-Length: 80 ----- 响应数据长度
Content-Language: zh-cn ----- 响应数据语言
Content-Type: text/html;charset=GB2312 ----- 响应数据类型
* 数据类型采用Mime协议规定类型 html文件 ---- text/html、 jpg文件---- image/jpeg
* 在 tomcat/conf/web.xml 中查看文件mime类型
Last-Modified: Tue, 11 Jul 2016 9:23:51 GMT----- 和请求头信息If-Modified-Since一起使用,控制服务器缓存
* ETag: W/"11111-1184876416000"tomcat生成Etag 11111文件大小 1184876416000文件最后修改时间(精确毫秒)
* 客户端下次请求时通过If-None-Match 携带刚刚 Etag信息
Refresh: 1;url=http://www.test.org ----- 网页自动跳转
Content-Disposition: attachment;filename=aaa.zip ----- 文件下载时指定文件附件名称
控制该程序在客户端不缓存
Expires: -1
Cache-Control: no-cache
Pragma: no-cache
* 对于动态程序,经常修改,禁止浏览器缓存内容
Connection: close/Keep-Alive ---- 响应后连接是否关闭
Date: Tue, 11 Jul 2016 9:23:51 GMT --- 响应时间
自己感觉比较重要的:302结合Location进行重定向 、在tomcat配置gzip压缩 、tomcat缓存策略 、禁止浏览器缓存3.响应体
通常HTML 文件内容 ---- 如果设置响应体进行gzip压缩,看到gzip压缩内容
通过HTTP协议Range头信息 实现断点下载功能
在连接服务器目标资源进行下载过程中,传递Range头信息, 指定下载目标资源部分内容 ---- 实现断点下载功能
我们可以在web项目下创建infor.txt,然后使用URL类 模拟客户端访问 WebRoot/info.txt 下载文件中内容