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

响应消息开头是状态行——状态码首位分类:2 成事、3 搬家、4 客户端的错、5 服务器的错;浏览器按 Content-Type 决定把回信当什么画。

📝 本节和前面几节的关系

信发出去了;本篇读回信——状态行怎么读、数据怎么交给下一步。

一、状态行先报结果

格式【版本 状态码 短语】,如 HTTP/1.1 200 OK。 状态码首位即分类,不必背具体号码。

二、响应也有头和体

头部同样一行一条;Content-Type 说明数据是什么类型 (text/html、image/jpeg……),Content-Length 说明多长。 浏览器凭这些决定渲染方式。

三、动手 Demo:读懂响应的状态码

状态码四位分类+一条完整响应:

for a, m, ex in [('2','成了','200 OK'),
               ('3','搬家了','301 / 302'),
               ('4','客户端的错','404 Not Found'),
               ('5','服务器的错','500 Internal Server Error')]:
    print('%sxx  %-8s %s' % (a, m, ex))

实跑输出:

--------------------------------------------------------------------
读懂响应的状态码
--------------------------------------------------------------------
  响应消息开头一行是状态行,状态码按首位分类:

  首位     含义                     典型例子
  --------------------------------------------------------------
  2xx      成了                     200 OK
  3xx      东西搬家了,去别处拿     301 永久移动 / 302 临时移动
  4xx      客户端的错               404 Not Found
  5xx      服务器这边的错           500 Internal Server Error
  --------------------------------------------------------------

  一条完整响应:

    HTTP/1.1 200 OK
    Content-Type: text/html
    Content-Length: 128
    (空行)
    <html> ... 页面数据 ... </html>

  浏览器拿到后按 Content-Type 决定【把它当什么画】。

教材成书时 3xx 常见 301/302;2026 年 CDNs 把 3xx 用在 就近跳转上更频繁——分类本身没变。

30 秒实验

  1. 访问一个不存在的路径,看状态码首位是不是 4。
  2. 找一条 301 跳转(输 http 网址看是否跳 https)。
  3. 在网络面板里读一条图片请求的 Content-Type。

常见误区

  1. 以为 404 是服务器坏了——4 开头是客户端侧的错(地址写错等)。
  2. 以为浏览器拿到什么画什么——先看 Content-Type 再决定怎么处理。
自测三问(点开对答案) 1. 状态码首位 2、4、5 各代表什么? —— 2 成事、4 客户端的错、5 服务器的错。 2. 浏览器靠哪个头部决定渲染方式? —— Content-Type。 3. 3 开头的状态码让你做什么? —— 去新的地址拿(重定向)。

相关笔记