图解HTTP阅读笔记:第4章 返回结果的HTTP状态码

news2024/10/7 4:25:50

《图解HTTP》第四章读书笔记

图解HTTP

  • 第4章:返回结果的HTTP状态码
    • 4.1 状态码告知从服务器端返回的请求结果
    • 4.2 2XX成功
      • 4.2.1 200 OK
      • 4.2.2 204 No Content
      • 4.2.3 206 Parital Content
    • 4.3 3XX重定向
      • 4.3.1 301 Moved Permanently
      • 4.3.2 302 Found
      • 4.3.3 303 See Other
      • 4.3.4 304 Not Modified
      • 4.3.5 307 Temporary Redirect
    • 4.4 4XX客户端错误
      • 4.4.1 400 Bad Request
      • 4.4.2 401 Unauthorized
      • 4.4.3 403 Forbidden
      • 4.4.4 404 Not Found
    • 4.5 5XX服务器错误
      • 4.5.1 500 Internal Server Error
      • 4.5.2 503 Service Unavailable

第4章:返回结果的HTTP状态码

  HTTP状态码负责表示客户端HTTP请求的返回结果、标记服务器端的处理是否正常、通知出现的错误等工作。

4.1 状态码告知从服务器端返回的请求结果

  状态码的职责是当客户端向服务器端发送请求时,描述返回的请求结果。借助状态码,用户可以知道服务器端是正常处理了请求,还是出现了错误。

在这里插入图片描述

  状态码如 200 OK,以 3 位数字和原因短语组成。数字中的第一位指定了响应类别,后两位无分类。响应类别有以下5 种。

在这里插入图片描述

4.2 2XX成功

  2XX 的响应结果表明请求被正常处理了。

4.2.1 200 OK

  表示从客户端发来的请求在服务器端被正常处理了。 在响应报文内,随状态码一起返回的信息会因方法的不同而发生改变。比如,使用 GET 方法时,对应请求资源的实体会作为响应返回;而使用 HEAD 方法时,对应请求资源的实体首部不随报文主体作为响应返回(即在响应中只返回首部,不会返回实体的主体部分)。
在这里插入图片描述

4.2.2 204 No Content

  该状态码代表服务器接收的请求已成功处理,但在返回的响应报文中不含实体的主体部分。另外,也不允许返回任何实体的主体。比如,当从浏览器发出请求处理后,返回 204 响应,那么浏览器显示的页面不发生更新。

  一般在只需要从客户端往服务器发送信息,而对客户端不需要发送新信息内容的情况下使用。

在这里插入图片描述

4.2.3 206 Parital Content

  该状态码表示客户端进行了范围请求,而服务器成功执行了这部分的 GET 请求。响应报文中包含由 Content-Range 指定范围的实体内容。

在这里插入图片描述

4.3 3XX重定向

3XX 响应结果表明浏览器需要执行某些特殊的处理以正确处理请求。

4.3.1 301 Moved Permanently

  永久性重定向。该状态码表示请求的资源已被分配了新的 URI,以后应使用资源现在所指的 URI。也就是说,如果已经把资源对应的 URI保存为书签了,这时应该按 Location 首部字段提示的 URI 重新保存。
在这里插入图片描述

4.3.2 302 Found

  临时性重定向。该状态码表示请求的资源已被分配了新的 URI,希望用户(本次)能使用新的 URI 访问。

  和 301 Moved Permanently 状态码相似,但 302 状态码代表的资源不是被永久移动,只是临时性质的。换句话说,已移动的资源对应的URI 将来还有可能发生改变。比如,用户把 URI 保存成书签,但不会像301 状态码出现时那样去更新书签,而是仍旧保留返回 302 状态码的页面对应的 URI

在这里插入图片描述

4.3.3 303 See Other

  该状态码表示由于请求对应的资源存在着另一个 URI,应使用 GET方法定向获取请求的资源。 303 状态码和 302 Found 状态码有着相同的功能,但 303 状态码明确表示客户端应当采用 GET 方法获取资源,这点与 302 状态码有区别。
  比如,当使用 POST 方法访问 CGI 程序,其执行后的处理结果是希望客户端能以 GET 方法重定向到另一个 URI 上去时,返回 303 状态码。虽然 302 Found 状态码也可以实现相同的功能,但这里使用 303 状态码是最理想的。
在这里插入图片描述

4.3.4 304 Not Modified

  该状态码表示客户端发送附带条件的请求时,服务器端允许请求访问资源,但未满足条件的情况。304 状态码返回时,不包含任何响应的主体部分。304 虽然被划分在 3XX 类别中,但是和重定向没有关系。

