那些常见的 HTTP 状态码

HTTP 响应状态码是什么

状态码是 HTTP 响应报文的内容之一,早期的 HTTP/0.9 中并没有状态码这一个定义,所以在实际的请求过程中,客户端很难知道这次请求服务器是否成功处理,或者如果发生错误后,错误的原因是什么。到了 HTTP/1.1 后,引入了状态码的概念。

状态码由三位数字组成,用来指示服务端的响应状态。

状态码对客户端的运行策略有着很重要的影响,正确的使用状态码有助于不同客户端的优化,如在浏览器中,可以使用状态码控制缓存。

分类

HTTP 响应状态码用来表明特定 HTTP 请求是否成功完成。 响应被归为以下五大类:

状态码 含义
1XX 信息响应(服务器收到请求,要求请求者继续执行操作)
2XX 成功响应(请求已成功被服务器接收、理解和接受)
3XX 重定向(需要进行额外操作以完成请求)
4XX 客户端错误(请求包含语法错误或无法被服务器理解)
5XX 服务端错误(服务器在处理请求时发生错误)

常见的http状态码

状态码 短语 中文短语 含义
100 Continue 继续 表示客户端应继续请求
101 Continue Swithcing Protocols 切换协议 服务器理解并将切换协议
200 OK 成功 请求成功,响应包含请求的资源
201 Created 资源创建 请求成功并创建了新的资源
204 No Content 无内容 请求(删除)成功,响应体无内容返回
301 Moved Permanently 永久重定向 请求的资源已永久移动到新位置
302 Found 临时重定向 请求的资源临时从不同的 URI 响应请求
304 Not Modified 资源未修改 客户端缓存的资源未修改,可以直接使用本地缓存(重定向到本地缓存)
307 Temporary Redirect 临时重定向 302 但请求方法不变
308 Permanent Redirect 永久重定向 301 但请求方法不变
400 Bad Request 请求错误 客户端请求有语法错误,服务器无法理解
401 Unauthorized 未授权 未提供身份验证凭证
403 Forbidden 禁止访问 服务器理解请求,但拒绝执行
404 Not Found 未找到 服务器找不到请求的资源
405 Method Not Allowed 方法不被允许 请求行中指定的请求方法不能用于请求相应的资源
500 Internal Server Error 服务器内部错误 服务器遇到未知错误
502 Bad Gateway 无效网关 服务器作为网关,从上游服务器收到了一个无效的响应
503 Service Unavailable 服务不可用 服务器当前无法处理请求,通常是由于临时过载或维护
504 Gateway Timeout 网关超时 服务器作为网关,未及时从上游服务器收到响应

301、308 永久重定向,意味着原始URL不再可用,搜索引擎、RSS、爬虫会更新旧的URL的资源。并且浏览器会缓存301重定向,无法更改为其他的重定向,除非用户清除历史记录。

一些有趣的404页面

浏览的目的是为了留住用户,当用户访问的网站上不存在或已删除的页面,一个好的404页面可以引导用户使用网站其他页面,而不是关闭窗口离开,从而消除用户的挫败感。

而这恰好对应了心理学上的"峰终定律":对一件事物的体验之后,所能记住的就只是在峰与终时的体验。而一个好的自定义的404页面,甚至可以把"谷"变为"峰"。下面会展示一些我认为有趣的404页面:

b站的404页面,有小漫画可以看

Google的小机器人

github的章鱼猫Octocat

知乎风格的404页面

magicalmirai的404页面,可爱的miku~

相关推荐
coding随想2 小时前
JavaScript ES6 解构:优雅提取数据的艺术
前端·javascript·es6
小小小小宇2 小时前
一个小小的柯里化函数
前端
灵感__idea2 小时前
JavaScript高级程序设计(第5版):无处不在的集合
前端·javascript·程序员
小小小小宇2 小时前
前端双Token机制无感刷新
前端
小小小小宇2 小时前
重提React闭包陷阱
前端
小小小小宇2 小时前
前端XSS和CSRF以及CSP
前端
UFIT2 小时前
NoSQL之redis哨兵
java·前端·算法
超级土豆粉3 小时前
CSS3 的特性
前端·css·css3
星辰引路-Lefan3 小时前
深入理解React Hooks的原理与实践
前端·javascript·react.js
wyn200011283 小时前
JavaWeb的一些基础技术
前端