你需要了解的 HTTP Status Code

你需要了解的 HTTP Status Code

Intro

现在前后端分离的开发模式越来越流行,后端负责开发对应的 API,前端只需要 关注前端页面的数据展示和前端逻辑即可。

对于前后端分离这种开发模式,我个人还是比较喜欢的,因为这样可以让更专业的人做更专业的事情,后端专注于做 API 的开发设计,前端专注于数据的展示,页面的样式。

这样前后端需要就某些信息达成一些共识,比如说常用的 HTTP 方法, 常用的 HTTP 状态码等

HTTP Method 较为简单,我们常用的习惯如下:

一般查询我们都会使用 GET 方法, 创建新的记录使用 POST 方法 更新已有数据使用 PUT 方法 更新已有数据部分属性使用 PATCH 方法 删除已有数据使用 DELETE 方法

下面来详细介绍一下常用的 HTTP 状态码

1xx

1xx 状态码一般是一个请求的中间状态,一般是信息提示,请求协商

100 Continue,请求未结束,应该继续请求

101 Switching Protocol,协议转换,在使用 Web Socket 的时候就会遇到,下面是一个示例,响应会有一个 Connection:Upgrade 的请求头, Upgrade 会指定要使用的协议名称

2xx

2xx 一般表示请求处理成功

200 OK,请求处理成功

201 Created,请求处理成功,并且新资源已经创建

202 Accepted,请求已经接受,正在处理,尚未处理完成

204 No Content,响应内容为空,在 asp.net core 中返回一个 Json(null) 的时候就会是一个 NoContent 的结果

3xx

3xx 一般表示重定向

301 Moved Permanently 永久重定向

302 Found 临时重定向

307 Temporary Redirect 临时重定向请求

308 Permanent Redirect 永久重定向请求

这几个重定向的区别:301、302 只支持 GET 请求,如果是 POST 请求,重定向后会使用 GET 请求且 Body 数据会丢失

307、308 支持 POST 请求,在 POST 重定向的时候会带上原来请求的 body 再请求新的地址,body 数据不会丢失

302、307 是临时重定向, 301、308 是永久重定向,是允许缓存的,浏览器可以缓存

304 Not Modified,资源未发生修改,可以直接使用浏览器本地缓存

This is the response code to an If-Modified-Since or If-None-Match header, where the URL has not been modified since the specified date.

4xx

4xx 一般表示客户端请求错误

400 BadRequest,错误请求,一般用来表示请求参数异常,比如请求的某一个参数不能为空,但实际请求是空

401 Unauthorized,未授权,资源需要授权或登录,而用户没有登录或者没有提供访问所需的 Token 等

403 Forbidden,禁止访问,当前用户没有权限访问资源,如需要Admin角色的用户,但是请求的用户没有这个角色

404 NotFound,未找到资源,资源不存在

405 Method Not Allowed,不允许的方法调用,资源不支持的请求方法,比如资源只允许 GET 请求,但是实际请求使用了 POST 或 DELETE 方法

406 Not Acceptable,请求的资源客户端不支持处理,比如客户端希望获取 xml 的响应,但是服务器端只支持 JSON 响应

408 Request Timeout, 请求处理超时

409 Conflict,请求资源冲突,常发生在 PUT 更新资源信息时发生,比如更新时指定资源的 ETAG,但是PUT请求时,资源的 ETAG 已经发生变化

410 Gone,请求资源在源服务器上不再可用

411 Length Required,请求需要携带 Content-Length 请求头

412 Precondition Failed,请求预检失败,请求的某些参数不符合条件

The pre condition given in the request evaluated to false by the server.

413 Payload Too Large,请求的参数太大,请求的 body 过大,服务器拒绝处理

414 URI Too Long,请求的 URI 地址太长,服务器拒绝处理

415 Unsupported Media Type,不支持的媒体类型或不支持的编码,比如服务器只支持处理 JSON 请求,但是请求是 xml 格式

The 415 (Unsupported Media Type) status code indicates that the origin server is refusing to service the request because the payload is in a format not supported by this method on the target resource. The format problem might be due to the request's indicated Content-Type or Content-Encoding, or as a result of inspecting the data directly.

