HTTP
一种超文本传输协议,用于在网络上传输和请求html内容
超文本:扩展型文本,指html中可以有链向其它文本的链接
URL链接
请求协议、服务器地址和端口号、路径
HTTP请求报文
请求行、请求头headers、body
- 请求行:method请求类型、path请求路径、http version版本
- 请求头:host地址、content-type内容类型、content-length内容长度等
- body:例如 name=“123”&age=18
响应报文
状态行、headers响应头、响应内容body
状态行:http version版本、status code 状态码(200)、status message 状态信息(OK)
请求类型
幂等:同样的请求多次服务器都是同样响应
- GET:用于获取数据,幂等,不发送body
- POST:用于修改或增加数据,非幂等,发送body
- PUT:仅用于修改数据,幂等,发送body
- DELETE:删除数据,幂等,不发送body
- HEAD:与GET相同,唯一不同是返回响应中没有body,可用于拿取内容长度判断是否需要分块传输
status code 状态码
- 1xx 临时性消息
- 2xx 请求成功
- 3xx 重定向 例如服务器地址已经更换
- 4xx 客户端出错
- 5xx 服务端出错
HOST
用于在目标服务器寻找地址,而不是在网络中寻找服务器
Transfer-Encoding:chunked
分块传输,用于当响应发起时,内容长度还没确定的情况下。不与content-length同时使用。
用途:今早做出响应,减少用户等待。
Location
指定重定向的目标url
User-Agent
用于判断是谁实际发送请求、接受响应的。例如手机浏览器、手机app
Range/Accept-Range
Accept-Range:bytes 响应报文中出现,支持按字节来取范围数据
Range:bytes=< start >-< end > 请求报文中出现,表示要取哪段数据。
Content-Range:< start >-< end > 响应报文中出现,表示发送哪段数据。
用处:断点续传,多线程下载