HTTP 中的常用状态码及使用场景(http+中的常用状态码及使用场景有哪些)
nanshan 2024-10-21 06:03 13 浏览 0 评论
大家好,我是前端西瓜哥。今天我们来学习 HTTP 中的常用状态码及使用场景。
作为前端,经常需要从后端获取数据,所以对 HTTP 的掌握也是很重要的。
其中 HTTP 状态码则代表了当前请求的状态,比如客户端还是服务端错误之类的,也是考的比较多的点
1xx 消息
这类状态码,代表请求已被服务端接受,但服务端还要继续进行处理。
100 Continue
继续。
服务端收到请求,并表示可以继续。在客户端准备推送较大的数据时,可以用 100 表示允许。
101 Switching Protocols
切换协议。
比较常见的是响应 WebSockets 连接,浏览器会先发送 HTTP 请求,在请求头里带上希望升级为 WebSockets 协议的相关信息。
服务端收到后,如果支持 WebSockets,就会返回这个状态码 101,进行 HTTP 到 WebSockets 的协议切换。
2xx 成功
这类状态码代表服务已被正常处理。
200 OK
成功。
200 是用得最多的状态码,前端请求接口,数据正常返回,就会拿到这个状态码。这是大家最喜欢看到的状态码。
3xx 重定向
代表客户端需要进行进一步操作才能完成请求。
301 Moved Permanently
永久重定向。
请求的资源被永久移动到其他位置。
假如我们的一篇博客的 url 地址发生了永久的改变,但用户收藏夹里的链接还是旧的,我们就可以在用户请求旧链接时,返回 301 状态码,并赋上一个重定向地址。
HTTP/1.1 301 Moved Permanently
Location: http://www.example.org/index.asp
这样用户就能跳到正确的新地址中。
这新的重定向地址会被浏览器缓存,下次用户访问旧链接时,就不会发请求拿到 301,而是直接就跳到重定向地址了。
所以设置重定向地址时要小心点,别搞错了。
还有一个常用用途是 HTTP 链接跳转到 HTTPS 链接。
比如我们访问 http://zhihu.com/,就会跳转到 https://www.zhihu.com/
302 Found
临时重定向。
原始描述短语为 Moved Temporarily
适合一些临时的重定向操作,比如因为服务器崩溃导致一些页面无法提供正确的访问,在修复期间,则可以通过 302 先暂时地重定向到一个新的地址。修复完后再让用户继续访问原链接。
302 不会持久缓存,但可以设置缓存时间持续一段时间。
HTTP/1.1 302 Found
Location: https://www-temp.example.org/
Cache-control: private; max-age=600
304 Not Modified
没有改变。
304 指的是资源相比上次没有发生变化,客户端可以继续使用之前缓存的资源,以减轻浏览器负担。
这里涉及到了 HTTP 缓存中的强缓存和协商缓存知识。协商缓存中会用到 304 状态码。
具体可以看我之前写的一篇文章:《HTTP 缓存策略:强缓存和协商缓存》
4xx 客户端错误
客户端的问题。
400 Bad Request
不好的请求。
通用的客户端错误,表示问题是出在客户端身上的。比如传的参数不对。
在前端和后端对接接口时,比较常看到这个错误,因为容易写错参数名,或者后端新增或修改了参数。
404 Not Found
不存在。
广为人知的状态码,代表 url 对应资源不存在。
比如一些文章被删除,是直接在数据库中进行不可逆地彻底删除的。然后就导致用户访问这个页面时,服务器找不到对应数据,然后就返回一个 404,并提示 “页面不存在”。
405 Method Not Allowed
方法不被允许。
请求方法没用对,比如一个请求应该用 POST,你却用了 GET 请求,就会得到 405。
拿到 405 通常说明你的 url 没错,错的是方法。如果 url 也不对,你拿到的将是 404。
5xx服务器错误
服务端的问题,快去找后端,别老抓着前端一顿问。
500 Internal Server Error
内部服务错误。
后端服务器的代码出了 bug,比如读取了一个 null 的属性,就会导致服务无法正常运行下去,然后后端就会捕获(catch)这个错误,返回 500,告知是后端服务器出了问题。
严重的情况下,后端服务直接崩溃。
502 Bad Gateway
网关错误。
比如后端服务崩溃,但中间的一些代理服务器 Web Server(比如 Ngnix)还能正确运行。但因为无法访问到后端服务,所以就会返回一个 502。
504 Gateway Timout
网关超时。
网关还在,但后端服务因为各种原因(比如因为一个死循环卡死了),导致一直没有响应回来,在过了一段时间后网关了依旧没能收到消息,就会给客户端返回 504 网关超时。
结尾
常见的 HTTP 状态码大概就是这些,
我是前端西瓜哥,想要学习更多前端面试题解,欢迎关注我。
相关推荐
- 如何为MySQL服务器和客户机启用SSL?
-
用户想要与MySQL服务器建立一条安全连接时,常常依赖VPN隧道或SSH隧道。不过,获得MySQL连接的另一个办法是,启用MySQL服务器上的SSL封装器(SSLwrapper)。这每一种方法各有其...
- Mysql5.7 出现大量 unauthenticated user
-
线上环境mysql5.7突然出现大量unauthenticateduser,进mysql,showprocesslist;解决办法有:在/etc/hosts中添加客户端ip,如192.16...
- MySQL 在 Windows 系统下的安装(mysql安装教程windows)
-
更多技术文章MySQL在Windows系统下的安装1.下载mysql和Framework链接链接:百度网盘请输入提取码提取码:6w3p双击mysql-installer-communit...
- MySql5.7.21.zip绿色版安装(mysql数据库绿色版安装)
-
1、去网上下载满足系统要求的版本(mysql-5.7.21-winx64.zip)2、直接解压3、mysql的初始化(1)以管理员身份运行cmd,在mysql中的bin目录下shift+右键-在...
- MySQL(8.0)中文全文检索 (亲测有效)
-
在一堆文字中找到含有关键字的应用。当然也可以用以下语句实现:SELECT*FROM<表名>WHERE<字段名>like‘%ABC%’但是它的效率太低,是全盘扫描。...
- 新手教程,Linux系统下MySQL的安装
-
看了两三个教程。终于在哔哩哔哩找到一个简单高效的教程,成功安装,up主名叫bili逍遥bili,感兴趣可以去看看。下面这个是我总结的安装方法环境:CentOS764位1.下载安装包,个人觉得在...
- 麒麟服务器操作系统安装 MySQL 8 实战指南
-
原文连接:「链接」Hello,大家好啊,今天给大家带来一篇麒麟服务器操作系统上安装MySQL8的文章,欢迎大家分享点赞,点个在看和关注吧!MySQL作为主流开源数据库之一,被广泛应用于各种业务...
- 用Python玩转MySQL的全攻略,从环境搭建到项目实战全解析
-
这是一篇关于“MySQL数据库入门实战-Python版”的教程,结合了案例实战分析,帮助初学者快速掌握如何使用Python操作MySQL数据库。一、环境准备1.安装Python访问Pytho...
- 安装MySQL(中标麒麟 安装mysql)
-
安装MySQL注意:一定要用root用户操作如下步骤;先卸载MySQL再安装1.安装包准备(1)查看MySQL是否安装rpm-qa|grepmysql(2)如果安装了MySQL,就先卸载rpm-...
- Mysql最全笔记,快速入门,干货满满,爆肝
-
目录一、MySQL的重要性二、MySQL介绍三、软件的服务架构四、MySQL的安装五、SQL语句六、数据库相关(DDL)七、表相关八、DML相关(表中数据)九、DQL(重点)十、数据完...
- MAC电脑安装MySQL操作步骤(mac安装mysqldb)
-
1、在官网下载MySQL:https://dev.mysql.com/downloads/mysql/根据自己的macOS版本,选择适配的MySQL版本根据自己需求选择相应的安装包,我这里选择macO...
- mysql主从(mysql主从切换)
-
1、本章面试题什么是mysql主从,主从有什么好处什么是读写分离,有什么好处,使用mycat如何实现2、知识点2.1、课程回顾dubboORM->MVC->RPC->SOApro...
- 【linux学习】以MySQL为例,带你了解数据库
-
做运维的小伙伴在日常工作中难免需要接触到数据库,不管是MySQL,mariadb,达梦还是瀚高等其实命令都差不多,下面我就以MySQL为例带大家一起来了解下数据库。有兴趣的小伙伴不妨评论区一起交流下...
- 玩玩WordPress - 环境简介(0)(玩玩网络科技有限公司)
-
简介提到开源博客系统,一般都会直接想到WordPress!WordPress是使用PHP开发的,数据库使用的是MySQL,一般会在Linux上运行,Nginx作为前端。这时候就需要有一套LNMP(Li...
- 服务器常用端口都有哪些?(服务器端使用的端口号范围)
-
下面为大家介绍一下,服务器常用的一些默认端口,以及他们的作用: 21:FTP服务所开放的端口,用于上传、下载文件。 22:SSH端口,用于通过命令行模式远程连接Linux服务器或vps。 23:...
你 发表评论:
欢迎- 一周热门
-
-
极空间如何无损移机,新Z4 Pro又有哪些升级?极空间Z4 Pro深度体验
-
如何在安装前及安装后修改黑群晖的Mac地址和Sn系列号
-
UOS服务器操作系统防火墙设置(uos20关闭防火墙)
-
日本海上自卫队的军衔制度(日本海上自卫队的军衔制度是什么)
-
爱折腾的特斯拉车主必看!手把手教你TESLAMATE的备份和恢复
-
如何修复用户配置文件服务在 WINDOWS 上登录失败的问题
-
10个免费文件中转服务站,分享文件简单方便,你知道几个?
-
手机如何设置与显示准确时间的详细指南
-
【系统配置】信创终端挂载NAS共享全攻略:一步到位!
-
[常用工具] OpenCV_contrib库在windows下编译使用指南
-
- 最近发表
- 标签列表
-
- linux 查询端口号 (58)
- docker映射容器目录到宿主机 (66)
- 杀端口 (60)
- yum更换阿里源 (62)
- internet explorer 增强的安全配置已启用 (65)
- linux自动挂载 (56)
- 禁用selinux (55)
- sysv-rc-conf (69)
- ubuntu防火墙状态查看 (64)
- windows server 2022激活密钥 (56)
- 无法与服务器建立安全连接是什么意思 (74)
- 443/80端口被占用怎么解决 (56)
- ping无法访问目标主机怎么解决 (58)
- fdatasync (59)
- 405 not allowed (56)
- 免备案虚拟主机zxhost (55)
- linux根据pid查看进程 (60)
- dhcp工具 (62)
- mysql 1045 (57)
- 宝塔远程工具 (56)
- ssh服务器拒绝了密码 请再试一次 (56)
- ubuntu卸载docker (56)
- linux查看nginx状态 (63)
- tomcat 乱码 (76)
- 2008r2激活序列号 (65)