HTTP协议详解
简介
HTTP(HyperText Transfer Protocol,超文本传输协议)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。HTTP是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器。
HTTP基础概念
- 请求/响应模型
- 客户端发送HTTP请求到服务器
- 服务器处理请求并返回HTTP响应
- 一次请求/响应完成后连接断开
- HTTP方法
- GET: 请求指定的资源
- POST: 向指定资源提交数据
- PUT: 更新指定资源
- DELETE: 删除指定资源
- HEAD: 获取响应头信息
- OPTIONS: 获取服务器支持的HTTP方法
- 状态码
- 1xx: 信息性状态码
- 2xx: 成功状态码(如200 OK)
- 3xx: 重定向状态码(如301 Moved Permanently)
- 4xx: 客户端错误状态码(如404 Not Found)
- 5xx: 服务器错误状态码(如500 Internal Server Error)
- HTTP报文结构
- 起始行: 请求行或状态行
- 首部: 请求头或响应头
- 主体: 可选的消息体
HTTP版本演进
- HTTP/0.9
- 只有一个命令GET
- 没有首部
- 服务器发送完毕就关闭TCP连接
- HTTP/1.0
- 增加POST和HEAD命令
- 增加状态码和首部
- 每次请求都建立新的TCP连接
- HTTP/1.1
- 增加Host字段,实现虚拟主机
- 支持持久连接
- 支持管道化请求
- 增加缓存控制机制
- HTTP/2
- 二进制分帧层
- 多路复用
- 头部压缩
- 服务器推送
HTTP安全
- HTTPS
- HTTP over SSL/TLS
- 数据加密传输
- 身份认证
- 数据完整性保护
- 安全头
- Content-Security-Policy
- X-Frame-Options
- X-XSS-Protection
- Strict-Transport-Security