什么是HTTP
- 超文本:HTTP传输的内容可以是文本、图片、视频等多种形式的数据。超文本通过超链接(Hyperlink)相互关联,形成了万维网的基础结构。
- 客户端和服务器:HTTP协议使用客户端-服务器模型进行通信。客户端发送请求,服务器接收请求并返回响应。
- 请求和响应:HTTP通信由请求和响应组成。客户端发送请求给服务器,请求包含了要获取或操作的资源信息。服务器接收请求后,处理请求并返回响应,响应包含了请求的结果或错误信息。
工作原理
- 基于TCP/IP:HTTP协议是基于TCP/IP协议栈的应用层协议,利用TCP/IP提供的可靠数据传输和网络连接。
- 无状态协议:HTTP是无状态协议,即每个请求和响应都是独立的,服务器不会保留任何与之前请求相关的信息。为了实现状态管理,可以使用Cookie或Session等机制。
- 请求和响应格式:HTTP请求和响应都由三部分组成:起始行、首部字段和消息体。起始行包含了请求或响应的方法、URL和协议版本等信息。首部字段包含了请求或响应的附加信息。消息体包含了请求或响应的实际数据。
常见的请求方式
| 请求 | 含义 |
|---|---|
| GET | 用于获取资源,请求的参数会附加在URL的后面 |
| POST | 用于提交数据,请求参数包含在请求的消息体中 |
| PUT | 用于创建或更新资源,请求参数包含在请求的消息体中 |
| DELETE | 用于删除资源,请求参数附加在URL后面 |
常见的响应状态码
- 200 OK:请求成功,服务器成功处理了请求。
- 301 Moved Permanently:永久重定向,请求的资源已经被分配了新的URL。
- 404 Not Found:资源未找到,服务器无法找到请求的资源。
- 500 Internal Server Error:服务器内部错误,服务器遇到了意外情况无法完成请求。
扩展
HTTPS
是以安全为目标的HTTP通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性。HTTPS在HTTP的基础上加入了SSL层,HTTPS的安全基础是SSL,因此加密的详细内容需要SSL来承担。它是一个URI scheme(抽象标识符体系),句法类同http:体系,用于安全的HTTP数据传输.
HTTP/2
特点:更快、更稳定、更简单
帧(frame):HTTP/2通信的最小单位,每个帧都包含帧头,至少也会标识出当前帧所属的数据流。
消息:与逻辑请求或响应消息对应的完整的一系列帧。 数据流:已建立的连接内的双向字节流,可以承载一条或多条消息。
RESTful API
基于HTTP协议设计的一种软件架构风格,通过URL和HTTP方法来表示资源和操作。