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~
