前端与后端开发都要懂得 HTTP 状态码
2024年5月23日
💎 加入 E+ 成長計畫 與超過 500+ 位軟體工程師一同在社群中成長,並且獲得更多的軟體工程學習資源
现代的软体开发,前后端的沟通经常是透过 HTTP 协定来完成,因此 HTTP 状态码会是前端与后端软体工程师,都应该要懂得。一起透过这篇文章来了解吧!
什么是 HTTP 状态码?
HTTP 状态码是伺服器在回应客户端请求时返回的状态码(如下图)。这些状态码告诉客户端请求的结果状态,让客户端能够了解伺服器的反应。最常见的状态码包括:200(请求成功)和 404(找不到页面)。
以下是对 HTTP 状态码的详细介绍,分为五个类别:
1xx ~ 5xx 五个类别状态码
1xx 类状态码:请求处理中
当今天看到 1 开头的状态码,表示请求正在进行中,要稍待片刻,常见的包含:
- 100 Continue:客户端可以继续请求。通常在客户端已发送请求的初始部分后使用,表示伺服器已接收请求的初步部分,客户端应继续发送其余部分。
- 101 Switching Protocols:伺服器正在切换到客户端请求的协议。这在客户端请求更改协议(如从 HTTP/1.1 切换到 HTTP/2)时使用。
2xx 类状态码:请求成功
当今天看到 2 开头的状态码,表示没问题,请求已成功处理。常见的包含:
- 200 OK:请求成功。这是最常见的状态码,表示请求已成功处理且伺服器已返回所请求的资源。
- 201 Created:请求成功且伺服器已创建了新的资源。通常在 POST 或 PUT 请求后返回,表示新资源已成功创建。
- 204 No Content:请求成功但伺服器未返回任何内容。这通常在处理不需要返回数据的请求(如删除操作)后使用。
3xx 类状态码:重定向
当今天看到 3 开头的状态码,表示不在这边,请求需要重新转导,常见的包含:
- 301 Moved Permanently:请求的资源已永久移至新位置。客户端应该使用新的 URL 来访问资源。
- 302 Found:请求的资源已临时移至新位置。客户端应该使用当前的 URL 进行后续请求,但伺服器可能会在未来改变此位置。
- 304 Not Modified:用于缓存(HTTP caching),告诉客户端回应未被修改,因此客户端可以继续使用回应的相同缓存版本。(想了解 HTTP caching 可以阅读这篇文章)
4xx 类状态码:客户端错误
当今天看到 4 开头的状态码,表示你搞砸了,这代表请求的错误源自于客户端。常见的包含:
- 401 Unauthorized:请求未被授权。客户端必须进行身份验证以获得请求资源的许可。
- 403 Forbidden:伺服器理解请求但拒绝执行。这通常表示客户端无权访问请求的资源。
- 404 Not Found:请求的资源不存在。这是最常见的错误,表示伺服器找不到客户端请求的资源。
5xx 类状态码:伺服器错误
当你看到 5 开头的状态码,表示伺服器发生错误。常见的 5xx 状态码包括:
- 500 Internal Server Error:伺服器内部错误。这是通用错误,表示伺服器遇到意外情况,无法完成请求。
- 501 Not Implemented:伺服器不支持请求的功能。这表示伺服器尚未实现请求的方法。
- 503 Service Unavailable::伺服器暂时无法处理请求。这通常是由于伺服器过载或正在维护。