当前位置:网站首页>总结出现2xx、3xx、4xx、5xx状态码的原因
总结出现2xx、3xx、4xx、5xx状态码的原因
2022-07-05 21:34:00 【51CTO】
1、状态码告知从服务器端返回的请求结果
状态码的职责是当客户端向服务器端发送请求时,描述返回的请求结果。借助状态码,用户可以知道服务器端是正常处理了请求,还是出现了错误。
类别 | 原因 | |
---|---|---|
1XX | Informational(信息性状态码) | 接受请求正在处理 |
2XX | Success(成功状态码) | 请求正常处理完毕 |
3XX | Redirection(重定向状态码) | 需要进行附加操作以完成请求 |
4XX | Client Error(客户端错误状态码) | 服务器无法处理请求 |
5XX | Server Error(服务器错误状态码) | 服务器处理请求出错 |
1.1、2XX 成功
2xx的响应结果表明请求被正常处理了。
1.1.1、200 OK
表示从客户端发过来的请求在服务器中被正常处理了。在响应报文内,随着状态码一起返回的信息会因方法的不同而发生改变。比如:
- 使用 GET 方法时,对应请求资源的实体会作为响应返回;
- 使用 HEAD 方法时,对应请求资源的实体首部不随报文主体作为响应返回(即在响应中只返回首部,不会返回实体的主体部分)。
1.1.2、204 No Content
该状态码代表服务器接收的请求已成功处理,但在返回的响应报文中不含实体的主体部分。另外,也不允许返回任何实体的主体。比如:当从浏览器发出请求处理后,返回204响应,那么浏览器显示的页面不发生更新。一般在只需要从客户端往服务器发送信息,而对客户端不需要发送新信息内容的情况下使用。
1.1.3、206 Partial Content
该状态码表示客户端进行了范围请求,而服务器成功执行了这部分的GET请求。响应报文中包含由Content-Range指定范围的实体内容。
1.2、3XX重定向
3XX响应结果表明浏览器响应执行某些特殊的处理以正确的处理请求。
1.2.1、301 Moved Permanently
永久重定向。改状态码表示请求的资源被分配到了新的URI,以后应使用资源现在所指的URI。也就是说,如果已经把资源对应的URI保存为书签了,这时应该按照location首部字段提示的URI重新保存。
1.2.2、302 Found
临时重定向。该状态码表示请求的资源已经分配了新的URI,希望用户(本次)能使用新的URI访问。这个状态码和301 Moved Permanently状态码差不多,但302的状态码代表的资源不是被永久移动的,这个是临时的,如果已移动资源对应的URI将来还有可能发生改变。假设用户把URI保存书签了,但是不会像301状态码出现的那样去更新书签,而是仍旧保留返回的302状态码的页面的URI为书签。
1.2.3、303 See Other
该状态码表示由于请求对应的资源存在另一个URI,应使用GET方法定向获取请求的资源。303状态码和302状态码有这相同的功能,但是303状态码明确了是表示客户端应当采用GET方法获取资源,这点与302状态码有区别。比如,当使用POST方法访问CGI程序,其执行后的处理结果是希望客户端能以GET方法重定向到另一个URI上去时,返回303状态码。虽然302 Found状态码也可以实现相同的功能,但这里使用303状态码是最理想的。
当301、302、303响应状态码返回时,几乎所有的浏览器都会把POST改成GET,并删除请求报文内的主体,之后请求会自动再次发送。
301、302标准是禁止将POST方法改变成GET方法的,但实际使用时大家都会这么做。
1.2.4、304 Not Modified
该状态码表示客户端发送附带条件的请求时,服务器端允许请求访问资源,但因发生请求没有满足条件的情况后,直接
返回304 Not Modified(服务器端资源未改变,可直接使用客户端未过期的缓存)。304状态码返回时,不包含任何响应的主体部分。304虽然是被划为3XX类别中,但是和重定向没有啥关系。
1.2.5、307 Temporary Redirect
临时重定向。该状态码与302 Found有着相同的含义。尽管302标准禁止POST变换成GET,但实际使用时大家并不遵守。307会遵照浏览器标准,不会从POST变成GET。但是,对于处理响应时的行为,每种浏览器有可能出现不同的情况。
1.3、4XX客户端错误
4XX的响应结果表明客户端是发生错误的原因所在。
1.3.1、400 Bad Request
该状态码表示请求报文中存在语法错误,当错误发生时,需要修改请求的内容后再次发送请求。另外,浏览器会像200 OK一样对待该状态码。
1.3.2、401 Unauthorized
该状态码表示发送的请求需要有HTTP认证(BASIC认证、DIGEST认证)的认证信息。另外若之前已进行过1次请求,则表示用户认证失败。
返回含有401的响应必须包含一个适用于被请求资源的WWW-Authenticate首部用以质询(challenge)用户信息。当浏览器初次接收到401响应,会弹出认证用的对话窗口。
1.3.3、403 Forbidden
该状态码表明对请求资源的访问被服务器拒绝了。服务器端没有必要给出拒绝的详细理由,但如果想作说明的话,可以在实体的主体部分对原因进行描述,这样就能让用户看到了。未获得文件系统的访问授权,访问权限出现某些问题(从未授权的发送源IP地址试图访问)等列举的情况都可能是发生403的原因。
1.3.4、404 Not Found
该状态码表明服务器上无法找到请求的资源或是服务器无法回应且不知原因,除此之外,也可以在服务器端拒绝请求且不想说明理由时使用。
1.4、5XX服务器错误
1.4.1、500 Internal Server Error
该状态码表明服务器端在执行请求时发生了错误。也有可能是Web应用存在的bug或某些临时的故障。
1.4.2、503 Service Unavailable
该状态码表明服务器暂时处于超负载或正在进行停机维护,现在无法处理请求。如果事先得知解除以上状况需要的时间,最好写入Retry-After首部字段再返回给客户端。
1.4.3、504 Gateway Timeout
该状态码表明服务器端网关超时,无法处理用户请求。
注意:有时候返回的状态码不一定是正确的,这个用户有时候查觉不到,比如Web应用程序内部发生错误,状态码依然返回200 OK,这种情况也经常遇到。
边栏推荐
- 【日常训练--腾讯精选50】89. 格雷编码(看题解才会的)
- Problems encountered in office--
- Parker driver maintenance COMPAX controller maintenance cpx0200h
- int GetMonth( ) const throw( );后面的throw( )什么意思?
- How to send samples when applying for BS 476-7 display? Is it the same as the display??
- Get JS of the previous day (timestamp conversion)
- 【案例】定位的运用-淘宝轮播图
- What are the requirements of UL 2043 test for drive housing in the United States?
- [daily training] 729 My schedule I
- What should I do to prepare for the interview algorithm position during school recruitment?
猜你喜欢
ArcGIS\QGIS无插件加载(无偏移)MapBox高清影像图
JMeter installation under win7
The transformation based on vertx web sstore redis to realize the distributed session of vertx HTTP application
Simple interest mode - evil Chinese style
Comprehensive optimization of event R & D workflow | Erda version 2.2 comes as "7"
Exercise 1 simple training of R language drawing
Opérations de lecture et d'écriture pour easyexcel
Influence of oscilloscope probe on measurement bandwidth
Feng Tang's "spring breeze is not as good as you" digital collection, logged into xirang on July 8!
2.2 basic grammar of R language
随机推荐
CLion配置visual studio(msvc)和JOM多核编译
Deep merge object deep copy of vant source code parsing
Xlrd common operations
秋招将临 如何准备算法面试、回答算法面试题
Postgres establish connection and delete records
校招期间 准备面试算法岗位 该怎么做?
Learning notes of statistical learning methods -- Chapter 1 Introduction to statistical learning methods
EBS Oracle 11g 克隆步骤(单节点)
Oracle检查点队列–实例崩溃恢复原理剖析
Teach yourself to train pytorch model to Caffe (I)
one hundred and twenty-three thousand four hundred and fifty-six
Chap2 steps into the palace of R language
递归查询多级菜单数据
Selenium's method of getting attribute values in DOM
Oracle HugePages没有被使用导致服务器很卡的解决方法
@Validated基础参数校验、分组参数验证和嵌套参数验证
Test of incombustibility of cement adhesives BS 476-4
EN 438-7 laminated sheet products for building covering decoration - CE certification
面试官:并发编程实战会吗?(线程控制操作详解)
Zhang Lijun: penetrating uncertainty depends on four "invariants"