Hyper Text Transfer Protocol
超文本传输协议,是一个简单的请求-响应协议,通常运行在TCP协议之上。规定了客户端向服务端发送指定格式的消息和得到指定格式的响应,请求和响应以ASCII形式
https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Headers/Accept-Encoding
规范格式(请求,响应)
CRLF 空格换行
CR 空格
请求格式
# 请求行 [请求方法] [请求路径] [协议版本]
Post http://www.xx.com/topic HTTP/1.1
# 请求头
HOST: www.baidu.com
Connection: Keep-alive
Content-Length: 999
# 请求体
abcdefg~~
响应格式
# 响应行 [ 协议版本] | [状态码] | [ 状态描述]
HTTP/1.1CR 200 CR OK CRLF
# 响应头
Date: Fri,22 May ... CRLF
Content-Type: application/json;charset=UTF-8 CRLF
CRLF
# 响应体
abcdefg~~
请求方法 | 描述 |
---|
Get | 获取 |
Head | 获取报文 |
Put | 修改 |
Delete | 删除 |
Options | 查看服务器性能 |
Connect | 预留给可以将链接改为管道方式的代理服务器 |
Trace | 测试 |
状态码 | 描述 | 说明 |
---|
200 | OK | 正确的状态码 |
202 | Accepted | 标识服务端已接收请求消息,但是尚未处理,稍后发送异步告知客户端的处理结果 |
204 | NO Content | 操作成功,不在响应正文中返回数据 |
301 | 永久重定向 | 请求的资源已经移动到了有Location头部指定的url中(浏览器普遍重定向时不会修改Http Method和Body数据,但是部分浏览器可能有问题)建议 Get/Head方法使用301 ,其他方法使用308代替301 |
302 | Found | 临时重定向,请求的资源临时移动到由响应头Location指定的URL中 |
400 | BadRequest | 参数无效 |
401 | Unauthorized | 缺少服务端需要的身份验证"凭证" |
403 | Forbidden | 身份验证失败,权限不足等等 |
404 | Not Found | 请求的资源不存在 |
405 | Method Not Allowed | 请求方法不匹配 |
500 | Internal Server Error | 服务端未知错误 |
502 | Bad GateWay | 网关接收的的响应是无效的 |
503 | Service Unavailable | 服务端尚未准备好接收请求 |
504 | GateWay Timeout | 网关或代理服务器超时 |
协议 | 描述 |
---|
file | 文件协议 |
ftp | 文件传输协议 |
http/https | 超文本传输协议/安全的超文本传输协议 |
mailto | 电子邮件地址 |
tel | 电话 |
urn | 统一资源名称 |
WebSocket | 加密的WebSocket |