HTTP 常见的状态码以及其适用场景

是什么

HTTP状态码(英语:HTTP Status Code),用以表示网页服务器超文本传输协议响应状态的3位数字代码
它由 RFC 2616规范定义的,并得到 RFC 2518、RFC 2817、RFC 2295、RFC 2774与 RFC 4918等规范扩展
简单来讲,http状态码的作用是服务器告诉客户端当前请求响应的状态,通过状态码就能判断和分析服务器的运行状态

分类

状态码第一位数字决定了不同的响应状态,有如下:

1 表示消息
2 表示成功
3 表示重定向
4 表示请求错误
5 表示服务器错误

1xx

代表请求已被接受,需要继续处理。这类响应是临时响应,只包含状态行和某些可选的响应头信息,并以空行结束

常见的有:

100(客户端继续发送请求,这是临时响应):这个临时响应是用来通知客户端它的部分请求已经被服务器接收,且仍未被拒绝。客户端应当继续发送请求的剩余部分,或者如果请求已经完成,忽略这个响应。服务器必须在请求完成后向客户端发送一个最终响应
101:服务器根据客户端的请求切换协议,主要用于websocket或http2升级

2xx

代表请求已成功被服务器接收、理解、并接受

常见的有:

200(成功):请求已成功,请求所希望的响应头或数据体将随此响应返回

201(已创建):请求成功并且服务器创建了新的资源

202(已创建):服务器已经接收请求,但尚未处理

203(非授权信息):服务器已成功处理请求,但返回的信息可能来自另一来源

204(无内容):服务器成功处理请求,但没有返回任何内容

205(重置内容):服务器成功处理请求,但没有返回任何内容

206(部分内容):服务器成功处理了部分请求

3xx

表示要完成请求,需要进一步操作。 通常,这些状态代码用来重定向

常见的有:

300(多种选择):针对请求,服务器可执行多种操作。 服务器可根据请求者 (user agent) 选择一项操作,或提供操作列表供请求者选择

301(永久移动):请求的网页已永久移动到新位置。 服务器返回此响应(对 GET 或 HEAD 请求的响应)时,会自动将请求者转到新位置

302(临时移动): 服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求

303(查看其他位置):请求者应当对不同的位置使用单独的 GET 请求来检索响应时,服务器返回此代码

305 (使用代理): 请求者只能使用代理访问请求的网页。 如果服务器返回此响应,还表示请求者应使用代理

307 (临时重定向): 服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求

4xx

代表了客户端看起来可能发生了错误,妨碍了服务器的处理

常见的有:

400(错误请求): 服务器不理解请求的语法
401(未授权): 请求要求身份验证。 对于需要登录的网页,服务器可能返回此响应。
403(禁止): 服务器拒绝请求
404(未找到): 服务器找不到请求的网页
405(方法禁用): 禁用请求中指定的方法
406(不接受): 无法使用请求的内容特性响应请求的网页
407(需要代理授权): 此状态代码与 401(未授权)类似,但指定请求者应当授权使用代理
408(请求超时): 服务器等候请求时发生超时
#5xx
表示服务器无法完成明显有效的请求。这类状态码代表了服务器在处理请求的过程中有错误或者异常状态发生

常见的有:

500(服务器内部错误):服务器遇到错误,无法完成请求
501(尚未实施):服务器不具备完成请求的功能。 例如,服务器无法识别请求方法时可能会返回此代码
502(错误网关): 服务器作为网关或代理,从上游服务器收到无效响应
503(服务不可用): 服务器目前无法使用(由于超载或停机维护)
504(网关超时): 服务器作为网关或代理,但是没有及时从上游服务器收到请求
505(HTTP 版本不受支持): 服务器不支持请求中所用的 HTTP 协议版本

适用场景

下面给出一些状态码的适用场景:

100:客户端在发送POST数据给服务器前,征询服务器情况,看服务器是否处理POST的数据,如果不处理,客户端则不上传POST数据,如果处理,则POST上传数据。常用于POST大数据传输

