根据我对REST(REpresentational State Transfer)的了解,有一些“安全”的HTTP方法,比如GET请求,不应该在服务器上调用更改。
有很多很棒的RESTful API,我注意到其中很多都会限制你在一段时间内可以提出的请求数量。监视GET请求是否会在技术上破坏REST,因为跟踪请求需要在服务器上进行更改?
或者是否有完全RESTful方式来跟踪GET请求?
答案 0 :(得分:2)
定义了一些方法(例如,HEAD,GET,OPTIONS和TRACE) 安全,这意味着它们仅用于信息检索 并且不应该更改服务器的状态。换句话说,他们 不应该有副作用,超出相对无害的影响 作为记录,缓存,横幅广告的服务或 递增网络计数器。无需进行任意GET请求 因此,应该考虑应用程序的状态 被认为是安全的。
对于REST请求也是如此。
答案 1 :(得分:0)
监控使用情况通常与应用程序层不同。所以REST API是一回事,而使用跟踪则是另一回事。
此外,虽然REST是一种建筑风格,但我们不应该屈服于现实以遵守它。我们有时可以忽略“打破”架构的事情,但我们应该在考虑后果后才这样做。对建筑狂热并不是一个好习惯......
答案 2 :(得分:0)
如果从客户端的角度考虑HTTP方法的语义,则更容易理解“安全”语义的目的。从客户端的角度来看,它发出的请求没有任何 intent 来更改服务器上的任何状态。如果服务器选择进行状态更改,那么这就是服务器的选择,客户端不能被视为对这些更改负责。