5xx

5xx 一般表示服务端错误

500 Internal Server Error,服务器内部错误

501 Not Implemented 服务器不支持需要处理请求的功能,比如图片压缩等处理

502 Bad Gateway 反向代理或网关找不到处理请求的服务器

503 Service Unavailable 服务不可用

504 Gateway Timeout 网关超时

505 HTTP Version Not Supported,不支持的 HTTP 版本,服务器不支持或拒绝处理这个 HTTP 版本的请求

Reference

  • https://www.tutorialspoint.com/http/httpstatuscodes.htm

  • https://developer.mozilla.org/en-US/docs/Web/HTTP/Status

  • https://tools.ietf.org/html/rfc7231#p-6.2

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

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

相关文章

LeetCode 24两两交换链表中的节点-中等

给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。 输入:head [1,2,3,4] 输出:[2,1,4,3] 示例 2: 输入:head []…

2021中考高考成绩查询,2021中考

2021年浙江东阳中考查分入口暂未公布!如有最新信息,中考网会第一时间发布,请中考生和家长及时关注中考网中考考试时间频道! 编辑推荐: 2021年浙江省中考查分时间及入口汇总 2021年全国各省市中考查分时间及入2021-06-1…

今天网站都变成灰色了,这其中是怎么实现的?

“ 阅读本文大概需要 7 分钟。 ”今天是 2020 年 4 月 4 日,星期六,清明节。我们的国家经历了非常惨痛的时刻,很多英雄在救助他人的路上倒下,更有很多烈士英雄保卫人民的安危遇难,今天全国下降半旗,北京时间…

深圳市公务员考试计算机专业素养,深圳市考职位分析_公务员考试专业对照表...