206:一般用来做断点续传,或者是视频文件等大文件的加载

301:永久重定向会缓存。新域名替换旧域名,旧的域名不再使用时,用户访问旧域名时用301就重定向到新的域名

302:临时重定向不会缓存,常用 于未登陆的用户访问用户中心重定向到登录页面

304:协商缓存,告诉客户端有缓存,直接使用缓存中的数据,返回页面的只有头部信息,是没有内容部分

400:参数有误,请求无法被服务器识别

403:告诉客户端进制访问该站点或者资源,如在外网环境下,然后访问只有内网IP才能访问的时候则返回

404:服务器找不到资源时,或者服务器拒绝请求又不想说明理由时

503:服务器停机维护时,主动用503响应请求或 nginx 设置限速,超过限速,会返回503

504:网关超时

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/524814.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Linux ARM 裸机】开发环境搭建

1、Ubuntu 和 Windows 文件互传 使用过程中,要频繁进行 Ubuntu 和 Windows 的文件互传,需要使用 FTP 服务; 1.1、开启 Ubuntu 下的 FTP 服务 //安装 FTP 服务 sudo apt-get install vsftpd //修改配置文件 sudo vi /etc/vsftpd.conf//重启…

Redis数据库:高可用集群架构

目录 前言 一、Redis数据库高可用 二、Redis 主从复制 1、Redis主从复制概述 1.1 Redis主从复制概念 1.2 Redis主从复制的作用 1.3 Redis主从复制的流程 2、搭建Redis主从复制 2.1 环境部署 2.2 主服务器修改配置文件 2.3 从服务器修改配置文件 2.4 测试主从复制效…

解决方案AssertionError: Torch not compiled with CUDA enabled

