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 超时缓存失效-固定值,应大
浏览器在发起请求前检查该字段,过期了就重新向服务器发起请求。
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主要在断点下载时比较有用。