HTTP:请求与响应入门 · 第 6 / 6 节

第 6 课:页面出错之后:客户端错误、服务器错误与重定向

本课目标:

  • 区分客户端错误(4xx)和服务器错误(5xx)。
  • 认出重定向(3xx),并解释它为什么发生。
  • 用平实的语言解释一次失败的页面加载。

上一篇 << 5

能读懂响应,出错的页面就不再是谜

页面加载失败时,状态码的第一位数字就告诉你该往哪边查。第 3 课学过的类别不只是书本知识,它们是你手上最快的诊断工具。

  • 2xx:请求成功了。
  • 3xx:浏览器被指向了别处(重定向)。
  • 4xx:请求这一侧出了错(客户端错误)。
  • 5xx:服务器在处理时出了故障(服务器错误)1

讲解

客户端错误:4xx

4xx 状态表示服务器收到了请求,但因为请求本身有问题而无法完成。最有名的是 404 Not Found:URL 指向一个不存在的资源2。另一个是 403 Forbidden:服务器知道你是谁,但拒绝把资源给你。

服务器错误:5xx

5xx 状态表示服务器自身出了问题。500 Internal Server Error 是那句通用的「我们这边出错了」3。这类问题通常要网站方来修。

重定向:3xx

3xx 状态表示资源换了位置。服务器会发一个 Location 头,告诉浏览器接下来去哪里。常见的有 301 Moved Permanently302 Found1

完整示例(跟着做)

你想打开一篇新闻报道,可能看到下面几种情况:

  • 404 Not Found:报道被删除了,或者 URL 有笔误。作为用户,你可以检查 URL,或者回到首页。
  • 500 Internal Server Error:新闻网站的服务器出了问题。你修不了;网站方可以。
  • 301 Moved Permanently:报道换了新的 URL。浏览器会自动跟随重定向去新位置。

你来试试(填空示例)

给每个状态码写出类别和该由谁来修:

状态码类别该由谁来修?
4044xx 客户端错误提供了错误 URL 的人,或下架页面的网站方
5005xx 服务器错误服务器的所有者或开发者
3013xx 重定向通常不需要人修;浏览器会跟随重定向

小结 + 下一步

现在你能从两侧读懂一次 HTTP 交换:请求(方法、路径、请求头)和响应(状态码、响应体)。你能打开 Network 面板,找到一条真实请求,并解释发生了什么。状态码是 4xx,就查请求;是 5xx,就看服务器;是 3xx,就是浏览器在按指示走。

Footnotes

  1. MDN: HTTP response status codes — https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Status 2

  2. MDN: 404 Not Found — https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Status/404

  3. MDN: 500 Internal Server Error — https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Status/500

练习

01

访问一个你明知不存在的 URL,比如在真实域名上编一个页面(例如 https://example.com/this-page-does-not-exist)。你在 Network 面板里看到什么状态码?

第 1 级(热身)
完成标准 · 本地勾选
02

写一条可以发给不懂技术的朋友的消息,解释 404 和 500 的区别。

第 2 级(进阶)
完成标准 · 本地勾选