HTTP 是 Web 的基石协议,理解它对前端、后端、运维都至关重要。从 HTTP/1.1 到最新的 HTTP/3,演进体现了对性能的不懈追求。
一、请求与响应
HTTP 是无状态的请求-响应协议:
- 请求:方法 + URL + 头 + 体
- 响应:状态码 + 头 + 体
二、请求方法
GET:获取资源(幂等、可缓存)POST:提交数据(创建资源)PUT:更新整个资源(幂等)DELETE:删除资源(幂等)PATCH:部分更新
"GET 和 POST 区别"是经典面试题。核心:GET 用于获取(安全幂等),POST 用于提交(可能改变状态)。本质是语义不同,而非长度限制。
三、状态码
1xx 信息 2xx 成功 3xx 重定向
4xx 客户端错误 5xx 服务端错误
200OK,201Created301永久重定向,302临时重定向304Not Modified(用缓存)400请求错误,401未认证,403无权限,404不存在500服务器错误,502网关错误,503不可用
四、常用请求头
Host: example.com # 目标主机(虚拟主机靠它区分)
User-Agent: ... # 客户端标识
Cookie: session=abc # 携带 Cookie
Authorization: Bearer xxx # 认证令牌
Content-Type: application/json # 请求体类型
五、HTTP/1.1 → HTTP/2 → HTTP/3 演进
- HTTP/1.1:keepalive 复用连接,但队头阻塞
- HTTP/2:二进制分帧、多路复用、头部压缩、服务器推送
- HTTP/3:基于 QUIC(UDP),彻底解决队头阻塞,弱网更快
六、HTTPS
HTTP + TLS 加密 = HTTPS。解决明文传输的安全问题:加密防窃听、完整性防篡改、证书防冒充。
七、实战观察
用 curl 或浏览器 F12 → Network 面板,能直观看到每个请求的方法、状态码、头信息,是学习 HTTP 的最佳方式。
八、小结
HTTP 是理解整个 Web 的钥匙。从方法、状态码、头开始,逐步深入版本演进和安全机制,前端后端运维都受益。