HTTP 状态码负责表示客户端 HTTP 请求的返回结果、标记服务器端的处理是否正常、通知出现的错误等工作。让我们通过本文的学习,好好了解一下状态码的工作机制。
1 状态码告知从服务器端返回的请求结果
状态码的职责是当客户端向服务器端发送请求时,描述返回的请求结果。
借助状态码,用户可以知道服务器端是正常处理了请求,还是出现了错误。
数字中的第一位指定了响应类别,后两位无分类
这里写图片描述
只要遵守状态码类别的定义,即使改变 RFC2616 中定义的状态码,或服务器端自行创建状态码都没问题。
接下来,我们就介绍一下这些具有代表性的几个状态码。
2 2XX 成功
2XX 的响应结果表明请求被正常处理了。
2.1 200 OK
这里写图片描述
表示从客户端发来的请求在服务器端被正常处理了。
在响应报文内,随状态码一起返回的信息会因方法的不同而发生改变。
比如
使用 GET 方法时,对应请求资源的实体会作为响应返回;
使用 HEAD 方法时,对应请求资源的实体首部不随报文主体作为响应返回(即在响应中只返回首部,不会返回实体的主体部
分)。
3 3XX 重定向
3XX 响应结果表明浏览器需要执行某些特殊的处理以正确处理请求。
3.1 301 Moved Permanently
这里写图片描述
永久性重定向。该状态码表示请求的资源已被分配了新的 URI,以后应使用资源现在所指的 URI。也就是说,如果已经把资源对应的 URI保存为书签了,这时应该按 Location 首部字段提示的 URI 重新保存。
像下方给出的请求 URI,当指定资源路径的最后忘记添加斜杠“/”,就会产生 301 状态码。
3.2 302 Found
这里写图片描述
临时性重定向。该状态码表示请求的资源已被分配了新的 URI,希望用户(本次)能使用新的 URI 访问。
和 301 Moved Permanently 状态码相似,但 302 状态码代表的资源不是被永久移动,只是临时性质的。
换句话说,已移动的资源对应的URI 将来还有可能发生改变。比如,用户把 URI 保存成书签,但不会像 301 状态码出现时那样去更新书签,而是仍旧保留返回 302 状态码的页面对应的 URI
4 4XX 客户端错误
4XX 的响应结果表明客户端是发生错误的原因所在。
4.1 400 Bad Request
这里写图片描述
该状态码表示请求报文中存在语法错误。当错误发生时,需修改请求的内容后再次发送请求。另外,浏览器会像 200 OK 一样对待该状态码。
4.2 404 Not Found
该状态码表明服务器上无法找到请求的资源。除此之外,也可以在服务器端拒绝请求且不想说明理由时使用。
5 5XX 服务器错误
5XX 的响应结果表明服务器本身发生错误。
5.1 500 Internal Server Error
这里写图片描述
该状态码表明服务器端在执行请求时发生了错误。也有可能是 Web应用存在的 bug 或某些临时的故障。
作者:芥末无疆sss
链接:https://www.jianshu.com/p/5307c9d413c0
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
共同学习,写下你的评论
评论加载中...
作者其他优质文章