当前位置: 首页 > news >正文

《网络协议 - HTTP传输协议及状态码解析》

文章目录

  • 一、HTTP协议结构图
  • 二、HTTP状态码解读
    • 1xx: 信息响应类
    • 2xx: 成功响应类
    • 3xx: 重定向类
    • 4xx: 客户端错误类
    • 5xx: 服务器错误类

一、HTTP协议结构图

在这里插入图片描述

二、HTTP状态码解读

HTTP状态码(英语:HTTP Status Code)是用以表示网页服务器超文本传输协议响应状态的3位数字代码。它由 RFC 2616 规范定义的,并得到 RFC 2518、RFC 2817、RFC 2295、RFC 2774 与 RFC 4918 等规范扩展。所有状态码的第一个数字代表了响应的五种状态之一。所示的消息短语是典型的,但是可以提供任何可读取的替代方案。 除非另有说明,状态码是HTTP / 1.1标准(RFC 7231)的一部分。

HTTP状态码的官方注册表由互联网号码分配局(Internet Assigned Numbers Authority)维护。

‌‌HTTP状态码是服务器在接收到请求后,向客户端返回的三位数字代码,用于表示服务器对请求的处理结果。‌这些状态码不仅告诉我们请求是否成功,还能指出失败的原因。HTTP状态码主要分为五大类,每类的首位数字不同,具体如下:‌

1xx: 信息响应类

这一类型的状态码,代表请求已被接受,需要继续处理。这类响应是临时响应,只包含状态行和某些可选的响应头信息,并以空行结束。由于 HTTP/1.0 协议中没有定义任何 1xx 状态码,所以除非在某些试验条件下,服务器禁止向此类客户端发送 1xx 响应。

  • 100 Continue - 服务器已收到请求的一部分,并继续期望接收请求的其余部分。
  • 101 Switching Protocols - 服务器已根据Upgrade请求头中的协议转换请求,并且正在使用新的协议。
  • 102 Processing - 由WebDAV(RFC 2518)扩展的状态码,代表处理将被继续执行。

2xx: 成功响应类

这一类型的状态码,代表请求已成功被服务器接收、理解、并接受。

  • 200 OK - 请求已成功,请求所希望的响应头或数据体将随此响应返回。
  • 201 Created -请求已经被实现,而且有一个新的资源已经依据此请求的需求而建立,且其URI已经随Location头信息返回。
  • 202 Accepted -服务器已接受请求,但尚未处理。最终行动会在未来某个时间点进行。
  • 203 Non-Authoritative Information - 服务器已成功处理了请求,但返回的实体头部元信息不是在原始服务器上有效的确定集合,而是来自本地或者第三方的拷贝。当前的信息可能是原始版本的子集或者超集。例如,包含资源的元数据可能导致原始服务器知道元信息的超集。使用此状态码不是必须的,而且只有在响应不使用此状态码便会返回200 OK的情况下才是合适的。
  • 204 NoContent - 服务器成功处理了请求,没有返回任何内容。
  • 205 Reset Content - 服务器成功处理了请求,且没有返回任何内容。但是与204响应不同,返回此状态码的响应要求请求者重置文档视图。该响应主要是被用于接受用户输入后,立即重置表单,以便用户能够轻松地开始另一次输入。
  • 206 Partial Content - 服务器已经成功处理了部分 GET 请求。
  • 207 Multi-Status - 由WebDAV(RFC 2518)扩展的状态码,代表之后的消息体将是一个XML消息,并且可能依照之前子请求数量的不同,包含一系列独立的响应代码。

3xx: 重定向类

