Http报文

1. 常见HTTP请求头

请求头 说明
Accept-Charset 指定客户端接受的字符集
Accept-Encoding 指定可接受的内容编码,如Accept-Encoding:gzip,deflate
Accept-Language 指定客户端接受的语言
Host 请求地址的server和端口
User-Agent Client的操作系统、浏览器和其它属性
Connection 当前连接是否保持,如Keep-Alive
Proxy-Authorization 有代理服务器时使用,经过Basic64加密的“域用户名:密码”

2. 常见HTTP响应头

响应头 说明
Server Server的信息
Content-Type 指明正文的媒体类型,如Content-Type:text/html;charset=GBK
Content-Encoding 指明内容使用的压缩编码
Content-Language 语言
Content-Length 指明正文的长度,以字节方式存储的十进制数字表示
Keep-Alive 保持连接的时候,如Keep-Alive:timeout=5,max=120

3. 常见HTTP响应码

状态码 说明
301 永久重定向,地址通过location返回的任一url获取
302 临时重定向,地址通过location指定
304 not modifed,客户端缓存
400 客户端请求语法错误,服务端不能识别
401 权限不足
403 收到请求,但是拒绝提供服务
404 请求资源不存在
500 server内部错误

4. 浏览器缓存机制

4.1 Cache-Control/Pragma-优先级高

可选值 说明
max-age=3600 缓存的内容将在3600秒后失效
no-cache 强制每次请求发送给server,而不经过本地缓存的检查
no-store 任何情况下都不使用缓存

4.2 Expire 超时缓存失效-固定值,应大

浏览器在发起请求前检查该字段,过期了就重新向服务器发起请求。

4.3 304:Last-Modified/If-modified-Since

1). 客户端请求一个页面(A)。 
2). 服务器返回页面A,并在报文头上一个Last-Modified/ETag。 
3). 客户端展现该页面,并将页面连同Last-Modified/ETag一起缓存。 
4). client再次请求,请求中会包含 If Modified Since(即上次请求时server返回的Last-Modified)/ETag在报文头中一起传递给服务器。 
5). 服务器检查该Last-Modified或ETag,并判断出该页面自上次客户端请求之后还未被修改,直接返回响应304和一个空的响应体。 (已修改则返回200和文件内容)

4.4 304:ETag/If-None-Match

第一次请求时server返回所请求的数据的同时返回Etag值,再次请求时浏览器发送If-None-Match, 
server检查ETag没改变,则返回状态304然后不返回。本人测试Etag主要在断点下载时比较有用。
原文地址:https://www.cnblogs.com/Desneo/p/7214311.html