不积跬步,无以至千里

《图解HTTP》


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 *

https