这类状态码代表需要客户端采取进一步的操作才能完成请求。通常,这些状态码用来重定向,后续的请求地址(重定向目标)在本次响应的 Location 域中指明。
当且仅当后续的请求所使用的方法是 GET 或者 HEAD 时,用户浏览器才可以在没有用户介入的情况下自动提交所需要的后续请求。客户端应当自动监测无限循环重定向(例如:A->A,或者A->B->C->A),因为这会导致服务器和客户端大量不必要的资源消耗。按照 HTTP/1.0 版规范的建议,浏览器不应自动访问超过5次的重定向。

  • 301 Moved Permanently - 请求的资源已被永久移动,并且将来任何对此资源的引用都应该使用本响应返回的若干个URI之一。
  • 302 Found - 请求的资源临时从不同的URI返回。由于这样的重定向是临时的,客户端应当继续向原有地址发送以后的请求。
  • 303 See Other - 对应当前请求的响应可以在另一个 URL 上被找到,而且客户端应当采用 GET 的方式访问那个资源。
  • 304 Not Modified - 如果客户端发送了一个带条件的GET请求且该请求已被允许,而文档的内容(自上次访问以来或者根据请求的条件)并没有改变,则服务器应当返回这个状态码。
  • 305 Use Proxy - 被请求的资源必须通过指定的代理才能被访问。Location 域中将给出指定的代理所在的 URI 信息,接收者需要重复发送一个单独的请求,通过这个代理才能访问相应资源。只有原始服务器才能建立305响应
  • 306 Switch Proxy - 在最新版的规范中,306状态码已经不再被使用。
  • 307 Temporary Redirect - 请求的资源临时从不同的URI 响应请求。

4xx: 客户端错误类

这类的状态码代表了客户端看起来可能发生了错误,妨碍了服务器的处理。除非响应的是一个 HEAD 请求,否则服务器就应该返回一个解释当前错误状况的实体,以及这是临时的还是永久性的状况。这些状态码适用于任何请求方法。浏览器应当向用户显示任何包含在此类错误响应中的实体内容。

如果错误发生时客户端正在传送数据,那么使用TCP的服务器实现应当仔细确保在关闭客户端与服务器之间的连接之前,客户端已经收到了包含错误信息的数据包。如果客户端在收到错误信息后继续向服务器发送数据,服务器的TCP栈将向客户端发送一个重置数据包,以清除该客户端所有还未识别的输入缓冲,以免这些数据被服务器上的应用程序读取并干扰后者。

  • 400 Bad Request - 请求包含语法错误或无法完成请求。
  • 401 Unauthorized - 当前请求需要用户验证。该状态码表示发送的HTTP数据需要通过HTTP认证。
  • 402 Payment Required - 该状态码是为了将来可能的需求而预留的。
  • 403 Forbidden - 服务器理解请求,但是拒绝执行它。
  • 404 Not Found - 服务器无法找到被请求的URI。
  • 405 Method Not Allowed - 请求行中指定的请求方法不能被用于请求相应的资源。
  • 406 Not Acceptable - 请求的资源的内容特性无法满足请求头中的条件,因而无法生成响应实体。
  • 407 Proxy Authentication Required - 与401响应类似,只不过客户端必须在代理服务器上进行身份验证。
  • 408 Request Timeout - 请求超时。
  • 409 Conflict - 由于和被请求的资源的当前状态之间存在冲突,请求无法完成。这个代码只允许用在这样的情况下才能被使用:用户被认为能够解决冲突,并且会重新提交新的请求。该响应应当包含足够的信息以便用户发现冲突的源头。

5xx: 服务器错误类

(5、6字头)
这类状态码代表了服务器在处理请求的过程中有错误或者异常状态发生,也有可能是服务器意识到以当前的软硬件资源无法完成对请求的处理。除非这是一个HEAD 请求,否则服务器应当包含一个解释当前错误状态以及这个状况是临时的还是永久的解释信息实体。浏览器应当向用户展示任何在当前响应中被包含的实体。
这些状态码适用于任何响应方法。

  • 500 Internal Server Error - 服务器遇到了一个未曾预料到的情况,导致其无法完成对请求的处理
  • 501 Not Implemented - 服务器不支持当前请求所需要的某个功能。
  • 502 Bad Gateway - 作为网关或者代理工作的服务器尝试执行请求时,从上游服务器接收到无效的响应。
  • 503 Service Unavailable - 由于临时的服务器维护或者过载,服务器当前无法处理请求。这个状况是临时的,并且将在一段时间后恢复。

在具体的状态码中,例如:

‌200 OK‌: 服务器成功处理了请求。
‌403 Forbidden‌: 请求被服务器拒绝,客户端没有访问权限。
‌500 Internal Server Error‌: 服务器遇到了意外错误,无法完成请求。

