那些常见的 HTTP 状态码

120 阅读4分钟

HTTP 响应状态码是什么

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

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

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

http-0.jpg

分类

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

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

常见的http状态码

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

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

一些有趣的404页面

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

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

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

http-1.jpg

Google的小机器人

http-2.jpg

github的章鱼猫Octocat

http-3.jpg

知乎风格的404页面

http-4.jpg

magicalmirai的404页面,可爱的miku~

http-5.jpg