回顾常用的网络响应状态码使用

2023 华为 Datacom-HCIE 真题题库 (6月11新增部分)--含解析 2023 华为 Datacom-HCIE 真题题库 (6月11日新增部分)--含解析 阅读详情

一 状态行的结构

        

        Version部分即为HTTP协议的版本号,通常为HTTP1.1。

        Status Code的值是来表示服务器对请求的处理结果,是一个十进制的数字。

        Reason则是状态行中的原因短语,用来对状态码进行简短描述,如200的“OK”,404的“Not Found”等,这些可以自己自行定义。

二 常用状态码及其含义

  • 1××:提示信息,表示目前是协议处理的中间状态,还需要后续的操作;
  • 2××:成功,报文已经收到并被正确处理;
  • 3××:重定向,资源位置发生变动,需要客户端重新发送请求;
  • 4××:客户端错误,请求报文有误,服务器无法处理;
  • 5××:服务器错误,服务器在处理请求时内部发生了错误。

        目前 RFC 标准里总共有 41 个状态码,但状态码的定义是开放的,允许自行扩展。所以 Apache、Nginx 等 Web 服务器都定义了一些专有的状态码。如果你自己开发 Web 应用,也完全可以在不冲突的前提下定义新的代码。

三 不同状态码及其详细介绍

1××

        1××类状态码属于提示信息,是协议处理的中间状态,实际能够用到的时候很少。我们偶尔能够见到的是“101 Switching Protocols”。它的意思是客户端使用 Upgrade 头字段,要求在 HTTP 协议的基础上改成其他的协议继续通信,比如 WebSocket。而如果服务器也同意变更协议,就会发送状态码 101,但这之后的数据传输就不会再使用 HTTP 了。

 2××

        2××类状态码表示服务器收到并成功处理了客户端的请求,这也是客户端最愿意看到的状态码。

        “200 OK”是最常见的成功状态码,表示一切正常,服务器如客户端所期望的那样返回了处理结果,如果是非 HEAD 请求,通常在响应头后都会有 body 数据。

        “204 No Content”是另一个很常见的成功状态码,它的含义与“200 OK”基本相同,但响应头后没有 body 数据。所以对于 Web 服务器来说,正确地区分 200 和 204 是很必要的。

        “206 Partial Content”是 HTTP 分块下载或断点续传的基础,在客户端发送“范围请求”、要求获取资源的部分数据时出现,它与 200 一样,也是服务器成功处理了请求,但 body 里的数据不是资源的全部,而是其中的一部分。

        状态码 206 通常还会伴随着头字段“Content-Range”,表示响应报文里 body 数据的具体范围,供客户端确认,例如“Content-Range: bytes 0-99/2000”,意思是此次获取的是总计 2000 个字节的前 100 个字节。

3××

        3××类状态码表示客户端请求的资源发生了变动,客户端必须用新的 URI 重新发送请求获取资源,也就是通常所说的“重定向”,包括著名的 301、302 跳转。

        “301 Moved Permanently”俗称“永久重定向”,含义是此次请求的资源已经不存在了,需要改用新的 URI 再次访问。与它类似的是“302 Found”,曾经的描述短语是“Moved Temporarily”,俗称“临时重定向”,意思是请求的资源还在,但需要暂时用另一个 URI 来访问。

        301 和 302 都会在响应头里使用字段 Location 指明后续要跳转的 URI,最终的效果很相似,浏览器都会重定向到新的 URI。两者的根本区别在于语义,一个是“永久”,一个是“临时”,所以在场景、用法上差距很大。

        比如,你的网站升级到了 HTTPS,原来的 HTTP 不打算用了,这就是“永久”的,所以要配置 301 跳转,把所有的 HTTP 流量都切换到 HTTPS。再比如,今天夜里网站后台要系统维护,服务暂时不可用,这就属于“临时”的,可以配置成 302 跳转,把流量临时切换到一个静态通知页面,浏览器看到这个 302 就知道这只是暂时的情况,不会做缓存优化,第二天还会访问原来的地址。

        “304 Not Modified” 是一个比较有意思的状态码,它用于 If-Modified-Since 等条件请求,表示资源未修改,用于缓存控制。它不具有通常的跳转含义,但可以理解成“重定向已到缓存的文件”(即“缓存重定向”)。

        301、302 和 304 分别涉及了 HTTP 协议里重要的“重定向跳转”和“缓存控制”。

