这里是修真院前端小课堂,每篇分享文从
【背景介绍】【知识剖析】【常见问题】【解决方案】【编码实战】【扩展思考】【更多讨论】【参考文献】
八个方面深度解析前端知识/技能,本篇分享的是:
【HTTP状态码有哪些?分别代表是什么意思?】
【JS-task5】HTTP状态码有哪些?分别代表是什么意思?
1.背景介绍
当浏览者访问一个网页时,浏览者的浏览器会向网页所在服务器发出请求。
当浏览器接收并显示网页前,此网页所在的服务器会返回一个包含HTTP状态码的信息头(server header)用以响应浏览器的请求。
HTTP状态码由三个十进制数字组成,三位数字代码分别代表着不同的请求状态,第一个十进制数字定义了状态码的类型,后两个数字没有分类的作用。
2.知识剖析
HTTP状态码分类
HTTP状态码共分为5种类型:
1开头:(被接受,需要继续处理。)这一类型的状态码,代表请求已被接受,需要继续处理。这类响应是临时响应,只包含状态行和某些可选的响应头信息,并以空行结束。
2开头 (请求成功)这一类型的状态码,代表请求已成功被服务器接收、理解、并接受
3开头 (请求被重定向)这类状态码代表需要客户端采取进一步的操作才能完成请求。通常,这些状态码用来重定向,后续的请求地址(重定向目标)在本次响应的 location 域中指明。
4开头:(请求错误)这类的状态码代表了客户端看起来可能发生了错误,妨碍了服务器的处理。除非响应的是一个 HEAD 请求,否则服务器就应该返回一个解释当前错误状况的实体,以及这是临时的还是永久性的状况。这些状态码适用于任何请求方法。浏览器应当向用户显示任何包含在此类错误响应中的实体内容。
5开头:(服务器错误)这类状态码代表了服务器在处理请求的过程中有错误或者异常状态发生,也有可能是服务器意识到以当前的软硬件资源无法完成对请求的处理。除非这是一个HEAD 请求,否则服务器应当包含一个解释当前错误状态以及这个状况是临时的还是永久的解释信息实体。浏览器应当向用户展示任何在当前响应中被包含的实体。
如何记忆这些状态码
Http 状态码是做Web开发的必备的基础知识,面试中也会经常出现这方面的考题。但是要记住全部的状态码不是一件容易的事,部分状态码记忆:
200 欢迎回来,主人 (正常;请求已完成。)
301 人家搬家了 (已移动 — 请求的数据具有新的位置且更改是永久的。)
307 不是这里,换个地方啦 (重新请求的URL,客户端自动重新请求新的地址)
400 不要把奇怪的东西给人家嘛 (错误请求 — 请求中有语法问题,或不能满足请求。)
403 这里不可以啦!(禁止 — 即使有授权也不需要访问。)
404 这里什么都没有 --- 人家是平的啦。 (找不到 — 服务器找不到给定的资源;文档不存在。)
405 打开方式不对 (资源被禁止)
414 这... 太长了啦 (请求 - URI 太长)
500 服务姬坏掉了啦 (内部错误 — 因为意外情况,服务器不能完成请求。)
503 不要...人家还没准备好啦 (无法获得服务 — 由于临时过载或维护,服务器无法处理请求。)
101 服务姬傲娇中 (服务器将遵从客户的请求转换到另外一种协议)
100 人家... 还要... (初始的请求已经接受,客户应当继续发送请求的其余部分。
3 常见问题
有哪些常见的状态码?
一般只需要了解以下常见的状态码就够了:
200 OK:服务器成功处理了请求(这个是我们见到最多的)
301 Moved Permanently:资源移动。所请求资源自动到新的URL,浏览器自动跳转到新的URL
304 Not Modified:服务端的资源与客户端上一次请求的一致,不需要重新传输,客户端使用本地缓存的即可
400 Bad Request:用于告诉客户端它发送了一个错误的请求
404 Not Found:(页面丢失)未找到资源
500 Internal Server Error:服务器内部出现了错误
501 Internal Server Error:服务器遇到一个错误,使其无法对请求提供服务
5.编码实战
6.扩展思考
301和302都是重定向,他们之间有什么区别呢?
301为永久移动。请求的资源已被永久的移动到新URL,返回信息会包括新的URL,浏览器会自动定向到新URL。今后任何新的请求都应使用新的URL代替。
302为临时移动。与301类似。但资源只是临时被移动。客户端应该继续使用原有URL。
HTTP状态码451是什么?
根据定义,HTTP 451错误代码状态出现,代表该网页可能对于国家安全产生危险,或是该网页可能违反著作权、隐私权、亵渎神明或其他法律或法院命令。
简单的讲 就是由于某些政治原因,所以,该页面不予访问
418有什么典故?
418,内容是I'm a teapot,算是一个彩蛋。
源于IETF在1998年愚人节时发布的一个超文本咖啡壶控制协议,当客户端给一个茶壶发送泡咖啡的请求时,茶壶就返回一个418错误状态码,表示“我是一个茶壶”。
7.参考文献
参考一: 菜鸟教程
参考二: 让HTTP萌娘帮你记住状态码吧
参考三: 415
参考四: 超文本咖啡壶控制协议
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。