参考地址:
解析HTTP错误码400 Bad Request及其常见原因与解决方法
HTTP 请求 错误代码含义
http的常见错误代码
HTTP协议错误码大全
常见HTTP错误代码大全

相关文章:

《网络协议 - HTTP传输协议及状态码解析》

文章目录 一、HTTP协议结构图二、HTTP状态码解读1xx: 信息响应类2xx: 成功响应类3xx: 重定向类4xx: 客户端错误类5xx: 服务器错误类 一、HTTP协议结构图 二、HTTP状态码解读 HTTP状态码(英语:HTTP Status Code)是用以表示网页服务器超文本传…...

9.11 QT ( Day 4)

一、作业 1.Widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QTimerEvent> //定时器类 #include <QTime> #include <QtTextToSpeech> //文本转语音类QT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_END_NAMESPACEcl…...

利用AI驱动智能BI数据可视化-深度评测Amazon Quicksight(四)

简介 随着生成式人工智能的兴起&#xff0c;传统的 BI 报表功能已经无法满足用户对于自动化和智能化的需求&#xff0c;今天我们将介绍亚马逊云科技平台上的AI驱动数据可视化神器 – Quicksight&#xff0c;利用生成式AI的能力来加速业务决策&#xff0c;从而提高业务生产力。…...

2024.9最新:CUDA安装,pytorch库安装

目录 一、CUDA安装 1.查看自己电脑适配的CUDA的最高版本 2.安装CUDA 3.检查环境变量是否配置&#xff0c;安装是否成功 二、pytorch库安装 1.pytorch库下载 2.选择合适的版本 3.查看版本 一、CUDA安装 1.查看自己电脑适配的CUDA的最高版本 在命令提示符里输入nvidia-…...

Vue3.0组合式API:setup()函数

1、什么是组合式API Vue 3.0 中新增了组合式 API 的功能&#xff0c;它是一组附加的、基于函数的 API&#xff0c;可以更加灵活地组织组件代码。通过组合式 API 可以使用函数而不是声明选项的方式来编写 Vue 组件。因此&#xff0c;使用组合式 API 可以将组件代码编写为多个函…...

利用AI驱动智能BI数据可视化-深度评测Amazon Quicksight(三)

简介 随着生成式人工智能的兴起&#xff0c;传统的 BI 报表功能已经无法满足用户对于自动化和智能化的需求&#xff0c;今天我们将介绍亚马逊云科技平台上的AI驱动数据可视化神器 – Quicksight&#xff0c;利用生成式AI的能力来加速业务决策&#xff0c;从而提高业务生产力。…...

2022高教社杯全国大学生数学建模竞赛C题 问题一(1) Python代码演示

目录 问题 11.1 对这些玻璃文物的表面风化与其玻璃类型、纹饰和颜色的关系进行分析数据探索 -- 单个分类变量的绘图树形图条形图扇形图雷达图Cramer’s V 相关分析统计检验列联表分析卡方检验Fisher检验绘图堆积条形图分组条形图分类模型Logistic回归随机森林import matplotlib…...

Qt QSerialPort数据发送和接收DataComm

文章目录 Qt QSerialPort数据发送和接收DataComm2.添加 Qt Serial Port 模块3.实例源码 Qt QSerialPort数据发送和接收DataComm Qt 框架的Qt Serial Port 模块提供了访问串口的基本功能&#xff0c;包括串口通信参数配置和数据读写&#xff0c;使用 Qt Serial Port 模块就可以…...

macOS上谷歌浏览器的十大隐藏功能

谷歌浏览器&#xff08;Google Chrome&#xff09;在macOS上拥有一系列强大而隐蔽的特性&#xff0c;这些功能能显著提高您的浏览体验。从多设备同步到提升安全性和效率&#xff0c;这些被低估的功能等待着被发掘。我们将逐步探索这些功能&#xff0c;帮助您最大化利用谷歌浏览…...

【C++篇】C++类与对象深度解析(二):类的默认成员函数详解

文章目录 【C篇】C类与对象深度解析&#xff08;二&#xff09;前言1. 类的默认成员函数2. 构造函数2.1 函数名与类名相同2.2 无返回值2.3 对象实例化时系统会自动调用2.4 构造函数可以重载2.5 默认构造函数的生成规则2.6 无参构造函数与全缺省构造函数的关系2.7 内置类型与自定…...