4××

        4××类状态码表示客户端发送的请求报文有误,服务器无法处理,它就是真正的“错误码”含义了。

        “400 Bad Request”是一个通用的错误码,表示请求报文有错误,但具体是数据格式错误、缺少请求头还是 URI 超长它没有明确说,只是一个笼统的错误,客户端看到 400 只会是“一头雾水”“不知所措”。所以,在开发 Web 应用时应当尽量避免给客户端返回 400,而是要用其他更有明确含义的状态码。

        “403 Forbidden”实际上不是客户端的请求出错,而是表示服务器禁止访问资源。原因可能多种多样,例如信息敏感、法律禁止等,如果服务器友好一点,可以在 body 里详细说明拒绝请求的原因,不过现实中通常都是直接给一个“闭门羹”。

        “404 Not Found”可能是我们最常看见也是最不愿意看到的一个状态码,它的原意是资源在本服务器上未找到,所以无法提供给客户端。但现在已经被“用滥了”,只要服务器“不高兴”就可以给出个 404,而我们也无从得知后面到底是真的未找到,还是有什么别的原因,某种程度上它比 403 还要令人讨厌。4××里剩下的一些代码较明确地说明了错误的原因,都很好理解,开发中常用的有:

  •         405 Method Not Allowed:不允许使用某些方法操作资源,例如不允许 POST 只能 GET;
  •         406 Not Acceptable:资源无法满足客户端请求的条件,例如请求中文但只有英文;
  •         408 Request Timeout:请求超时,服务器等待了过长的时间;
  •         409 Conflict:多个请求发生了冲突,可以理解为多线程并发时的竞态;
  •         413 Request Entity Too Large:请求报文里的 body 太大;
  •         414 Request-URI Too Long:请求行里的 URI 太大;
  •         429 Too Many Requests:客户端发送了太多的请求,通常是由于服务器的限连策略;
  •         431 Request Header Fields Too Large:请求头某个字段或总体太大。

5××

        5××类状态码表示客户端请求报文正确,但服务器在处理时内部发生了错误,无法返回应有的响应数据,是服务器端的“错误码”。

        “500 Internal Server Error”与 400 类似,也是一个通用的错误码,服务器究竟发生了什么错误我们是不知道的。不过对于服务器来说这应该算是好事,通常不应该把服务器内部的详细信息,例如出错的函数调用栈告诉外界。虽然不利于调试,但能够防止黑客的窥探或者分析。

        “501 Not Implemented”表示客户端请求的功能还不支持,这个错误码比 500 要“温和”一些,和“即将开业,敬请期待”的意思差不多,不过具体什么时候“开业”就不好说了。

        “502 Bad Gateway”通常是服务器作为网关或者代理时返回的错误码,表示服务器自身工作正常,访问后端服务器时发生了错误,但具体的错误原因也是不知道的。

        “503 Service Unavailable”表示服务器当前很忙,暂时无法响应服务,我们上网时有时候遇到的“网络服务正忙,请稍后重试”的提示信息就是状态码 503。

        注意:503 是一个“临时”的状态,很可能过几秒钟后服务器就不那么忙了,可以继续提供服务,所以 503 响应报文里通常还会有一个“Retry-After”字段,指示客户端可以在多久以后再次尝试发送请求。

        此外,状态码308等价与301均为(Permanent Redirect),307等价于302同为(Temporary Redirect),当时308与307请求都不允许后续的请求修改请求方法。

UNet 改进(22):结合Transformer结构 保留了UNet的经典编码器-解码器结构在瓶颈层使用Transformer替代传统的卷积层采用跳跃连接保持空间细节信息使用双卷积块(DoubleConv)作为基础构建模块。 阅读详情

相关推荐

sap2000 api matlab,SAP2000_API入门指南.pdf