在这里插入图片描述

4.3.5 307 Temporary Redirect

  临时重定向。该状态码与 302 Found 有着相同的含义。尽管 302 标准禁止 POST 变换成 GET,但实际使用时大家并不遵守。 307 会遵照浏览器标准,不会从 POST 变成 GET。但是,对于处理响应时的行为,每种浏览器有可能出现不同的情况。

4.4 4XX客户端错误

  4XX 的响应结果表明客户端是发生错误的原因所在。

4.4.1 400 Bad Request

在这里插入图片描述

4.4.2 401 Unauthorized

  该状态码表示发送的请求需要有通过 HTTP 认证(BASIC 认证、DIGEST 认证)的认证信息。另外若之前已进行过 1 次请求,则表示用
户认证失败。

  返回含有 401 的响应必须包含一个适用于被请求资源的 WWW Authenticate首部用以质询(challenge)用户信息。当浏览器初次接收到 401 响应,会弹出认证用的对话窗口。

4.4.3 403 Forbidden

  该状态码表明对请求资源的访问被服务器拒绝了。服务器端没有必要给出拒绝的详细理由,但如果想作说明的话,可以在实体的主体部分对原因进行描述,这样就能让用户看到了。

  未获得文件系统的访问授权,访问权限出现某些问题(从未授权的发送源 IP 地址试图访问)等列举的情况都可能是发生 403 的原因。

在这里插入图片描述

4.4.4 404 Not Found

在这里插入图片描述

4.5 5XX服务器错误

4.5.1 500 Internal Server Error

  该状态码表明服务器端在执行请求时发生了错误。也有可能是Web应用存在的bug或某些临时的故障。

在这里插入图片描述

4.5.2 503 Service Unavailable

  该状态码表明服务器暂时处于超负载或正在进行停机维护,现在无法处理请求。如果事先得知解除以上状况需要的时间,最好写入Retry-After首部字段再返回给客户端。

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

服务(第三篇)Apache配置与应用

httpd服务支持的虚拟主机类型包括以下三种: 1.基于域名:为每个虚拟主机使用不同的域名,但是其对应的 IP 地址是相同的。 2.基于IP地址:为每个虚拟主机使用不同的域名,且各自对应的IP地址也不相同。这种方式需要为服务器配备多个网…

Femto基站及其射频方案

关于部署3G femto基站 3GPP定义第三代移动通信的目的是要为客户提供全方位的移动多媒体体验。但很多条件下,这一目的并未实现,尤其是在边远地区或居民聚集区。 一个可行的解决方案是在家庭范围内部署无需宏node-B基站即可提供最大移动数据速率的家用基站…

26基于模型预测控制MPC的永磁同步电机MATLAB代码

资源地址: 基于模型预测控制(MPC)的永磁同步电机Matlab代码-电子商务文档类资源-CSDN文库 主要内容: 包含单电流环MPC仿真(仅电流环使用MPC策略,速度环使用PI调节器)、速度环和电流环MPC仿真…

C ++匿名函数:揭开C++ Lambda表达式的神秘面纱

