文章目录
- HTTP协议介绍
- HTTP协议拆分
- 统一资源定位符(URL)
- HTTP请求的四个部分
- 1. 请求行(Request Line)
- 2. 请求头(Headers)
- 3. 空行(CRLF)
- 4. 请求体(Body)
- HTTP服务端响应消息
- HTTPS与HTTP区别
- 总结
HTTP协议介绍
HTTP(HyperText Transfer Protocol,超文本传输协议) 是互联网上应用最广泛的 应用层协议,用于客户端(浏览器)与服务器之间的数据通信。
核心特点:
✅ 无状态(Stateless):每次请求独立,不保留用户状态(需Cookie/Session维持会话)
✅ 基于请求-响应模型:客户端发送请求,服务器返回响应
✅ 明文传输(HTTP):数据未加密,HTTPS(HTTP+SSL/TLS)可保障安全
✅ 灵活可扩展:支持Header自定义字段,适应不同应用场景
版本演进:
- HTTP/1.0:短连接(每次请求新建TCP连接)
- HTTP/1.1:长连接(默认复用TCP连接)、管道化(Pipelining)
- HTTP/2:二进制分帧、多路复用、头部压缩
- HTTP/3:基于QUIC协议(UDP),减少延迟
HTTP协议拆分
HTTP协议可拆分为以下核心组件:
统一资源定位符(URL)
URL(Uniform Resource Locator) 用于定位互联网上的资源,格式如下:
协议://主机名[:端口]/路径?查询参数#片段标识
示例:
https://www.example.com:443/search?q=HTTP#section2
HTTP请求的四个部分
一个完整的HTTP请求由以下四部分组成:
1. 请求行(Request Line)
- 格式:请求方法 路径 HTTP/版本
- 示例:
GET /index.html HTTP/1.1
2. 请求头(Headers)
- 描述请求的元信息,每行一个键值对,格式为Header名: 值
- 常见Headers:
Host: www.example.com
User-Agent: Mozilla/5.0
Accept: text/html
Cookie: sessionid=123456
3. 空行(CRLF)
- 分隔Headers和Body,用\r\n表示
4. 请求体(Body)
- 适用场景:POST、PUT等需要传输数据的请求
- 示例(JSON格式):
{"username": "admin","password": "123456"
}
HTTP服务端响应消息
HTTP响应报文:在接收和解释请求消息后,服务器返回一个HTTP响应消息。
HTTP响应也由四个部分组成,分别是:
- 状态行
- 消息报头
- 空行
- 响应正文
HTTPS与HTTP区别
A. HTTP与HTTPS的区别
- HTTP 是超文本传输协议,信息是明文传输,存在安全风险的问题。HTTPS 则解决 HTTP 不安全的缺陷,在 TCP 和 HTTP 网络层之间加入了 SSL/TLS 安全协议,使得报文能够加密传输。
- HTTP 连接建立相对简单, TCP 三次握手之后便可进行 HTTP 的报文传输。而 HTTPS 在 TCP 三次握手之后,还需进行 SSL/TLS 的握手过程,才可进入加密报文传输。
- HTTP 的端口号是 80,HTTPS 的端口号是 443。
- HTTPS 协议需要向 CA(证书权威机构)申请数字证书,来保证服务器的身份是可信的。