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

HTTP状态码全解

在这里插入图片描述

文章目录

    • 常见状态码
      • 1XX Informational(请求正在处理)
      • 2XX Success(请求成功)
      • 3XX Redirection(重定向)
      • 4XX Client Error(客户端错误)
      • 5XX Server Error(服务器错误)
    • 301和302的区别
      • 共同点
      • 不同点
      • SEO影响
    • 重定向原因

常见状态码

1XX Informational(请求正在处理)

  • 100 Continue:客户端应继续发送请求的其余部分。
  • 101 Switching Protocols:服务器接受了客户端请求,正在切换协议。

2XX Success(请求成功)

  • 200 OK:请求正常处理,响应包含请求的资源。
  • 204 No Content:请求处理成功,但没有任何资源返回给客户端(一般用于只需客户端向服务端发送消息)。
  • 206 Partial Content:对资源的某一部分请求,响应报文中包含由 Content-Range 指定范围的实体内容。

3XX Redirection(重定向)

  • 301 Moved Permanently:永久重定向,表示旧地址的资源已被永久移除。搜索引擎会将旧网址更新为新网址。
  • 302 Found:临时重定向,表示旧地址的资源仍然可以访问,此次重定向是临时的。
  • 303 See Other:与301和302类似,当使用POST方法访问资源时,将客户端以GET方式重定向到对应的URI。
  • 304 Not Modified:资源已找到,但不满足条件,因此不返回资源。常用于协商缓存。

4XX Client Error(客户端错误)

  • 400 Bad Request:请求报文内有语法错误。
  • 401 Unauthorized:请求需要HTTP认证。初次收到401响应浏览器弹出认证对话窗口,第二次出现表明验证失败。
  • 403 Forbidden:服务器拒绝访问请求的资源,通常因权限不足。
  • 404 Not Found:服务器上找不到请求的资源或路径错误。
  • 405 Method Not Allowed:请求方法被服务器识别但禁止使用,可以用OPTIONS来查看允许的方法。
  • 429 Too Many Requests:用户在给定时间内发送了太多请求。

5XX Server Error(服务器错误)

  • 500 Internal Server Error:服务器在执行请求时出错,一般因应用程序出现bug。
  • 502 Bad Gateway:代理服务器或网关从上游服务器中收到无效响应。
  • 503 Service Unavailable:服务器暂时超负载或停机维护,无法处理请求。
  • 504 Gateway Timeout:作为网关或代理的服务器未能在规定时间内从上游服务器获取响应。

301和302的区别

共同点

301和302状态码都表示重定向,浏览器在接收到这些状态码后会自动跳转到新的URL地址,新的地址可以从响应的Location首部中获取。用户看到的效果就是输入的地址A瞬间变成了地址B。

不同点

  • 301 Moved Permanently:表示旧地址A的资源已被永久移除,搜索引擎在抓取新内容的同时,将旧的网址替换为重定向后的网址。
  • 302 Found:表示旧地址A的资源仍然可访问,此次重定向是临时的,搜索引擎会抓取新内容,但保留旧网址。

SEO影响

在SEO方面,302的影响通常被认为优于301,因为302不会导致搜索引擎更改对旧网址的索引。

重定向原因

  1. 网站调整:如改变网页目录结构。
  2. 网页移址:页面被移到新地址。
  3. 扩展名改变:例如,将.php改成.html或.shtml。如果不做重定向,用户收藏夹或搜索引擎数据库中的旧地址可能导致404错误,造成流量损失。
  4. 域名管理:某些注册了多个域名的网站需要通过重定向让访问这些域名的用户自动跳转到主站点。

相关文章:

  • Squaretest单元测试辅助工具使用
  • Web和UE5像素流送、通信教程
  • 【计算机网络超强概念总结】第一章 概述
  • redisson使用笔记
  • Linux-L13-查看文件归属的用户
  • 中信银行西安分行开展“担当新使命 消保县域行”金融教育宣传活动
  • 条件熵公式详细解释、举例说明计算步骤
  • 【Y005】基于springboot+vue实现的社团管理系统
  • 毕业设计选题:基于springboot+vue+uniapp的在线办公小程序
  • LORA模型与基座大模型合并并由transformer的AutoModel推理
  • 大模型增量训练--基于transformer制作一个大模型聊天机器人
  • AndroidStudio导入so文件
  • ESP32和ESP8266下载方法及下载失败排查
  • Git忽略规则原理和.gitignore文件不生效的原因和解决办法
  • pytorch线性/非线性回归拟合
  • 【划重点】MySQL技术内幕:InnoDB存储引擎
  • 【跃迁之路】【444天】程序员高效学习方法论探索系列(实验阶段201-2018.04.25)...
  • Android单元测试 - 几个重要问题
  • chrome扩展demo1-小时钟
  • Js基础——数据类型之Null和Undefined
  • JS基础之数据类型、对象、原型、原型链、继承
  • js面向对象
  • LeetCode算法系列_0891_子序列宽度之和
  • mysql常用命令汇总
  • scala基础语法(二)
  • SegmentFault 技术周刊 Vol.27 - Git 学习宝典:程序员走江湖必备
  • 阿里研究院入选中国企业智库系统影响力榜
  • 从零到一:用Phaser.js写意地开发小游戏(Chapter 3 - 加载游戏资源)
  • 函数式编程与面向对象编程[4]:Scala的类型关联Type Alias
  • 理清楚Vue的结构
  • 前端工程化(Gulp、Webpack)-webpack
  • 通过获取异步加载JS文件进度实现一个canvas环形loading图
  • 问:在指定的JSON数据中(最外层是数组)根据指定条件拿到匹配到的结果
  • 一个普通的 5 年iOS开发者的自我总结,以及5年开发经历和感想!
  • 自制字幕遮挡器
  • 浅谈sql中的in与not in,exists与not exists的区别
  • ​​​​​​​​​​​​​​汽车网络信息安全分析方法论
  • ​浅谈 Linux 中的 core dump 分析方法
  • ​水经微图Web1.5.0版即将上线
  • #100天计划# 2013年9月29日
  • $Django python中使用redis, django中使用(封装了),redis开启事务(管道)
  • (zz)子曾经曰过:先有司,赦小过,举贤才
  • (分享)自己整理的一些简单awk实用语句
  • (附源码)ssm跨平台教学系统 毕业设计 280843
  • (论文阅读11/100)Fast R-CNN
  • (四)【Jmeter】 JMeter的界面布局与组件概述
  • (一)UDP基本编程步骤
  • .NET C# 使用GDAL读取FileGDB要素类
  • .NET C#版本和.NET版本以及VS版本的对应关系
  • .NET LINQ 通常分 Syntax Query 和Syntax Method
  • .NET 中创建支持集合初始化器的类型
  • .NET/ASP.NETMVC 大型站点架构设计—迁移Model元数据设置项(自定义元数据提供程序)...
  • .NET/C# 的字符串暂存池
  • .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary)
  • .NET8使用VS2022打包Docker镜像