问题描述
您好,我有以下问题,我已经开始研究API和RESTful 我希望你能帮助我。
例如,通常通过uri发送Get方法
http: // example / login? name = Xxxx
POST update
PUT insert
GET get
DELEATE delete
但是如果我必须执行Get操作,但数据对于在uri中旅行非常敏感。我该怎么办?将其更改为Post方法,使其在体内传播?
我了解它具有类似于jwt的安全性术语,但是在那种情况下,应该怎么做?
解决方法
我必须执行Get操作,但是数据对于在uri中旅行非常敏感。我该怎么办?将其更改为Post方法,使其在体内传播?
是的,完全正确。
从理论上讲,没有理由我们不能拥有effectively read only且具有方法主体的HTTP方法。但截至2020-09年,符合要求的唯一注册方法是SEARCH和REPORT,它们都具有您可能要避免的WebDAV语义。
在缺少具有所需语义的标准方法的情况下,it is okay to use POST。
一种思考方式是,我们使用POST来创建新资源,并将请求的内容作为参数。新资源将具有其自己的标识符,该标识符会掩盖敏感数据。然后,您可以随时使用新标识符获取资源的最新表示形式。
在该基本概念中,我们添加了以下想法:在创建新资源时返回该资源的表示形式,并将该资源视为不需要存储的临时性东西,因为使用后会立即“消失” (这意味着随后尝试获取该表示形式将是404)。
所以您最终可能会得到类似
的响应201 Created
Location: /random-url-that-has-no-sensitive-information
Content-Location: /random-url-that-has-no-sensitive-information
Cache-Control: no-cache
....