2020深圳市公务员招录1069人公告已发布,报名时间:11月13日-19日16:00,报名入口:深圳市考试院专栏(http://hrss.sz.gov.cn/szksy/)或深圳市人事考试考生服务系统(以下简称考生服务系统,https://hrsstext.sz.gov.cn/ess/…

LeetCode 61旋转链表-中等

给你一个链表的头节点 head ,旋转链表,将链表每个节点向右移动 k 个位置。 输入:head [1,2,3,4,5], k 2 输出:[4,5,1,2,3] 输入:head [0,1,2], k 4 输出:[2,0,1] 提示: 链表中节点的数目在…

科个普:进程、线程、并发、并行

一、进程刘大胖打开电脑,想写点东西,于是打开WPS,突然又想和女朋友(反正我不信)聊聊天,就又打开了微信PC端,这时操作系统就会为这两个程序生成两个进程,如图:二、线程每个进程至少包含一个线程&…

LeetCode 19删除链表的倒数第N个节点-中等

给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。 进阶:你能尝试使用一趟扫描实现吗? 输入:head [1,2,3,4,5], n 2 输出:[1,2,3,5] 示例 2: 输入:head [1], n …

EFCore查询语句生成流程、让EFCore支持批量Update/Delete/MergeInto

引子之前发现了一款叫 EFCore.BulkExtensions 的 nuget 包。里面提供了大量的 BulkInsertOrUpdateOrDelete 和 BatchUpdate 的拓展&#xff0c;可以很方便的解决批量更新和删除的问题&#xff0c;不用让 EFCore 一条一条的删除和更新。其中几个比较有用的函数签名是Task<int…

html程序国庆节祝福,2018国庆节祝福祖国的话

2018国庆节即将来袭~那么2018国庆节祝福祖国的话有哪些呢&#xff1f;今天语录大全网小编就为大家整理了一篇10.1国庆节祝福祖国的话语&#xff0c;分享给大家&#xff0c;在这里小编祝大家国庆节快乐1、【祖国是东方的明珠&#xff0c;是亚洲腾飞的巨龙&#xff0c;是地平线上…

【翻译】.NET 5 Preview2发布

在4月2日&#xff0c;发布了.NET 5.0 Preview2&#xff0c;这次发布对一些功能和性能做了相关的改进&#xff0c;同时后面也会实施5.0版本更多的功能&#xff0c;其中一些功能目前也dotnet/designs在.NET 5 Preview1中可以看到.NET 5里程碑中已经完成的建设任务&#xff0c;当然…

LeetCode 142环形链表||-中等

给定一个链表&#xff0c;返回链表开始入环的第一个节点。 如果链表无环&#xff0c;则返回 null。 为了表示给定链表中的环&#xff0c;我们使用整数 pos 来表示链表尾连接到链表中的位置&#xff08;索引从 0 开始&#xff09;。 如果 pos 是 -1&#xff0c;则在该链表中没有…

.NET 5.0 Preview 2发布解析

2020年4月2日微软.NET 团队的项目经理 Richard 在博客上 发布了.NET 5 Preview 2&#xff1a;https://devblogs.microsoft.com/dotnet/announcing-net-5-0-preview-2/ &#xff0c;3月16号&#xff0c;Scott Hunter 在博客中发布了.NET 5 Preview 1 第一个预览版发布。https://…

DotNet SSL TLS证书问题分析排障

问题说明前几天运维同事反馈开发同事代码在Windows 2008 R2 Datacenter服务器上跑会出现无法正常建立SSL/TLS连接的情况&#xff0c;在自己的电脑上跑是OK的&#xff0c;代码也没有变动过。于是我问他改了服务器上什么配置没有&#xff0c;他说改了注册表也不行。接过这个坑&am…

LeetCode 92反转链表||-中等

给你单链表的头指针 head 和两个整数 left 和 right &#xff0c;其中 left < right 。请你反转从位置 left 到位置 right 的链表节点&#xff0c;返回 反转后的链表 。 输入&#xff1a;head [1,2,3,4,5], left 2, right 4 输出&#xff1a;[1,4,3,2,5] 示例 2&#xf…

oppo手机html文件,OPPO手机怎么传输数据包括文档和图片,有哪些传输方式

在工作和学习中&#xff0c;我们每天都需要传输大量的数据包括文档和图片等&#xff0c;对于大文件和大量文件的传输&#xff0c;既要保证传输的质量还要操作简单&#xff0c;省时省力&#xff0c;这也就成了一个令人头疼的问题。不同的传输方式有着不同的特点&#xff0c;那么…

如何让Docker镜像飞起来

前言Docker用起来非常爽&#xff0c;尤其是用于DevOps实践时。但是&#xff0c;当你在国内或者本地拉取镜像时&#xff0c;经常会碰到各种“便秘”——要么镜像拉取缓慢&#xff0c;要么时断时连&#xff0c;要么连接超时&#xff01;当我们的镜像又比较大时&#xff08;比如某…

C++ class类 实现搜索二叉树(BST)

代码如下: #include <iostream> using namespace std;class BSTNode {private:double key;BSTNode *lchild;BSTNode *rchild;BSTNode *parent;friend class BSTree;public:BSTNode(double k 0.0, BSTNode *l nullptr, BSTNode *r nullptr, BSTNode *p nullptr): key…

Nuget多项目批量打包上传服务器的简明教程

本篇不会介绍Nuget是什么&#xff0c;如何打包上传Nuget包&#xff0c;怎么搭建私有Nuget服务器。这些问题园子里都有相应的文章分享&#xff0c;这里不做过多阐述。另外本文假设你已经下载了Nuget.exe&#xff0c;并且已经设置好了环境变量。什么&#xff1f;你还不会&#xf…

C++ struct结构体 实现搜索二叉树(BST)

代码如下: #include <iostream> using namespace std;struct BSTNode {double v 0.0;BSTNode *lc nullptr;BSTNode *rc nullptr;BSTNode *par nullptr; };void inorder_tree(BSTNode *t) {if (t ! nullptr) {inorder_tree(t->lc);cout << t->v <<…

如何用 Blazor 实现 Ant Design 组件库(二)

前言前两周&#xff0c;我发表了上一篇文章《如何用 Blazor 实现 Ant Design 组件库&#xff1f;》&#xff0c;得到了很多朋友的响应&#xff0c;也有很多朋友加入我的钉钉群&#xff0c;并收听了我在第二天的直播。这次直播是我人生第一次做直播&#xff0c;以至于没做什么准…