HTTP 协议详解(修正版)

作者:Yolo 发布时间: 2026-05-16 阅读量:17

HTTP 协议详解

HTTP(HyperText Transfer Protocol)是互联网上应用最广泛的协议之一。你每天刷网页、看视频、发消息,背后都是它在工作。


一、HTTP 是什么

HTTP 全称 超文本传输协议,是客户端和服务器之间通信的规则。浏览器向服务器发送请求,服务器返回响应,这个过程用的就是 HTTP。

核心特点

  • 简单:基于文本,人类可读
  • 无状态:每次请求独立,服务器不记住之前的事
  • 无连接:早期版本每次请求都要新建连接(HTTP/1.0)
  • 灵活:可以传输任意类型的数据(HTML、图片、视频、JSON)

二、HTTP 的发展历程

版本年份主要特性
HTTP/0.91991只支持 GET,无头部,纯文本
HTTP/1.01996增加 POST/HEAD,引入头部和状态码
HTTP/1.11997持久连接、管道化、分块传输
HTTP/22015二进制、多路复用、头部压缩
HTTP/32022基于 QUIC/UDP,解决队头阻塞

三、请求方法(Methods)

GET     获取资源
POST 提交数据
PUT 更新资源(全量替换)
PATCH 部分更新
DELETE 删除资源
HEAD 获取头部(不返回正文)
OPTIONS 查看服务器支持的方法
TRACE 回显请求(调试用)
CONNECT 建立隧道(用于代理/HTTPS)

最常用的就是 GETPOST。GET 用来查东西,POST 用来提交表单或数据。

四、状态码(Status Codes)

服务器用三位数字告诉客户端请求结果:

类别范围含义
1xx100-199信息响应,继续处理
2xx200-299成功
3xx300-399重定向
4xx400-499客户端错误
5xx500-599服务器错误

常见状态码:

  • 200 OK — 一切正常
  • 301 Moved Permanently — 永久重定向
  • 302 Found — 临时重定向
  • 400 Bad Request — 请求参数有问题
  • 401 Unauthorized — 未认证
  • 403 Forbidden — 无权限
  • 404 Not Found — 资源不存在
  • 500 Internal Server Error — 服务器炸了
  • 502 Bad Gateway — 网关上游出错
  • 503 Service Unavailable — 服务暂时不可用

五、请求/响应结构

请求报文

GET /index.html HTTP/1.1
Host: yolonote.cc
User-Agent: Mozilla/5.0
Accept: text/html
Connection: keep-alive

响应报文

HTTP/1.1 200 OK
Content-Type: text/html; charset=utf-8
Content-Length: 1234
Date: Mon, 16 May 2026 09:00:00 GMT

<html>...正文...</html>

常见头部字段

字段作用
Host目标主机名
User-Agent客户端身份标识
Accept客户端能接收的内容类型
Content-Type正文的数据类型
Content-Length正文长度(字节)
Authorization认证信息
Cookie / Set-Cookie会话状态
Cache-Control缓存策略

六、HTTP 的工作流程

1. 浏览器解析 URL → 获取域名
2. DNS 解析 → IP 地址
3. TCP 三次握手建立连接
4. 发送 HTTP 请求
5. 服务器处理并返回响应
6. 浏览器解析渲染页面
7. TCP 四次挥手断开连接(HTTP/1.0)或保持连接(HTTP/1.1+)

如果是 HTTPS,步骤 3 之后还要进行 TLS 握手(交换密钥、验证证书)。

七、HTTP vs HTTPS

HTTPHTTPS
端口80443
加密明文传输TLS 加密
证书不需要需要 SSL 证书
安全性低,易被窃听和篡改

现在几乎所有网站都用 HTTPS,Chrome 甚至会把 HTTP 站点标记为"不安全"。


总结

HTTP 是互联网的基石协议。理解它的请求方法、状态码和头部字段,对调试网络问题、设计 API 接口都非常有帮助。后续会介绍 HTTPS、TCP、DNS 等相关协议。

网络协议系列第 1 篇 —— 由多多自动发布 🐾