规则 #8:不要使用 404 来表示“未找到” HTTP 规范规定,应使用 404 来表示未找到资源。按照字面解释,如果向不存在的 ID 提出 GET/PUT/DELETE 等请求,则应返回 404。...当调用(例如)GET /things/{thing_id}请求一个不存在的东西时,响应应表明:1)服务器理解了您的请求;2)没有找到该东西。遗憾的是,404 响应并不能保证 #1。...HTTP 404 表示 "未找到内容",这与返回 HTTP 500 几乎一样--它可能意味着内容不存在,也可能意味着出了问题;客户端无法确定是哪种情况。...但几乎任何策略都比返回 404(实体未找到)要好。 规则#10:一定要使用结构化错误格式 如果您正在为一个简单的网站构建后端,您可能可以忽略此部分。...在 409 响应正文中提供原始 ID 亮点:通过允许具有相同参数的重复请求或在冲突时返回现有 ID,使 API 具有幂等性。
细读Yii2的Response 一个完整的网络请求,最后都需要一个符合协议的返回。Yii2在处理web请求之后,统一通过web/Response处理返回。...一个Response完整的流程有哪些? 创建Response对象,设置Resonse响应格式json,html,xml等 触发前置事件,暴露操给开发者在输出前对数据进行调整等 数据格式化。...在web/Response 文件中定义了状态码数组,几乎涵盖了所有的http状态码,并给出了标注的状态码文字说明。如果想了解http状态码,看Yii2的Response文件就足够了。...发送文件每次最多读取8M数据,防止占用过大内存 数据格式,支持多种数据格式html,json,xml并可以指定ResponseFormatter对数据格式进行扩展 Cookie处理,Yii2的请求Cooke...同时提供前置事件,数据准备前置事件,后置事件给开发者在不同的情况下处理额外的数据。代码在阅读起来非常明了。从头到尾,完整的看一遍,就可以完全理解。以下是Response中的两段代码。
HttpResponseException-----HTTP响应异常 如果Web API控制器抛出一个未捕捉的异常,会发生什么呢?...= repository.Get(id); 4 if (item == null) 5 //未找到返回一个404的状态码 6...item = repository.Get(id); 4 if (item == null) 5 //未找到返回一个404的状态码 6...以下实例演示了如何用HttpError在响应中返回HTTP状态码“404--未找到”: 1 public HttpResponseMessage GetProduct(int id) 2 { 3...但如果所请求的产品未找到,则HTTP响应会在请求体中包含一个HttpError。
Reactive Relational Database Connectivity,并提出了 R2DBC 规范 API 用来评估可行性并讨论数据库厂商是否有兴趣支持响应式的异步非阻塞驱动程序。...按照 RESTful 规范,如果删除成功请求响应码就是 200,如果删除失败请求响应码就是 404,因此,我们开发出来的接口如下: @DeleteMapping("/{id}") public Mono...,然后调用 flatMap,在 flatMap 中对数据进行删除处理,删除完成后,给出一个 200 的响应码,如果查询的时候没有查询到数据,就给一个 404 响应码。...可以看到,删除成功后,响应码为 200: ? 删除失败后,响应码为 404: ?...如果修改的数据不存在的话,就会给出一个 404 响应: ?
三 接口测试执行中需要比对数据库吗? 接口的返回关键字段和字段值是需要校验的,不然接口测试就没有意义了。 一般有两种方式: 1)数据库预置数据,接口校验返回; 2)接口调用,比对数据库查询结果。...1)响应码:检查响应码是否符合预期,用来判断测试用例是否执行成功(针对http接口); 2)关键字:验证关键字是否符合预期,用来判断测试用例是否执行成功; 3)正则匹配:当一个接口返回的内容较多,并且有一定规律时...,网络代理可能会造成请求失败; 6.检查操作系统的host文件,是否绑定了一个错误的ip映射; 2)接口有响应但是返回了错误的状态码 有些时候接口会返回一些错误的HTTP状态码,需要根据不同的状态码来确定具体的原因...url权限,还有就是项目所用的中间件,不允许远程访问(比如Apache); 404:资源未找到,导致这种情况的原因很多,比如: url拼写错误; url后有空格; 项目没有启动成功; 请求协议不对,如http...以上 That‘s all 更多系列文章
1.2类视图的两个基类 1.2.1APIView 是View类的子类,在view类的基础上添加了一些额外的功能。...2.响应时可以统一返回Response类的对象 3.异常处理:如果视图中抛出了未处理异常,DRF框架会自动对异常进行处理,并且会把处理之后的错误信息返回给客户端。...例如 Http404这个系统处理过的处理异常的方法,我们直接将它抛出,客户端就可以收到处理之后的错误信息,不会是404页面,而是错误信息,如“未找到“。...该Mixin的list方法会对数据进行过滤和分页。...时间长了之后,就知道该怎么写最简单的代码了。 2.视图集 2.1概念 将操作同一组资源的处理方法(API接口)同一个类中。
在这种情况下,如果地址指定为域名,首先在描述的服务器组中查找该名称,如果未找到,则使用解析器确定。...使用UNIX域套接字:可以通过unix:/path/to/socket格式指定UNIX域套接字路径,这在高性能场景中非常有用。...404 错误:请求未找到,检查路径是否正确。 502 错误:后端服务器未响应,检查后端服务器状态。 2..../24; deny all; proxy_pass http://backend/; } 防止请求伪造 设置适当的请求头: location /api/ { proxy_set_header...验证和确认 重新测试配置 使用前述的测试工具(cURL、Postman、浏览器)重新测试路径转发。 确认请求路径和响应均符合预期。
= 401, // 未授权 FORBIDDEN = 403, // 禁止访问 NOT_FOUND = 404, // 资源未找到 INTERNAL_SERVER_ERROR = 500...= '请求失败', } 2、 在 src 目录中新建 /typings/index.d.ts 文件: declare namespace Api { namespace Common { /...定义响应体 DTO首先,定义一个统一的响应数据传输对象(DTO),这将作为所有 API 响应的基本结构。...import { Response } from 'express'; import { responseMessage } from '@/utils'; // @Catch() 装饰器绑定所需的元数据到异常过滤器上...common';import { Response } from 'express';import { responseMessage } from '@/utils';// @Catch() 装饰器绑定所需的元数据到异常过滤器上
使用HTTP状态码:使用适当的HTTP状态码来表示请求的结果,如200表示成功,404表示资源未找到,500表示服务器错误等。...错误处理:在API中实现统一的错误处理机制,对于常见的错误情况(如资源未找到、权限不足等),返回适当的HTTP状态码和错误信息,以便客户端能够正确处理错误情况。...时,良好的日志记录对于跟踪和调试问题至关重要,而性能优化则可以提高API的响应速度和稳定性。...时,良好的日志记录对于跟踪和调试问题至关重要,而性能优化则可以提高API的响应速度和稳定性。...同时,良好的日志记录和性能优化可以帮助开发人员更好地跟踪和调试问题,并提高API的响应速度和稳定性。
RPC RPC(Remote Procedure Call),远程过程调用),这种RPC形式的API组织形态是类和方法的形式。...所以API的请求往往是一个动词用来标识接口的意思,比如 https://xxxx/GetStudent?...REST形式的API组织形态是资源和实体,请求的路由可以看出对资源的访问,规范统一接口自解释。 比如 https://xxxx/Student/1 用Get方法调用就是获取编号为1的学生。...如果我们严格的按照Rest风格设计接口的话,需要对技术人员有很高的要求,需要去划分不同业务不同的资源定位,而且有些业务也找不到准确的谓词去定义,响应状态码有限无法表达准确的意思,或者是时间上来不及等等原因...而在Rest 中Post通常用201返回新增成功,delete 删除的数据不存在返回404,但是404大家知道可能也许是url错误,所以表诉不清。
"OK" 404: 未找到页面 */ xhr.onreadystatechange = function() {...Promise的常用API 实例方法 then(方法 1, 方法 2) :方法 1 处理异步正常的数据,方法 2 处理异步失败(可以不写), 链式编程时需要在上一个 then 中使用 return...catch(方法) :处理异步失败,与 .then 的方法 2 效果一致 finally(方法) :无论如何最后都会执行的方法 静态方法 all(数组) :接收一个数组,每个数组元素都是一个...2.响应拦截器 响应拦截器的作用是在接收到响应后进行一些操作。...请求拦截器 响应拦截器 四、ES7新方法 (async/await) async 作为一个关键字放到方法前面 async 都会隐式的返回一个 Promise 实例 await 只能在 async
Web API中错误和异常的处理,包括以下几点: 1.HttpResponseException——HTTP响应异常 2.Exception Filters——异常过滤器 3.Registering...这种异常会返回你在异常构造器中指定的任何HTTP状态码。例如,在以下方法中,如果这个id参数无效,那么会返回“404——未找到”。...以下示例演示了如何用HttpError在响应体中返回HTTP状态码“404 — 未找到”: public HttpResponseMessage GetProduct(int id) { Product...但如果所请求的产品未找到,则HTTP响应会在请求体中包含一个HttpError。...该响应看上去大致像这样: HTTP/1.1 404 Not Found Content-Type: application/json; charset=utf-8 Date: Thu, 09 Aug 2012
⽹络上请求和传输 HTML 内容。...image.png HTTP 的工作方式 浏览器 用户在地址栏输入 URL -> 回车 -> 浏览器拼装 HTTP 报文并发送请求到服务器 -> 服务器处理请求后发送响应报文给浏览器 -> 浏览器解析响应报文并使用渲染引擎显示到界面...APP 用户通过点击或其它交互触发联网需求 -> APP 代码执行调用拼装 HTTP 报文并发送请求到服务器 -> 服务器处理请求后发送响应报文给手机 -> 手机接收到响应报文并做相应处理(接收到...Body 一般用于下载比较大的文件,从响应报文头获取文件大小等属性 状态码(Status Code) 状态码全部表现为三位数字,用于对应响应结果的类型描述(如「200 请求成功」 「404 内容未找到...用途是尽早给 出响应,减少⽤用户等待。
一个普通的http请求处理流程,如上图所示: A -> client端发起请求给nginx B -> nginx处理后,将请求转发到uwsgi,并等待结果 C -> uwsgi处理完请求后,返回数据给nginx...这些都代表,在nginx设置的超时时间内,上游uwsgi没有给正确的响应(但是是有响应的,不然如果一直没响应,就会变成504超时了),因此nginx这边的状态码为502。...因此,access_log中看到的是503 3)499 client发送请求后,如果在规定的时间内(假设超时时间为500ms)没有拿到nginx给的响应,则认为这次请求超时,会主动结束,这个时候nginx...404:请求的网页不存在 499:客户端主动断开了连接。500:服务器遇到错误,无法完成请求。502:服务器作为网关或代理,从上游服务器收到无效响应。...401 (未授权) 请求要求身份验证。 对于需要登录的网页,服务器可能返回此响应。 403 (禁止) 服务器拒绝请求。404 (未找到) 服务器找不到请求的网页。
Flask-RESTful的异常处理在Flask-RESTful中,异常处理是通过抛出异常来实现的。可以使用abort函数来抛出异常,并指定HTTP响应码和错误消息。...下面是一个示例:from flask import Flaskfrom flask_restful import Api, Resource, abortapp = Flask(__name__)api...= Api(app)class HelloWorld(Resource): def get(self): abort(404, message='Resource not found...')api.add_resource(HelloWorld, '/')if __name__ == '__main__': app.run(debug=True)在这个例子中,我们定义了一个HelloWorld...当调用get方法时,我们使用abort函数抛出一个HTTP 404异常,表示请求的资源未找到。Flask-RESTful会捕获这个异常并返回一个包含错误消息的HTTP响应。
PUT动词的另一个要求是幂等,在这种情况下,基本上意味着您可以发送该请求1,2或1000次,结果将相同:数据库中的一个更新的资源。...404: 未找到。当没有找到资源时,这将由Laravel自动返回。 500: 内部服务器错误。理想情况下,你不会明确地返回这个,但如果有意外的中断,这是你的用户将要收到的。 503: 暂停服务。...相当自我解释,还有一个不会被应用程序显式返回的代码。 发送正确的404响应 如果您尝试获取不存在的资源,则会抛出异常,您将收到整个堆栈跟踪,如下所示: ?...您可以使用许多外部工具来测试您的API; 然而,Laravel内部的测试是一个更好的选择 - 我们可以拥有测试API结构和结果的所有好处,同时保留对数据库的完全控制。...(401); } } 重要的是要注意提示,在测试期间,Laravel应用程序不会在新的请求上再次实例化。
2.Ajax请求的步骤 (1)创建`XMLHttpRequest`对象,也就是创建一个异步调用对象; (2)创建一个新的`HTTP`请求,并指定该`HTTP`请求的方式、`URL`及验证信息; (3)设置响应...3.XMLHttpRequest对象 (1)对象类型的API; (2)在浏览器环境使用; (3)用于客户端和服务端数据的传递和接收; (4)用于请求XML数据(JSON/TEXT)。...(禁止)服务器拒绝请求 404:(未找到)服务器找不到请求的页面 408:(请求超时)服务器等候请求发生超时 500:(服务器内部错误)服务器遇到错误,无法完成请求 6.onload和onreadystatechange...)创建一个新的`HTTP`请求,并指定该`HTTP`请求的方式、`URL`及验证信息; (3)设置响应`HTTP`请求状态变化的函数; (4)... 200:(成功) 403:(禁止)服务器拒绝请求 404:(未找到)服务器找不到请求的页面 <br /
API是定义应用程序接口的通用术语,换句话说,定义了用户(人或机器)如何与程序交互。在Web开发世界中,API通常是响应客户端结构化文本数据请求的网站端点集合。...一个JSON值一千字 让我们看一个API响应的例子: { "data": [ { "story": "Jonatas Baldin was writing a blog post....其主要组成部分有: URL:您的资源在Web上的位置,您的端点的地址。一个示例是使用http://example.org/users列出您的用户。 请求方法:客户端希望在特定端点上执行的操作。...404:着名未找到,表示资源不可用。 7.请清楚地描述您的错误 当发生问题失败时,通知客户端发生了什么以及如何恢复。...难以误用:如果发出了错误的请求,返回错误并提供信息。 简单是比复杂更好:简单的事情在每个方面都很容易。 在实现它之前使用你的API:创建一个模拟服务器来获得最终结果并演示。
第一,看看参数和数据能不能支持关键字,例如Java中的保留关键字等等;第二就是参数和数据都为空,看看是否做了判断;第三,参数多和少,例如有两个参数的接口,需要设计一个包含三个参数的用例,一个只有一个参数的用例...三、接口测试执行中需要比对数据库吗? 接口的返回关键字段和字段值是需要校验的,不然接口测试就没有意义了。 一般有两种方式: 1)数据库预置数据,接口校验返回; 2)接口调用,比对数据库查询结果。...); 2)关键字:验证关键字是否符合预期,用来判断测试用例是否执行成功; 3)正则匹配:当一个接口返回的内容较多,并且有一定规律时,可通过正则表达式来校验接口返回的信息来判定测试用例是否执行成功; 4)...ip和端口号; 5.检查你的客户端(浏览器/测试工具),是否设置了网络代理,网络代理可能会造成请求失败; 6.检查操作系统的host文件,是否绑定了一个错误的ip映射; 2)接口有响应但是返回了错误的状态码...url权限,还有就是项目所用的中间件,不允许远程访问(比如Apache); 404:资源未找到,导致这种情况的原因很多,比如: url拼写错误; url后有空格; 项目没有启动成功; 请求协议不对,如http
ajax原理 AJAX是基于现有的Internet标准,并且联合使用它们: XMLHttpRequest 对象 (异步的与服务器交换数据) JavaScript/DOM (信息显示/交互) CSS (给数据定义样式...0: 请求未初始化 1: 服务器连接已建立 2: 请求已接收 3: 请求处理中 4: 请求已完成,且响应已就绪 status 200: "OK" 404: 未找到页面...0: 请求未初始化 1: 服务器连接已建立 2: 请求已接收 3: 请求处理中 4: 请求已完成,且响应已就绪 status 200: "OK" 404: 未找到页面 在 onreadystatechange...method:请求的类型;GET 或 POST url:文件在服务器上的位置 async:true(异步)或 false(同步) send(string) 将请求发送到服务器。...string:仅用于 POST 请求 method:请求的类型;GET 或 POST url:文件在服务器上的位置 async:true(异步)或 false(同步) send(string) 将请求发送到服务器
领取专属 10元无门槛券
手把手带您无忧上云