1. 范围请求
- 问题:下载中断导致重头开始
- 解决:需要一种可恢复的机制,其中,恢复是指能从之前下载中断处恢复下载
范围请求(Range Request):用首部字段Range来指定资源的byte范围 - 服务器的响应
- 206 Partial Content,成功返回范围请求的内容
- 200 OK,服务器无法响应范围请求,就返回200和完整的实体内容
- 若是多重范围的范围请求,响应在首部字段Content-Type标明multipart/byteranges
2. 内容协商
- 目的:为用户显示合适的字符集、语言、编码方式等(比如选择中文还是英文。。),提供给客户端最合适的资源
- 协商的3种类型
a. 服务器驱动协商
服务器根据客户端的请求来选择响应内容
b. 客户端驱动协商
用户可以自己选择;可利用JS脚本在web页面自动进行选择
c. 透明协商
服务器端和客户端都进行协商 - 包含在请求报文中的某些首部字段就是判断的基准
Accept
Accept-Charset
Accept-Encoding
Accept-Language
Content-Language
3. 常用的状态码
3.1 1xx
3.2 2xx
- 通常表示执行成功
3.3 3xx
- 重定向
3.4 4xx
- 客户端失败
3.5 5xx
- 服务器端失败
4. 首部字段
4.1 通用首部字段
- Cache-Control
- no-cache
- no-store
- only-if-cached
无缓存=>504 Gateway Timeout - must-revalidate
代理要向服务器验证缓存是否有效
- Connection
- 控制不再转发给代理的首部字段
GET / HTTP/1.1
UPGRADE: HTTP/1.1
CONNECTION: UPGRADE
↓
GET / HTTP/1.1 - 管理持久连接
CONNECTION:close
CONNECTION:Keep-Alive
- Date
创建http报文的日期和时间 - Upgrade
用于检测HTTP协议及其他协议是否可使用更高的版本进行通信
仅作用于客户端和邻接服务器之间 - Via
为了追踪客户端与服务器之间的请求和响应报文的传输路径