http - 通过 HTTP API 生成随机值的空 HTTP POST 请求或 GET 请求

标签 http rest web asp.net-web-api

在我的 HTTP API 中,其中一个端点应返回一个随机生成的值,并且该值将与端点的经过身份验证的调用方相关联。目前,我有以下结构:

GET http://example.com/random-ticket HTTP/1.1
Authorization: Basic base64-encoded-basic-auth-value
Accept: application/json
Host: example.com

HTTP/1.1 200 OK
Cache-Control: no-cache
Content-Type: application/json; charset=utf-8
Date: Thu, 03 Oct 2013 07:25:56 GMT
Content-Length: 59

{"user-ticket":"Pfa42634e-1a2e-4a7d-84b9-2d5c46a8dd81"}

发出 GET 请求以检索随机值。然而,HTTP GET calls should be idempotent而我的上述实现不遵守该规则。另一方面,我不确定是否可以发出带有空消息正文的 HTTP POST 请求。

HTTP book 执行此类操作的正确方法是什么?

最佳答案

  • Safe => 调用是否会导致服务器上的状态发生变化。
  • 幂等性 => 多次调用是否会导致服务器发生相同的变化。

所以问题不在于返回的数据。相反,它是服务器状态:因此,如果您将此值存储在服务器上,这会导致状态发生变化,那么它不适合 GET。否则如果是返回的数据就好了。调用http://stackoverflow.com如果间隔 10 分钟调用,将返回不同的数据。

让我们看另一个例子,返回当前时间的时钟服务。每次调用时,都会得到不同的值,但调用本身不会导致服务器上的状态发生变化,因为时钟状态是单独维护的。所以在这里使用GET是一个不错的选择。

关于http - 通过 HTTP API 生成随机值的空 HTTP POST 请求或 GET 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19265970/

相关文章:

http - angular2 如何将来自 http.get 的响应头数据存储在额外变量中?

http - 如何解析带有 `gen_tcp` 的 HTTP 请求?

python - 无法从 Flask api 获取评论

rest - Firestore REST API 数据库监听

git - 使用 git + post-receive hook 管理网站 : error pushing changes

python - django HTTP 405 方法不允许以 html 形式出现

rest - 如何在 JSON 响应中过滤数据库中的字段?

java - 缺少 Tomcat 8 的 Context.xml 文件

javascript - 有什么方法可以防止用户截取网页?

http - python 在 Content-Disposition 中请求 POST Multipart/form-data 和附加参数