什么是HTTP超文本链接
超文本传输协议(英文:HyperText Transfer Protocol,缩写:HTTP)是一种用于分
布式、协作式和超媒体信息系统的应用层协议。HTTP是万维网的数据通信的基础。
由请求报文和响应报文组成
HTTP请求报文组成
- 请求行 包含请求方法,URL,HTTP版本
- 消息头,每行包含一个头字段,用于表示请求的附加信息
- 消息体, 客户端向服务器发送的数据
请求行
组成:方法,URL,版本
方法 | 含义 |
---|---|
GET | 获取服务器资源 |
POST | 传输数据或文件 |
PUT | 传输文件 |
HEAD | 和GET一样,但是只需要返回响应报文的头部,不需要BODY |
DELETE | 删除文件 |
OPTIOINS | 查看服务器允许使用的方法 |
优缺点
优点:简单,灵活,易拓展
缺点:明文传输 无安全性,
HTTP请求过程
- TCP建立链接
- 发起HTTP请求
- 解析HTTP响应报文
- 释放TCP链接
- 渲染或处理数据
HTTP Chunk
HTTP无法直接传输,需要使用Chunk的方式来传输大文件
Chunk是HTTP应用层实现的分块,不需要TCP分块
Chunk的中文意思就是块
将大文件分成块,一块对应一个HTTP请求,然后会对每个HTTP进行编号,在接收方重组
通过判断Header中的Transfer-Encoding=Chunked 来判断是否 Chunked传输
如何判断Chunk是否传输结束
每个Http中的body中分为 length 和 chunked data 。length 就是传输的数据长度,chunked data就是实际的传输数据。二者通过换行符分隔。
当收到length = 0的时候 说明传输完毕