本文作者: jsweibo
本文链接: https://jsweibo.github.io/2020/02/09/%E4%BB%80%E4%B9%88%E6%98%AFHTTP/
摘要
本文主要讲述了:
- 什么是 HTTP
- HTTP 消息
正文
什么是 HTTP
HTTP 的全称为”Hypertext Transfer Protocol”,中文意为超文本传输协议
HTTP 被广泛用于客户端与服务器端之间的通信,是万维网数据通信的基石,HTTP 的研发由万维网的发明者蒂姆·伯纳斯-李于 1989 年在欧洲核子研究中心发起
HTTP 发展至今已历经多个版本:
- 1991 年,发布 HTTP/0.9
- 1996 年,发布 HTTP/1.0
- 1997 年,发布 HTTP/1.1
- 2015 年,发布 HTTP/2
- 2018 年,发布 HTTP/3
HTTP 是一种应用层协议,它通过 TCP 协议在客户端与服务器端之间传输数据
HTTP 资源使用 URL 标志
HTTP 消息
HTTP 消息分为 2 种:
- 请求消息
- 响应消息
请求消息
请求消息可以分为 3 部分:
- 请求行
- 请求头
- 请求体
示例:http://127.0.0.1:3000/search?query=123
1 | POST /search?query=123 HTTP/1.1 |
请求行
请求行包括以下 3 个元素:
- 请求方法
- 请求路径
- 协议版本
示例:
1 | POST /search?query=123 HTTP/1.1 |
请求头
示例:
1 | Content-Type: application/x-www-form-urlencoded |
请求体
请求头和请求体之间有一行空行用于表示间隔。
注:并不是所有请求方法都有请求体,例如:GET
、HEAD
、DELETE
、OPTIONS
就没有请求体。
示例:
1 | a=1&b=2&c=3 |
响应消息
响应消息可以分为 3 部分:
- 状态行
- 响应头
- 响应体
示例:
1 | HTTP/1.1 200 OK |
状态行
状态行包括以下 3 个元素:
- 协议版本
- 状态码
- 状态消息
示例:
1 | HTTP/1.1 200 OK |
响应头
示例:
1 | Server: Cowboy |
响应体
响应头和响应体之间有一行空行用于表示间隔。
示例:
1 | [1, 2, 3] |
参考资料
本文作者: jsweibo
本文链接: https://jsweibo.github.io/2020/02/09/%E4%BB%80%E4%B9%88%E6%98%AFHTTP/
本文对你有帮助?请支持我
- 本文链接: https://jsweibo.github.io/2020/02/09/%E4%BB%80%E4%B9%88%E6%98%AFHTTP/
- 版权声明: 除非另有说明,否则本网站上的内容根据署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 进行许可。