文章目录 一、现象二、解决方案 一、现象 报错显示 s torch.from_numpy(padding_seq([s])).cuda().long() File "D:\Anaconda3\lib\site-packages\torch\cuda\__init__.py", line 221, in _lazy_initraise AssertionError("Torch not compiled with CUDA ena…

Linux -- 字符设备驱动--LED的驱动开发(初级框架)

驱动框架一阶段 我们怎样去点亮一个 LED 呢?分为三步: 看原理图确定引脚,确定引脚输出什么电平才能点亮/熄灭 LED 看主芯片手册,确定寄存器操作方法:哪些寄存器?哪些位?地址是? 编…

[数据结构]不带头单向非循环链表

我们有学过,顺序表如何制作,还有一个与其非常相似的结构就是链表的制作,不过链表在数据中的存储不像顺序表一样是按照内存的顺序进行存储的,其在内存中是一块一块的进行存储,具体如何我们可以看看下面这张图 此链表有一个头指针p…

线程安全性问题的原因

1.抢占式执行随机调度 这里的意思就是,当两个线程同时启动的时候,两个线程会同时进行,并且是抢占式执行的。 而且是随机调度资源的。 如代码: public class Deome4 {public static void main(String[] args) {Thread t1 new …

2024单品正价起号,直播素材投流选品,【选品课】+【投流课】+【素材课】+【卡首屏】

课程下载:https://download.csdn.net/download/m0_66047725/89064168 更多资源下载:关注我。 课程内容: 01 01 1.如何养账号过风控,mp4 01 1.如何搭建一条计划(1)..mp4 02 1.如何搭建一条计划(2)..mp4 02 02 2.单品起号方案如何选择,mp4 03 2.-比…

【ONE·基础算法 || 字符串】

总言 主要内容:编程题举例,熟悉理解字符串类题型。       文章目录 总言1、字符串2、最长公共前缀(easy)2.1、题解 3、最长回文子串 (medium)3.1、题解 4、二进制求和(easy):高精度加法4.1、…

2.网络编程-HTTP和HTTPS

目录 HTTP介绍 HTTP协议主要组成部分 GET 和 POST有什么区别 常见的 HTTP 状态码有哪些 http状态码100 HTTP1.1 和 HTTP1.0 的区别有哪些 HTTPS 和 HTTP 的区别是什么 HTTP2 和 HTTP1.1 的区别是什么 HTTP3 和 HTTP2 的区别是什么 HTTPS的请求过程 对称加密和非对称…

armlinux裸机-uart

uart是一对一的串行异步全双工通信通信协议,串行速度较慢(usart支持同步通信) 传输原理 多个参数可以设置 为满足使用需求,我们一般都用带fifo缓冲中断。 我们使用S3C2440芯片,具体寄存器操作可以查看用户手册

积木报表Excel数据量大导出慢导不出问题、大量数据导不出问题优化方案和分析解决思路(优化前一万多导出失败,优化后支持百万级跨库表导出)

文章目录 积木报表Excel数据量大导出慢导不出问题、大量数据导不出问题优化方案和分析解决思路(优化前一万多导出失败,优化后支持百万级跨库表导出)优化结果需求背景和解决方案的思考解决方案流程描述:关键代码引入easy excel新建…

CentOS7.9.2009安装elasticsearch7.11.1(单节点)

本文章使用CentOS7.9.2009服务器安装elasticsearch7.11.1软件 1.服务器信息 [root@elasticsearch ~]# cat /etc/redhat-release CentOS Linux release 7.9.2009 (Core) [root@elasticsearch ~]# [root@elasticsearch ~]# cat /etc/hosts | grep elasticsearch 192.168.10.24…

如何理解图像处理领域的病态问题(ill-posed problem)

ill-posed problem,我们可以理解为病态问题或者不适定问题。在本文中,统一成为不适定问题。 在讨论不适定问题(ill-posed problem)之前,我们先来看一下什么叫适定性问题(well-posed problem)。…

14届蓝桥杯 C/C++ B组 T7 子串简写 (字符串)

采用存储目标字符下标的方法,此题的想法比较新奇,故予以记录。 存好下标之后,可以先定位好启始的字符,然后去搜结尾字符符合长度k并且最靠近启始字符的下标,找到之后可以直接取到这个下标之后的所有下标,因…

3d怎么在一块模型上开个孔---模大狮模型网

在进行3D建模时,有时候需要在模型上创建孔,以实现特定的设计需求或功能。无论是为了添加细节,还是为了实现功能性的要求,创建孔都是常见的操作之一。本文将介绍在3D模型上创建孔的几种常用方法,帮助您轻松实现这一目标…

免费全开源,功能强大的多连接数据库管理工具:DbGate

DbGate:您的全能数据库指挥中心,一站式免费开源解决方案,无缝连接并管理多款主流数据库,让复杂的数据世界变得轻松易控! - 精选真开源,释放新价值。 概览 DbGate 是跨平台的数据库管理器。支持 MySQL、PostgreSQL、SQ…

新零售SaaS架构:客户管理系统架构设计(万字图文总结)

什么是客户管理系统? 客户管理系统,也称为CRM(Customer Relationship Management),主要目标是建立、发展和维护好客户关系。 CRM系统围绕客户全生命周期的管理,吸引和留存客户,实现缩短销售周…

chrome 浏览器 有自带的自动字幕功能,支持英文,控制您的音乐、视频等媒体内容

chrome 浏览器 有自带的自动字幕功能,支持英文,控制您的音乐、视频等媒体内容

Android Studio学习15——多页面情况下再看Activity生命周期

按返回键退出APP时: 走正常页面的退出流程:onPause–>onStop–>onDestroy(会Destroy,因为它从任务栈中退出了) 再点击图标回来时: 走正常页面的创建流程:onCreate–>onStart–>onResume 按Home键退出App时&#xff1a…

【C#】yield使用

&#x1f4bb;代码 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks;namespace ConsoleApp15 {internal class Program{static void Main(string[] args){IEnumerable<int&…