目录
1、HTTP概念
HTTP(HyperText Transfer Protocol,超文本传输协议)是用于在客户端(如浏览器)和服务器之间传输超媒体文档(如网页)的应用层协议。
特点:
- 无状态:每次请求独立(用Cookie/Session记录状态)。
- 明文传输(HTTP)或加密传输(HTTPS)。
2、工作流程
DNS找IP → TCP连80 → 发请求 → 收响应 → 关连接 → 渲染页面
DNS解析
浏览器通过DNS服务器将域名www.someSchool.edu
解析为IP地址。建立TCP连接
HTTP客户端(浏览器)在 80端口 与服务器建立TCP连接(通过套接字)。发送HTTP请求
客户端发送HTTP请求报文,包含请求的资源路径(如/someDepartment/home.index
)。服务器处理请求
服务器解析请求,从存储(内存/磁盘)中检索资源,封装为HTTP响应报文。返回响应并关闭连接
服务器通过套接字返回响应,等待客户端接收完成后 关闭TCP连接。客户端渲染页面
客户端接收响应,解析HTML文件,加载内嵌资源(如图片、CSS),最终渲染显示给用户。
注意:人们使用的域名解析(DNS)转换为对应的IP地址,从而让计算机等网络设备能够通过IP地址找到相应的服务器或主机来进行通信交互
3、HTTP vs HTTPS
HTTP | HTTPS | |
---|---|---|
安全 | 明文 | 加密 |
端口 | 80 | 443 |
4、HTTP请求特征总结
1、简单
- 报文格式(请求+响应):
header + body
- 头部信息:
key-value
文本形式(如Content-Type: text/html
)
2、灵活可扩展
- 可自定义:请求方法(GET/POST)、状态码(200/404)、头字段等。
- 下层灵活:
- HTTPS = HTTP + SSL/TLS(加密)
- HTTP/3 = HTTP + QUIC(基于UDP,更快)
3、跨平台
- 适用场景:PC浏览器、手机APP、游戏、支付等。
5、持久性和非持久性连接
非持久连接(HTTP/1.0)
- 每次请求都需新建TCP连接(三次握手)
- 响应后立即断开连接
- 缺点:
- 高延迟(频繁握手)
- 服务器压力大(维护多个连接)
持久连接(HTTP/1.1)
- 复用同一条TCP连接处理多个请求
- 默认保持连接(除非主动关闭)
- 优点:
- 减少握手次数
- 提升加载速度
- 降低服务器负载