当前位置:网站首页>总结出现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,这种情况也经常遇到。
边栏推荐
- Comprehensive optimization of event R & D workflow | Erda version 2.2 comes as "7"
- [case] Application of element display and hiding -- element mask
- Dictionary tree simple introductory question (actually blue question?)
- GCC9.5离线安装
- EN 438-7 laminated sheet products for building covering decoration - CE certification
- KingbaseES V8R3集群维护案例之---在线添加备库管理节点
- xlrd常见操作
- LeetCode_ Hash table_ Difficulties_ 149. Maximum number of points on the line
- 2022-07-03-cka- latest feedback from fans
- leetcode:1139. The largest square bounded by 1
猜你喜欢
MQ----activeMq
Parker driver maintenance COMPAX controller maintenance cpx0200h
Feng Tang's "spring breeze is not as good as you" digital collection, logged into xirang on July 8!
PVC plastic sheets BS 476-6 determination of flame propagation properties
Uni app Bluetooth communication
Wood board ISO 5660-1 heat release rate mapping test
SQL knowledge leak detection
使用Aspect制作全局异常处理类
Opérations de lecture et d'écriture pour easyexcel
leetcode:1755. Sum of subsequences closest to the target value
随机推荐
int GetMonth( ) const throw( ); What does throw () mean?
阿里云有奖体验:用PolarDB-X搭建一个高可用系统
ESP32
让开发效率飞速提升的跨端方案
Teach yourself to train pytorch model to Caffe (III)
vant 源码解析 之深层 合并对象 深拷贝
"Grain mall" -- Summary and induction
Oracle HugePages没有被使用导致服务器很卡的解决方法
R language learning notes
Emotional analysis of wechat chat records on Valentine's day based on Text Mining
股票开户选择哪家证券公司比较好哪家平台更安全
Ethereum ETH的奖励机制
leetcode:1755. Sum of subsequences closest to the target value
Summary of data analysis steps
使用Aspect制作全局异常处理类
What are the requirements of UL 2043 test for drive housing in the United States?
vant 源码解析之 utils/index.ts 工具函数
EasyExcel的讀寫操作
Reading and writing operations of easyexcel
Chapter 05_ Storage engine