SAP2000_API入门指南北 京 金 土 木 软 件 技 术 有 限 公 司Beijing Civil King Software TechnologyCo., Ltd.SAP2000 API 入门指南余承飞 韦群跃 汤娣概述SAP2000 API 是从 SAP2000 V11 开始引进的,即应用软件编程接口。用户可以编写程序,通过API 随心所欲地调用 SAP2000...

weixin_42118423的博客 1942

html状态码

1xx: 信息 消息: 描述: 100 Continue 服务器仅接收到部分请求,但是一旦服务器并没有拒绝该请求,客户端应该继续发送其余的请求。 101 Switching Protocols 服务器转换协议:服务器将遵从客户的请求转换到另外一种协议。 2xx: 成功 消息: 描述:

simplekaizai的博客 614

Delta-Sigma调制(DSM)技术

前言 数字信号处理和通信系统的性能很大程度上受到了模拟信号到数字信号转换接口——ADC的精度和分辨率的限制。而传统的线性脉冲编码调制(PCM)ADC受到了制造工艺的限制,无法达到很高的分辨率。但基于Delta-Sigma调制技术的ADC可以在现有工艺下实现高分辨率(大于16位),同时由于结构简单,所以易于实现。低成本高性能使得Delta-Sigma调制技术得到了广泛的应用。 Delta-Sigma型ADC的结构原理图如下图所示: 它最大的优势在于仅用1位ADC进行数据转换,同时其模拟电路部分结构简单不需要

阿星的博客 2万+

HTTP常见状态码(404、400、500)等错误

一些常见的状态码为: 200 - 服务器成功返回网页 404 - 请求的网页不存在 503 - 服务不可用 详细分解 1xx(临时响应) 表示临时响应并需要请求者继续执行操作的状态代码。 代码 说明 100 (继续) 请求者应当继续提出请求。服务器返回此代码表示已收到请求的第一部分,正在等待其余部分。 101 (切换协议) 请求者已要求服务器切换协议,服务器已确认并准备切换。 2xx (成功) 表...

yhr0322的博客 1006

深入解析poi-tl自定义表格渲染插件中的多级子循环实现

本文深入解析了poi-tl自定义表格渲染插件中的多级子循环实现,详细介绍了其在处理复杂业务数据时的核心价值、实现原理及实战技巧。通过多级子循环机制,开发者可以高效地将层级数据结构渲染到Word表格中,显著提升代码简洁性和维护效率。文章还分享了性能优化和异常处理经验,帮助开发者更好地应用该插件。

weixin_33734785的博客 486

AI上推荐 之 NeuralCF与PNN模型(改变特征交叉方式)

