01. HTTP 是什么?
HTTP 全称超文本传输协议,说白了就是浏览器和服务器之间聊天的规矩。你输入网址、点按钮、看视频,背后全是它在干活。
HTTP 最大的特点是「无状态」——服务器记不住你上次来过没有,就像无人便利店,每次结账都当你是个新客。那怎么记住你呢?靠 Cookie、Session 这些「小本本」帮你记。
02. HTTP 请求长啥样?
一个 HTTP 请求就像寄一封信,包含几个部分:
请求行——告诉服务器你要干啥(GET?POST?)和找谁
请求头——附加信息,比如你用什么浏览器、能接什么格式
一个空行作为分隔
请求体——你提交的具体数据(比如填的表单)
服务器看完会回你一封信(响应),里面有状态码(200 成功、404 找不着等等)、响应头、响应体。
bash
# 用 curl 看 HTTP 请求响应的完整过程
curl -v https://httpbin.org/get
# 发 POST 请求
curl -X POST https://httpbin.org/post \
-H "Content-Type: application/json" \
-d '{"name": "张三"}'
# 只想要状态码
curl -o /dev/null -s -w "%{http_code}" https://example.com03. GET、POST 和其他「动词」
GET 就像去图书馆查书——参数跟在 URL 后面,谁都能看到,适合获取数据和搜索。
POST 像寄快递——数据藏在请求体里,外面看不见,适合提交表单、登录。
另外还有 PUT(整个替换资源)、PATCH(局部修改)、DELETE(删掉),合在一起就是 RESTful API 那一套。
04. HTTP 状态码速记法
状态码就是服务器给你的「反馈」:
200 —— OK,一切正常
301 —— 我搬家了,以后去新地址
302 —— 临时换个地方
304 —— 内容没变,用你缓存的就行
400 —— 你的请求有问题,我看不懂
401 —— 没登录呢,先去认证
402 ——
403 —— 登了但没权限
404 —— 你要的东西不存在
500 —— 我出 bug 了
502 —— 上游服务器挂了
503 —— 我太忙,过会再来
口诀:2 开头是好事,3 开头要跳转,4 开头你的锅,5 开头服务器的锅。
304 配合缓存能省大量带宽,是优化利器。
05. HTTP/1.1、HTTP/2、HTTP/3 的进化
HTTP/1.1 用了二十多年,最大的痛点是「队头阻塞」——前面请求没完成,后面的得排队等,跟单车道堵车一样。
HTTP/2 支持多路复用,多个请求在同一连接上齐头并进。还能头部压缩、服务器主动推送。
HTTP/3 更进一步,底层从 TCP 换成 QUIC(基于 UDP),建连更快,彻底消灭了 TCP 层面的队头阻塞。现在主流网站基本都上 HTTP/2 了。
知识测验
第 1/6 题正确 0
HTTP 状态码 404 表示什么?
下一节
下一节 HTTPS 与 TLS