潜意识编程:揭秘C Lambda表达式的神秘面纱 Subconscious Programming: Unveiling the Mystery of C Lambda Expressions 引言:Lambda表达式的魅力 (The Charm of C Lambda Expressions)Lambda表达式简介与基本概念 (Introduction and Basic Concepts of …

【Linux】浅析Input子系统

文章目录1. 框架1.1 数据结构1.2 evdev_handler1.3 evdev_init1.4 input_register_handler2. 应用如何打开节点并读取到事件数据2.1 evdev_fops2.2 evdev_open2.3 evdev_release2.4 evdev_read2.5 evdev_write2.6 evdev_poll2.7 evdev_fasync2.8 evdev_ioctl2.9 evdev_ioctl_co…

ADManager Plus:简化 Active Directory 管理的完美工具

在企业中,Active Directory(AD)是一个非常重要的组件,用于管理和控制所有计算机和用户的访问权限。然而,AD的管理和维护需要一定的技术能力和时间成本。为了简化这个过程,ManageEngine 推出了 ADManager Pl…

ASIC-WORLD Verilog(2)FPGA的设计流程

写在前面 在自己准备写一些简单的verilog教程之前,参考了许多资料----asic-world网站的这套verilog教程即是其一。这套教程写得极好,奈何没有中文,在下只好斗胆翻译过来(加了自己的理解)分享给大家。 这是网站原文&…

如何在 DevOps 中进行 API 全生命周期管理?

随着 DevOps 理念在中国企业当中的普及和发展,中国企业 DevOps 落地成熟度不断提升,根据中国信通院的数据已有近 6 成企业向全生命周期管理迈进。 而在研发全生命周期管理之中,API 管理的地位愈发显得重要。随着 API 数量的大幅增长&#xf…

针对电商物流网络包裹应急调运与结构优化问题的解题【思路数据代码详解】

文章目录C 题 电商物流网络包裹应急调运与结构优化问题解题思路数据进行预处理将数据转换为 stationary 数据底部C 题 电商物流网络包裹应急调运与结构优化问题 (赛题出来以后第一时间在CSDN分享,文章底部) 最新进度在文章最下方卡片,加入获取思路数据代…

【Spring Cloud Alibaba】4.创建服务消费者

文章目录简介开始搭建创建项目修改POM文件添加启动类添加配置项添加Controller添加配置文件启动项目测试访问Nacos访问接口查看端点检查简介 接下来我们创建一个服务消费者,本操作先要完成之前的步骤,详情请参照【Spring Cloud Alibaba】Spring Cloud A…

深度学习代码,对coco数据集evaluate时,spice评估总是报错,解决如下:

在跑evaluate.py时,发现bleu,METEOR,ROUGE_L都能成功,就是spice评估总是报错,我的报错内容如下: 就找了好久,也问了chatgpt啥的,尝试很很多,最终发现是java版本太高了&am…

数字化转型导师坚鹏:金融机构数据治理政策解读及问题解决之道

金融机构数据治理政策解读及问题解决之道课程背景: 很多金融机构存在以下问题: 不知道如何准确理解银保监会数据治理相关政策及要求? 不清楚如何有效解决监管数据治理常见问题及提升之道? 不清楚如何有效落实银保监会数据治理相…

算法模板(2):数据结构(3) 复杂数据结构1

复杂数据结构(1) 1. Splay 基本概念 什么是 Splay Splay 是一种二叉查找树,它通过不断将某个节点旋转到根节点,使得整棵树仍然满足二叉查找树的性质,并且保持平衡而不至于退化为链. 旋转操作 为了使 Splay 保持平…

虚拟主持人是什么?有哪些应用场景?

虚拟主持人是一种通动作捕捉技术或人工智能等技术,来驱动虚拟形象模拟真实主持人的动作、声音和表情,为各种场合提供主持服务的数字化角色。虚拟主持人的外貌、服装、发型、口音等都可以根据客户的需求和喜好进行定制,甚至可以创建出具有明星…

冶炼金属(十四届蓝桥杯B组)(超级详细)

目录 1、冶炼金属 解法一:(二分算法) 解法二:(数学公式推导) 2、永远不要试图用拖延来期待事情发生改变!!! 1、冶炼金属 小蓝有一个神奇的炉子用于将普通金属 O冶炼成为一种特殊金属 X。 这…

OceanBase 4.1 发版 | 一个面向开发者的里程碑版本

欢迎访问 OceanBase 官网获取更多信息:https://www.oceanbase.com/ 2022 年 8 月,OceanBase发布了 4.0 版本(小鱼),作为业内首个单机分布式一体化架构,兼顾了分布式架构的扩展性和集中式架构的性能优势&…

Iptables安全防火墙企业实战

1. IPtables入门简介 Netfilter/Iptables(以下简称Iptables)是unix/linux自带的一款优秀且开放源代码的完全自由的基于包过滤的防火墙工具,它的功能十分强大,使用非常灵活,可以对流入和流出服务器的数据包进行很精细的控制。Iptables主要工作…

用通俗易懂的话来解释什么是Socket

前言 我在去年就学习过Java中Socket的使用,但对于Socket的理解一直都是迷迷糊糊的。看了网上很多关于Socket的介绍,看完还是不太理解到底什么是Socket,还是很迷。直到最近在学习计算机网络,我才对Socket有了一个更深地理解。之前…

sqoop数据导出、脚本使用

目录 准备表与数据 数据导出 脚本调用 准备表与数据 mysql表 CREATE TABLE user (id int(20),name varchar(20) )ENGINEINNODB DEFAULT CHARSETutf8; hive表 create table users( id bigint, name string ) row format delimited fields terminated by "\t";…

消息中间件RabbitMQ---Docker安装RabbitMQ、以及RabbitMQ的基本使用【二】

1、安装 1.1 拉取镜像 docker pull rabbitmq:management1.2 查看镜像 docker images1.3 创建容器 docker run -d --name rabbitmq -p 5671:5671 -p 5672:5672 -p 4369:4369 -p 25672:25672 -p 15671:15671 -p 15672:15672 rabbitmq:management1.4 浏览器访问 登录进去后的效…