1. 前言 随着信息技术和互联网的发展, 我们已经步入了一个信息过载的时代,这个时代,无论是信息消费者还是信息生产者都遇到了很大的挑战: 信息消费者:如何从大量的信息中找到自己感兴趣的信息? 信息生产者:如何让自己生产的信息脱颖而出, 受到广大用户的关注? 为了解决这个矛盾, 推荐系统应时而生, 并飞速前进,在用户和信息之间架起了一道桥梁,一方面帮助用户发现对自己有价值的信息, 一方面让信息能够展现在对它感兴趣的用户前面。 推荐系统近几年有了深度学习的助推发展之势迅猛, 从前深度学习的传统推荐模型(协

Miracle8070 1万+

HTTP状态码(响应码)

了解HTTP状态码是你步入网络安全必不可少的一步

hibugs 1万+

【2025最新版】间接平差——以水准网平差为例 (python详细过程版)

水准网间接平差的python代码实现。博客长期更新,本文最新更新时间为:2025年5月20日。

点云侠的博客 1702

常见的HTTP 响应状态码

常用的HTTP响应状态码

2202_75922690的博客 3211

信号与电源完整性5:轨道塌陷噪声/电源轨道噪声分析及降低解决方案

经过上一节关于串扰的分析,我们已经清楚,噪声问题不仅仅来源于信号网络;电源和地网络所产生的噪声,被反馈到其所在的元器件和信号网络时,其破坏力也是巨大的;本节所讨论的轨道塌陷噪声就是一个典型的实例。在经过电源的地网络的电流发生改变时,在电源和地之间的阻抗上将产生一个压降;由于该压降的产生,用电元件的电压将直接被拉低,甚至可能对电路产生功能性的错误。接下来硬小二将详细的分析电源轨道噪声和降低其的解决方法。...

fydar的博客 2243

ardupilot BMI088加速度陀螺仪学习

本节主要记录ardupilot 中BMI088传感器的学习过程,欢迎批评指正。BMI088是一款高性能6轴惯性传感器,由16位数字三轴±24g加速度计和16位数字三轴±2000°/ s陀螺仪组成。 BMI088允许高精度测量方向和沿三个正交轴的运动检测。BMI088具有高振动鲁棒性和3 x 4.5 x0.95mm³的小尺寸,是用于无人机和机器人应用等恶劣环境的高性能IMU中的独特产品。 BMI088专门设计用于有效抑制由于PCB上的共振或整个系统的结构而可能发生的振动。 除了高振动稳定性外,BMI088的出

陌城烟雨 2056

网络:TCP、IP协议族(一) HTTP简介、请求方法与响应状态码

接下来想系统的回顾一下TCP/IP协议族的相关东西,当然这些东西大部分是在大学的时候学过的,但是那句话,基础的东西还是要不时的回顾回顾的。接下来的几篇博客都是关于TCP/IP协议族的,本篇博客就先简单的聊一下TCP/IP协议族,然后聊一下HTTP协议,然后再聊一下SSL上的HTTP(也就是HTTPS)了。当然TCP/IP协议族是个老生常谈的话题,网络上关于该内容的文章一抓一大把呢,但是鉴于其重要性...

方志朋的专栏 3869

YOLOv12改进前必看 - YAML模型配置文件详细解读(再也不用担心通道数不匹配) 附网络结构图

YOLOv12的模型配置文件在中,里面包含yolov12的以及的不同大小的模型,本文将详细介绍一下YOLOv12模型文件中各参数的含义。

Limiiiing的博客 3278

TCP/IP协议族(一) HTTP简介、请求方法与响应状态码

TCP/IP协议族(一) HTTP简介、请求方法与响应状态码 接下来想系统的回顾一下TCP/IP协议族的相关东西,当然这些东西大部分是在大学的时候学过的,但是那句话,基础的东西还是要不时的回顾回顾的。接下来的几篇博客都是关于TCP/IP协议族的,本篇博客就先简单的聊一下TCP/IP协议族,然后聊一下HTTP协议,然后再聊一下SSL上的HTTP(也就是HTTPS)了。当然TCP/I

AlbenXie的博客 765

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

HTTP简介、请求方法与响应状态码

点击上方“方志朋”,选择“置顶或者星标”你的关注意义重大!Https相关的文章,请看这一篇:TCP、IP协议族之数字签名与HTTPS详解接下来想系统的回顾一下TCP/IP协议族的相关东西,...

方志朋的博客 194

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

模拟抓包,网络交互的过程(随想随写)

app的运行无非就是一个网络包交互的过程。

qq_45955869的博客 705

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

python网络爬虫系列(0)——爬虫概述 & http协议复习

一、爬虫概述 知识点: 了解 爬虫的概念 了解 爬虫的作用 了解 爬虫的分类 掌握 爬虫的流程 1. 爬虫的概念 模拟浏览器,发送请求,获取响应 网络爬虫(又被称为网页蜘蛛,网络机器人)就是模拟客户端(主要指浏览器)发送网络请求,接收请求响应,一种按照一定的规则,自动地抓取互联网信息的程序。 原则上,只要是客户端(浏览器)能做的事情,爬虫都能够做 爬虫也只能获取客户端(浏览器)所展示出来的数据 知识点:了解 爬虫的概念 2. 爬虫的作用 爬虫在互联网世界中有很多的作用,比

zep 516

深入理解计算机网络之应用层详解

原地址:https://blog.youkuaiyun.com/qq_39412582/article/details/88543382 首先我们先来回顾一下OSI七层模型: 这里我们只介绍网络通信中重要的四层: 分层名称 功能 常用协议 应用层 针对特定应用的协议 FTP(文件传输有协议),DNS(域名系统)以及常见的 HTTP协议 传输层 管理两个节点之间的数据传输。负...

wang13342322203的博客 613

网络应用层HTTP协议

在互联网世界中,**HTTP**(**H**yper**T**ext **T**ransfer **P**rotocol,**超文本传输协议**)是一个至关重要的协议。它定义了客户端(如浏览器)与服务器之间如何通信,以交换或传输超文本(如 HTML 文档)。 HTTP 协议是客户端与服务器之间通信的基础。客户端通过 HTTP 协议向服务器发送请求,服务器收到请求后处理并返回响应。**HTTP 协议是一个无连接、无状态的协议,即每次请求都需要建立新的连接,且服务器不会保存客户端的状态信息。** 在访问网页

laimaxgg 1249

HTTP响应状态码大全:从100到511,全面解析HTTP请求的各种情况

前言 一、认识响应状态码 1. 什么是HTTP响应状态码 2. Http响应状态码的作用 3. 优化和调试HTTP请求的建议 二、1xx 信息响应 1. 认识http信息响应 2. 常见的信息响应状态码 三、2xx 成功响应 1. 认识HTTP成功响应 2. 常见的成功响应状态码 四、3xx 重定向 1. 认识http重定向

HHX_01的博客 4922

【HTTP 响应状态码】从零到实战

摘要: HTTP状态码是Web开发中的核心调试工具,分为五大类:1xx(信息响应)、2xx(成功)、3xx(重定向)、4xx(客户端错误)、5xx(服务器错误)。文章从协议基础讲起,结合代码示例(如Python/Node.js)和实战场景(API设计、Nginx配置),详解常见状态码含义及最佳实践,如200(成功)、404(未找到)、500(服务器错误)。重点强调状态码在SEO、API规范、安全监控中的作用,并提供调试技巧与工具推荐(Chrome DevTools/Postman)。适合开发者系统掌握HTT

深耕CV 1516

3. 响应状态码及Response对象的status_code属性

1.导入库 import requests # 2.定义url url = 'https://music.163.com/' # 3.发送请求,并把响应结果赋值给变量r r = requests . get(url) # 4.1 查看返回值 print(r) # 4.2 查看r的类型 print(type(r)) ## 4.3 输出Response对象的status_code属性 print(r . status_code)【终端输出】200。

weixin_63986098的博客 4677

[JavaEE初阶]网络协议-状态码

讲述了HTTP中状态码的具体含义

2301_81949860的博客 1247

常用的服务器响应的状态码

个人结合网上大神们的帖子的整理,留作然后回顾,如有不妥,还望不吝赐教 http请求与响应完整版 https://www.cnblogs.com/jiu0821/p/5641600.html 响应码超全面 https://www.cnblogs.com/isykw/p/6115469.html 状态码有三位数字组成,第一位数字定义响应的类别 1XX 临时响应 指示信息,表示请求已接收,需要请求者...

Moliay的博客 1503

计算机网络知识简单回顾

1、网络体系结构有几个 TCP/IP,OSI/RM 2、TCP/IP有几层? 应用层,传输层,网络互联层、网络接口层 3、传输层有几个传输协议,分别是什么 TCP(传输控制协议) UDP(用户数据协议) 4、传输协议:那一个更安全?TCP 5、常用应用层协议有那些: HTTP/HTTPS,ftp(文件传输协议) POP3(邮件收发),IMAP(互联网邮件接入协议)/SMTP(互联网邮件 发送协议) 6、常用协议的端口:http协议端口80 https:443,ftp(21),pop3(110) 7、http

ljm_99的博客 237

14.http常用状态码?

类别 原因短语 1xx 信息型状态码 接收的请求正在处理 2xx 成功状态码 请求正常处理完毕 3xx 重定向状态码 需要进行附加操作以完成请求 4xx 客户端错误状态码 服务器无法处理请求 5xx

weixin_45651609的博客 134
上一篇: 来自技术人的思考
下一篇: 搭建HTTP测试环境
至学者
博客等级 码龄9年 180粉丝 773原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值