美文网首页Java
HTTP协议的状态码解读

HTTP协议的状态码解读

作者: 望月从良 | 来源:发表于2020-05-25 12:05 被阅读0次

当客户端把请求发送给服务器后,对方会根据处理结果返回一系列HTTP数据包。其中第一行就用给定格式表明服务器对请求处理的结果。第一行包括三部分信息,第一部分是一个数值,也叫状态码,用来表明请求是否成功,第二部分是对状态码的字符串解读,用于说明状态码表示的含义,第三部分就是协议的版本。

第一部分的数值其实是用于机器解读,因为机器适用于解读数值。第二部分字符串其实是为了方便与人来解读。状态码跟我们前面描述的FTP协议一样拥有给定形式,它由三位数字组成,其中第一位数字的作用最为重要,它用于表达状态的分类,第二和第三位数字能够组合成100种情况,是对第一位数字所表明的给定分类下的进一步解读,通常状态码以”xyy"的形式给出,我们先看x表示的含义:

状态码格式 含义 说明
1yy 说明类消息 用于说明某些信息,并不表明请求是否成功
2yy 请求成功 客户端发来的请求被服务器正常处理并返回相应结果
3yy 重定向 请求没有成功,需要客户端采取指定措施来确保请求能得到执行
4yy 客户端错误 请求无效,存有语法错误或者服务器因为某些原因无法完成请求,并且服务器认为原因来自于客户端
5yy 服务器错误 客户请求合法,但是由于服务器原因无法完成请求

从上表看出,第一个数字将信息分成了5大类,接下来的yy用于对某一类情况进行具体描述,例如常见的404,第一个数字4表示客户端请求出错,接下来的“04”表示服务器没有客户端请求的数据。“00”表示通用信息,它不给出具体的说明,通常情况下表明当前情况不属于任何特定情况,例如“400”只是表示客户端出错,但服务器无法详细说明客户端出了什么具体问题。

接下来是状态码的字符串说明,这是为了能够给人类提供容易读懂的信息。这部分信息能被服务器的管理员进行调整,它只是简短的描述相应信息,更多详细说明可能包含在数据包里面。我们看看常用的状态码及其字符串描述

状态码格式 字符串 说明
100 Continue 客户端可以继续向服务器发送请求,因为后面是00,因此它是通用信息
101 Switching Protocols 客户端必须Upgrade包头要求服务器使用新版本协议并且服务器同意了请求
200 OK 客户端请求被服务器接受
201 Created 请求成功同时被请求的资源正在生成,通常情况下该状态码用于回复PUT请求
202 Accepted 请求被服务器接受但还未被处理
203 No-Authoritative Information 请求成功,但是返回的某些信息并非来自当前服务器而是其他第三方
204 No Content 请求成功,但服务器认为无需返回任何信息给客户端
205 Reset Content 请求成功,服务器要求客户端重置被返回的文本以便防止继续发送类似请求,该回复通常用于表格提交
206 Partial Content 请求成功,并部分完成了GET请求,具体内容在后续章节详解
300 Multiple Choices 服务器返回多条解释信息,客户端从返回的多条信息中选择最适合自己的一条

更多的信息在我们后续实现协议时再进行解读。这里我们再看看返回码100。通常情况下客户端发送给服务器一个完整请求然后等待服务器的处理结果,但是某些情况下客户端会先试探服务器是否愿意接收客户端要发送的请求,如果服务器愿意,客户端再发送请求。在特殊情况下,客户端可能会向服务器发送含有大量数据的请求。

这种情况下客户端就得实现看看服务器是否愿意接收请求,它会发生一个特殊请求包头:"Expect : 100-continue",如果服务器支持这种包头,它就会处理该请求包头,然后会返回"100 Continue"作为初始回应,这等于告诉客户端继续发送余下的请求,然后客户端服务器进入正常的请求回应流程,具体情况在代码实践时再进行详细研究。

更详细的讲解和代码调试演示过程,请点击链接](https://study.163.com/provider/7600199/course.htm?share=2&shareId=7600199)

更多技术信息,包括操作系统,编译器,面试算法,机器学习,人工智能,请关照我的公众号:


这里写图片描述

相关文章

  • HTTP协议的状态码解读

    当客户端把请求发送给服务器后,对方会根据处理结果返回一系列HTTP数据包。其中第一行就用给定格式表明服务器对请求处...

  • HTTP协议状态码

    100(继续)请求者应当继续提出请求。服务器返回此代码表示已收到请求的第一部分,正在等待其余部分。 101(切换协...

  • HTTP协议状态码

    参考 https://tools.ietf.org/html/rfc2616#section-10 超文本传输协议...

  • HTTP协议——状态码

    前言 HTTP状态码是用以表示[网页服务器]响应状态的3位数字代码,最常见的404错误就是其中之一通过状态码我们能...

  • HTTP协议状态码

    表示临时响应并需要请求者继续执行操作的状态代码。 代码说明 100(继续)请求者应当继续提出请求。服务器返回此代...

  • HTTP协议状态码

    http://www.cnblogs.com/shanyou/archive/2012/05/06/2486134...

  • HTTP协议状态码

    一些常见的状态码为:200 – 服务器成功返回网页 404 – 请求的网页不存在 503 – 服务不可用 1xx(...

  • http协议状态码

    协议是指计算机通信网络中两台计算机之间进行通信所必须共同遵守的规定或规则,超文本传输协议(HTTP)是一种通信协议...

  • HTTP协议状态码

    常用的HTTP状态码有 1,400 请求的参数有错 2 ,401 没有通过认证 3,403 权限不够 4 ,404...

  • http协议状态码

    1XX 信息性状态码 这些状态码是HTTP 1.1引入的。 对于这些状态码的价值还存在争论 (我个人从来没见过这些...

网友评论

    本文标题:HTTP协议的状态码解读

    本文链接:https://www.haomeiwen.com/subject/xzyjahtx.html