Linux2-mkdir,touch,cat,more

1.相对路径和绝对路径 cd用于切换目录&#xff0c;对于路径可以用相对路径和绝对路径 例如&#xff1a;cd /home/user/public和cd public效果一样&#xff0c;都是将目录切换到HOME文件夹下的public文件夹 2.特殊路径符 .表示当前目录 ..表示上级目录 ~表示HOME目录 3.m…...

AI 时代程序员的应变之道

一、AI 浪潮来袭&#xff0c;编程界风云变幻 随着 AIGC 大语言模型如 ChatGPT、Midjourney、Claude 等的涌现&#xff0c;AI 辅助编程工具日益普及&#xff0c;程序员的工作方式正经历着深刻的变革。 分析公司 OReilly 日前发布的《2023 Generative AI in the Enterprise》报告…...

SQL编程题复习(24/9/16)

练习题 x40 10-74 获取商品表中商品名称含有“pad”的商品10-75 获取指定商品的商品分类名称&#xff08;多表查询&#xff09;10-76 为sh_goods表添加一行记录10-77 检索出sh_goods表中每项keyword对应的商品数量&#xff0c;查询结果显示字段依据输出样例设置10-78 查询sh_go…...

运维工程师面试整理-操作系统

在运维工程师的面试中,操作系统相关的知识通常是重中之重,尤其是Linux/Unix系统。以下是针对操作系统部分的一些详细内容,帮助你更好地准备面试。 1. Linux/Unix 基础 ● 常用命令 ○ 文件和目录管理:ls, cd, cp, mv, rm, mkdir, rmdir, find, grep, awk, sed...

Linux搭建邮箱服务器(简易版)

本章是上一文档的简易版本搭建方式更为快速简洁&#xff08;只需要两条命令即可搭建&#xff09;&#xff0c;如果想了解更详细一些可以看我上一文档 Linux接发邮件mailx_linux mailx o365-CSDN博客文章浏览阅读857次&#xff0c;点赞25次&#xff0c;收藏19次。本文详细描述了…...

基于SSM的社区爱心捐赠管理系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、SSM项目源码 系统展示 【2025最新】基于JavaSSMVueMySQL的社区爱…...

鸿蒙next web组件和h5 交互实战来了

前言导读 鸿蒙next web组件这个专题之前一直想讲一下 苦于没有时间&#xff0c;周末把代码研究的差不多了&#xff0c;所以就趁着现在这个时间节点分享给大家。也希望能对各位读者网友工作和学习有帮助&#xff0c;废话不多说我们正式开始。 效果图 默认页面 上面H5 下面ArkU…...

甘特图介绍

甘特图&#xff08;Gantt chart&#xff09;是一种常用于项目管理和计划安排的图表类型&#xff0c;它以图形的方式展示项目的任务、活动或工作流的时间线。甘特图得名于它的发明者亨利劳伦斯甘特&#xff08;Henry Laurence Gantt&#xff09;&#xff0c;他在20世纪初开发了这…...

第十一章 【后端】商品分类管理微服务(11.1)——创建父工程

第十一章 【后端】商品分类管理微服务 11.1 创建父工程 项目名称:EasyTradeManagerSystem:Easy 表示简单易用,Trade 表示交易,Manager 表示管理,System 表示系统,强调系统在商品交易管理方面的便捷性,简称 etms。 新建工程 yumi-etms yumi-etms 作为所有模块的父工程,…...

c语言中的“二级指针”与“指针数组”

