# 二.http(二)
# 1. HTTP 协议和 TCP 协议
# 1.1. 长链接
# 1.2. 管线化
# 2. URI 和 URL
# 2.1 URI
URI(Uniform Resource Identifier)是统一资源标识符,在某个规则下能把这个资源独一无二标示出来,比如人的身份证号
- Uniform 不用根据上下文来识别资源指定的访问方式
- Resource 可以标识的任何东西
- Identifier 表示可标识的对象
# 2.2 URL
统一资源定位符,表示资源的地点,URL 时使用浏览器访问 WEB 页面时需啊哟输入的网页地址
- Uniform 不用根据上下文来识别资源指定的访问方式
- Resource 可以标识的任何东西
- Location 定位
# 2.2.1 URL 的格式
- 协议类型
- 登录信息
- 服务器地址
- 服务器端口号
- 带层次的文件路径
- 查询字符串
- 片段标识符
# 3. HTTP
- 请求的一方叫客户端,响应的一方叫服务器端
- 通过请求和响应达成通信
- HTTP 是一种不保存状态的协议
# 3.1 请求报文
- 请求行
- 方法
- GET 获取资源
- POST 向服务器端发送数据,传输实体主体
- PUT 传输文件
- HEAD 获取报文首部
- DELETE 删除文件
- OPTIONS 询问支持的方法
- TRACE 追踪路径
- 协议/版本号
- URL
- 方法
- 请求头
- 通用首部(General Header)
- 请求首部(Request Header)
- 响应首部(Response Header)
- 实体首部(Entity Header Fields)
- 请求体
# 3.2 响应报文
- 响应行
- 响应头
- 响应体
# 3.3 编码
HTTP 可以在传输的过程中通过编码提升传输效率,但是会消耗更多的 CPU 时间
# 3.3.1 编码压缩
发送文件时可以先用 ZIP 压缩功能后再发送文件
- gzip
- compress
- deflate
- identify
# 3.3.2 分割发送的分块传输编码
请求的实体在尚未传输完成前浏览器不能显示。所以在传输大容量数据时,通过把数据分割成多块,能让浏览器逐步显示页面。
# 3.3.3 多部分对象集合
- 一份报文主体中可以包含多类型实体
- 使用 boundary 字符串来划分多部分对象指明的各类实体。在各个实体启始行之前插入--标记,多部分对象集合最后插入--标记
# 3.3.3.1 multiparty/form-data
上传表单时使用 multiparty/form-data