如何在REST中正确实现随机数生成器?
GET RANDOM/
或..
POST RANDOM/
服务器每次都返回一个不同的随机数。
我可以看到两种方式的争论。
答案 0 :(得分:7)
我会说这与包含当前时间的返回页面相同 - 其中许多是使用GET完成的。抽象地,获取服务器状态的随机数(或时间)不会改变 - 时间和随机数都可以被描述为对外部事件的观察。例如。 http://random.org使用大气噪音。
GET似乎最合适,但需要通过适当的标头禁用缓存,例如
Expires: <Current Time>
Last-Modified: <Current Time>
Cache-Control: no-cache, must-revalidate
Pragma: no-cache
如果您想确保所提供的内容已过期:
将回复标记为“已经” 已过期,“原始服务器发送一个 过期日期等于日期 标头值。 (参见规则 部分的到期计算 13.2.4。)
答案 1 :(得分:2)
绝对是GET。即使它可能会修改服务器端状态(如果它使用伪RNG),这只是客户端不应该关心的实现细节。
答案 2 :(得分:-3)
POST是最弱的方法,如果其他方法没用,可以使用。
为什么不GET:GET-call的结果可以是cachet(cache-header,etag oder透明代理),你不会得到随机结果......