二级指针 int main() { int a10; int *pa&a; //pa是一级指针 int **ppa&pa; //ppa就是二级指针变量 *说明ppa是指针变量。ppa指向pa的类型是int* rerurn 0; } 二级指针就是用来存放一级指针变量的地址。 *ppa其实访问的就是pa。**ppa其实也就是*pa…...

百考通:AI精准赋能实践报告,让实习总结高效又专业

对于每一位在校学生和职场新人而言&#xff0c;实践报告都是记录成长、沉淀经验的关键载体&#xff0c;却也常常成为令人头疼的难题&#xff1a;要么不知如何梳理工作脉络&#xff0c;要么难以精准提炼收获与反思&#xff0c;要么在格式规范和字数要求上反复纠结。百考通&#…...

Python数据分析实战:用Seaborn绘制炫酷相关性热力图(附完整代码)

Python数据分析实战&#xff1a;用Seaborn绘制炫酷相关性热力图 数据分析工作中&#xff0c;相关性分析是理解变量间关系的核心技能。而热力图作为直观展示相关性的工具&#xff0c;已经成为数据科学家和商业分析师的标准配置。本文将带你从零开始&#xff0c;掌握用Seaborn绘…...

手把手教你复现phpMyAdmin 4.8.1本地文件包含漏洞(附详细payload)

深入解析phpMyAdmin 4.8.1文件包含漏洞的实战利用与防御 在Web应用安全领域&#xff0c;文件包含漏洞一直是攻击者青睐的攻击向量之一。phpMyAdmin作为全球最流行的MySQL数据库管理工具&#xff0c;其安全性直接影响数百万网站的数据安全。2018年曝光的phpMyAdmin 4.8.1版本本地…...

从一次RDP爆破到全网挖矿:复盘Windows Server 3389端口的安全加固与监控策略

Windows Server 3389端口安全防御体系&#xff1a;从RDP爆破到挖矿攻击的全链路防护 最近处理了一起典型的服务器入侵事件&#xff1a;攻击者通过RDP暴力破解获取管理员权限后&#xff0c;在服务器上部署了挖矿程序。这种攻击模式看似简单&#xff0c;却暴露出许多企业在Windo…...

如何永久保存B站缓存视频?m4s-converter开源工具完整使用指南

如何永久保存B站缓存视频&#xff1f;m4s-converter开源工具完整使用指南 【免费下载链接】m4s-converter 一个跨平台小工具&#xff0c;将bilibili缓存的m4s格式音视频文件合并成mp4 项目地址: https://gitcode.com/gh_mirrors/m4/m4s-converter 你是否曾经遇到过这样的…...

本地部署DeepSeek并搭建量化交易系统:完整指南

本地部署DeepSeek并搭建量化交易系统:完整指南 1. 引言 随着大语言模型(LLM)的快速发展,其在金融领域的应用潜力日益凸显。DeepSeek作为一款高性能、开源的大模型,能够为量化交易系统提供强大的自然语言理解和生成能力,例如从新闻、研报中提取信号,辅助生成交易策略,…...

从85分到95+:复盘我在科大奥锐虚拟仿真实验平台踩过的那些‘坑’

从85分到95&#xff1a;科大奥锐虚拟仿真实验平台的实战避坑指南 第一次接触科大奥锐虚拟仿真实验平台时&#xff0c;我和大多数同学一样&#xff0c;以为这不过是传统实验的电子版。直到连续三次实验分数卡在85分上下&#xff0c;才意识到这个平台对操作细节的严苛程度远超预期…...

Intel集成显卡加速PyTorch:从环境搭建到模型训练实战指南

1. 为什么选择Intel集成显卡加速PyTorch&#xff1f; 很多朋友刚接触深度学习时&#xff0c;第一反应都是"得买块N卡"。但你可能不知道&#xff0c;手头的Intel集成显卡也能跑PyTorch&#xff0c;而且效果还不错。我去年给团队配开发机时&#xff0c;就专门测试过Int…...

深入解析BulletinBoard:iOS上下文卡片库的完整架构指南与核心实现

深入解析BulletinBoard&#xff1a;iOS上下文卡片库的完整架构指南与核心实现 【免费下载链接】BulletinBoard General-purpose contextual cards for iOS 项目地址: https://gitcode.com/gh_mirrors/bu/BulletinBoard BulletinBoard是一个功能强大的iOS库&#xff0c;专…...

Load-Use冒险避坑指南:为什么你的RISC流水线转发电路会失效?

Load-Use冒险避坑指南&#xff1a;为什么你的RISC流水线转发电路会失效&#xff1f; 在处理器设计的迷宫中&#xff0c;Load-Use冒险就像是一个精心设计的陷阱&#xff0c;等待着那些过分依赖转发电路的工程师。这种特殊的RAW&#xff08;Read After Write&#xff09;冒险场景…...