我被告知永远不要使用GET请求进行写操作。并且搜索引擎和其他机器人会跟随并激活它们。假设所有写入操作都需要登录,那么将请求作为链接会出现问题吗?
答案 0 :(得分:5)
使用GET写入会违反REST。这样做有更多的基本和哲学原因,而不仅仅是因为机器人会遵循它们。这并不意味着它不被允许。
GET不应该导致写入操作的原因是,在RESTful服务中,存在一个隐含的协议,即GET是“安全的”,并且不会导致任何远程发生。 GET仅用于获取信息。如果要发送信息,请使用POST。
答案 1 :(得分:1)
不仅是机器人,而且常规浏览器对GET请求的行为也不同。当您在使用POST的页面上使用“后退”按钮时,大多数浏览器会发出警告,重新发送请求将再次执行(假定的)写入操作。 GET没有这样的东西,因为它假定GET不会改变任何东西。
答案 2 :(得分:1)
登录不会保护用户免受浏览器,浏览器插件(包括链接预览器),“Web加速器”甚至代理服务器完成链接预取的危险。