http报文内的http信息
编码提升传输效率
报文
- 信息传输的基本单位,由8位的字节码组成 实体
- 包括实体首部和实体主体组成,包含了请求和响应的内容 压缩编码
- 对实体主体进行压缩 分块传输编码
- 把实体主体分块
怎么判断传输结束?
实体主体的最后一块使用0来标记
多部分对象集合传输
multipart/form-data
- web表单文件上传 multipart/byteranges
- 响应报文中包含多个返回的内容
范围请求
请求
- Range 响应
- 206PartialContent
响应码
- Content-Lenth
- Content-Range
内容协商
判断依据
- 请求报文中的首部字段
Accept
分类
- 服务器驱动协商
根据请求的首部字段,由服务器做处理
- 客户端驱动协商
用户手工选择
使用JavaScript脚本在web页面做选择
- 透明协商
http状态码
状态码分类
1XX 请求处理中 2XX 正常 3XX 重定向 4XX 客户端错误 5XX 服务器错误
Web服务器
通过host首部标识域名
通信数据转发
代理
- 转发请求和响应
不改变uri,每次请求都会在头部追加extra
缓存代理 透明代理 网关
- 接收请求,并从服务端获取资源后返回给客户端,对客户端来说无感知
利用网关可以把http协议的通信改变为其他协议通信
隧道
- 保持通信连接,目的是确保客户端和服务器通信安全
http首部
根据HTTP版本或者扩展版本的不同,首部可以支持的字段会有所不同,也就是说,可以通过增加头部字段来实现HTTP协议的扩展.
Keep-Alive
6.3 通用首部字段
通用首部字段在请求报文和响应报文中都会使用到
- Cache-Control
- Connection
请求首部字段
Accept Accept-Charset Accept-Encoding Accept-Language Range
响应首部字段
Location
实体首部字段
Content-Type *