第 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 Permanently 和 302 Found1。
完整示例(跟着做)
你想打开一篇新闻报道,可能看到下面几种情况:
404 Not Found:报道被删除了,或者 URL 有笔误。作为用户,你可以检查 URL,或者回到首页。500 Internal Server Error:新闻网站的服务器出了问题。你修不了;网站方可以。301 Moved Permanently:报道换了新的 URL。浏览器会自动跟随重定向去新位置。
你来试试(填空示例)
给每个状态码写出类别和该由谁来修:
小结 + 下一步
现在你能从两侧读懂一次 HTTP 交换:请求(方法、路径、请求头)和响应(状态码、响应体)。你能打开 Network 面板,找到一条真实请求,并解释发生了什么。状态码是 4xx,就查请求;是 5xx,就看服务器;是 3xx,就是浏览器在按指示走。
Footnotes
-
MDN: HTTP response status codes — https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Status ↩ ↩2
-
MDN: 404 Not Found — https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Status/404 ↩
-
MDN: 500 Internal Server Error — https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Status/500 ↩