🔌 第一章 浏览器生成消息
📄 一句话概括

HTTP 的全部思路就是一句话:客户端发请求、服务器回响应;请求消息写两个关键词——对什么(URI)和进行怎样的操作(方法)。

📝 本节和前面几节的关系

前三节解决【地址怎么读】;本篇讲【读出来之后怎么开口要】——HTTP 交互的基本形状。

一、一来一回的形状

客户端主动发请求,服务器被动回响应—— 服务器不主动说话,这个被动性决定了整个成本模型。 消息内容与步骤由 HTTP 协议定义。

二、两个关键词

对什么=URI(统一资源标识符,页面上每样东西一个); 进行怎样的操作=方法(GET 取、POST 塞、PUT 换……)。

三、一次一个文件的硬规定

每条请求只能写 1 个 URI——网页里有 3 张图, 就要发 4 条请求(页面 1 条+图 3 条)。 这个规定直接影响后面 5.3/5.4 节的负载分摊设计。

四、动手 Demo:HTTP 的一句话读法

把常用方法列成表,用途一目了然:

for m, act in [('GET',  '取回 URI 指向的数据'),
             ('POST', '把表单内容塞给服务器'),
             ('PUT',  '替换 URI 指向的文件'),
             ('DELETE','删除 URI 指向的文件'),
             ('HEAD', '只要响应头部'),
             ('OPTIONS','问服务器支持哪些方法')]:
    print('%-8s %s' % (m, act))

实跑输出:

--------------------------------------------------------------------
HTTP 的一句话读法
--------------------------------------------------------------------
  请求消息的骨架只有一句话:【对什么 + 进行怎样的操作】

  操作(方法)     含义                       典型用途
  -----------------------------------------------------------
  GET              取回 URI 指向的数据        点开网页、下载
  POST             把表单内容塞给服务器       登录、提交订单
  PUT              替换 URI 指向的文件        上传网页
  DELETE           删除 URI 指向的文件        很少开放
  HEAD             只要响应头部,不要数据     探测链接有效性
  OPTIONS          问服务器支持哪些方法       跨域预检
  -----------------------------------------------------------

  一条请求只能带一个 URI——网页里 3 张图,就要 4 条请求
  (页面 1 条 + 图 3 条),这是硬规定。

教材列了 9 种方法,常用的是 GET/POST 两个; 2026 年的 Web 开发里 OPTIONS 因为跨域预检(CORS)出场率变高了。

30 秒实验

  1. 打开一个普通网页,数网络面板里有多少条请求——对照页面上图片数。
  2. 用 curl -X OPTIONS 问一下某网站支持哪些方法(多数会拒答)。
  3. 提交一次搜索表单,在地址栏和请求里分别找到【对什么】和【方法】。

常见误区

  1. 以为服务器会主动推数据——基础 HTTP 是客户端拉、服务器回。
  2. 以为一条请求能带多个文件地址——每条只能一个 URI。
自测三问(点开对答案) 1. HTTP 请求消息必须写明的两个关键词是什么? —— 对什么(URI)和进行怎样的操作(方法)。 2. 一个网页有 3 张图片,要发几条请求? —— 4 条(页面 1 + 图 3)。 3. GET 和 POST 的典型分工是什么? —— GET 取数据,POST 提交表单。

相关笔记