首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

REST API有关幂等性等11条最佳实践

规则 #8:不要使用 404 来表示“未找到HTTP 规范规定,应使用 404 来表示未找到资源。按照字面解释,如果向不存在的 ID 提出 GET/PUT/DELETE 等请求,则应返回 404。...HTTP 404 表示 "未找到内容",这与返回 HTTP 500 几乎一样--它可能意味着内容不存在,也可能意味着出了问题;客户端无法确定是哪种情况。... GET、PUT、PATCH 和其他方法也存在类似的问题。 你可以使用 404返回一个自定义的错误正文,并要求客户端检查错误正文是否正确。这会给懒惰的客户端程序员带来麻烦。...这略微偏离了 410 的原意("以前存在,但现在没有了"),实际上没有人会使用这个错误,而且它也很容易解释,也不会有未来的 HTTP 规范会重新使用你编造的 4XX 号码的风险。...几乎任何策略都比返回 404(实体未找到)要好。 规则#10:一定要使用结构化错误格式 如果您正在为一个简单的网站构建后端,您可能可以忽略此部分。

19420
您找到你想要的搜索结果了吗?
是的
没有找到

​如何处理Express和Node.js应用程序中的错误

例如,index.js定义了两条get路由(/ 和 /about)。正在使用get路由,以便我们可以轻松地在浏览器中测试路由。...请注意,路由定义了请求路径,并对该路径发出请求时调用了中间件函数: app.HTTPMethod(path, middleware) // HTTPMethod = get, post, put, delete...要查看实际效果,请访问localhost:3000/contact,浏览器将显示: Cannot GET /contact 检查路由表后,Express发现/ contact不匹配,因此它以错误响应。...我们也不知道请求可能使用哪种HTTP方法,因此我们将使用app.use()而不是app.get。...).send({ status: 404, error: ‘Not found’ }) }) app.listen(port … 重新启动服务器并访问未定义的路径,例如localhost:3000/

5.6K10

(Servlet)Ajax

Http头 getResponseHeader() 获取指定的Http头 open(method,url) 创建请求,method请求类型 get post send() 发送请求 setRequestHeader...() 指定请求的Http头 onreadystatechange 发生任何状态变化时的事件控制对象 readyState 请求的状态 0尚未初始化 1正在发送请求 2请求完成 3请求成功,正在接收数据...202 请求被接受,处理未完成 400 错误的请求 404 资源未找到 500 内部服务器错误,如asp代码错误等 onreadystatechange onreadystatechange...Ajax对象:获取XMLHttpRequest对象实例 2、设置回调函数:为Ajax对象的readystatechange事件设定响应函数 3、创建请求:调用XMLHttpRequest对象的open方法...消息头,但是默认情况下xhr(即Ajax对象)不会添加该消息头,所以,需要调用setRequestHeader方法,添加这个消息头 4、发送请求 GET 请求 xhr.send(null) POST

78610

前端 er,什么时候,你想写一个 HTTP 服务器?

大家好,是杨成功。 曾几何时,作为前端的你,想要写一个 HTTP 服务器?...现在把代码写进 index.js ,再超简单的把它运行起来: $ node index.js 打开浏览器,输入 http://localhost:3000,就能看到网页显示的 hello world...就是收到了客户端的请求,可以设置状态码为 200 并返给前端数据;或者设置状态码为 500 并返给前端错误。 总之一句话,调用接口返回什么,是由 response 决定的。...POST 与上面 GET 请求基本一致,区别是看请求体怎么传: const http = require('http') const options = { hostname: 'nodejs.cn...({ path: '/', method: 'POST' }) req.write(JSON.stringify(body)) 还有上面获取请求体也是如此,不能直接通过 res.body 获取

90830

express新手入门指南

路由机制 客户端(包括 Web 前端、移动端等等)向服务器发起请求时包括两个元素:路径(URI)以及 HTTP 请求方法(包括 GETPOST 等等)。...这里访问了首页(localhost:3000)和 /hello(localhost:3000/hello,浏览器应该看到的是 404),可以看到控制台相应的输出: [11/28/2019, 3:54:...实际上,中间件不仅可以读取 req 对象上的各个属性,还可以添加新的属性或修改已有的属性(后面的中间件和路由函数都可以获取),能够很方便地实现一些复杂的业务逻辑(例如用户鉴权)。...://localhost:3000/css/style.css http://localhost:3000/img/tuture-logo.png 样式文件 public/css/style.css 的代码如下...; }); 然后开启服务器,访问 localhost:3000/broken: ? 危险! 服务器直接返回了出错的调用栈!很明显,向用户返回这样的调用栈不仅体验糟糕,而且大大增加了被攻击的风险。

3.2K20

AJAX的基本原理及实例解析。

status——从服务器返回的数字代码,如404(未找到)和200(已就绪)。   status Text——伴随状态码的字符串信息。   readyState——对象状态值。...对象状态值有以下几个:   0 - (未初始化)还没有调用send()方法   1 - (载入)已调用send()方法,正在发送请求   2 - (载入完成)send()方法执行完成   3 - (交互...)正在解析响应内容   4 - (完成)响应内容解析完成,可以在客户端调用了   对于readyState的状态值,其中“0”状态是在定义后自动具有的状态值,而对于成功访问的状态(得到信息)我们大多数采用...真正能够向服务器发送请求需要调用send方法,并仅在POST请求可以传入参数,不需要则发送null,在调用send方法之后请求被发往服务器。   ...status——从服务器返回的数字代码,如404(未找到)和200(已就绪)。   status Text——伴随状态码的字符串信息。

94830

摸鱼快报:golang nethttp中的雕虫小技

向开发环境localhost:3000种植cookie 前端使用Create React App脚手架,默认以localhost:3000端口启动; 后端使用golang-gin框架,使用8034端口启动...被种为domain=localhost ① golang给出日志提示:2023/01/12 19:10:48 net/http: invalid Cookie.Domain "localhost:3000...HttpClient Timeout包括连接、重定向(如果有)、从Response Body读取的时间,内置定时器会在Get,Head、Post、Do 方法之后继续运行,并有能力中断读取Response.Body...在fasthttp中,设置请求谓词:req.Header.SetMethod("POST"), 这种将谓词作为header的行为,也是服气。...例如尝试以如下方式: http.NotFound(w, r) # 会调用WriteHeader(404);Write()写入body w.WriteHeader(http.StatusInternalServerError

39720
领券