我正在使用PHP开发LAMP环境。我的脚本使用$ _REQUEST而不是$ _GET或$ _POST读取客户端数据。我想,一旦我完成了制作,我只会将我的jQuery默认值从GET更改为POST。
任何人都可以看到这种方法的任何缺点吗?
更多信息?
我的jQuery Ajax设置默认设置GET - 来自console.log中显示的url的输出帮助我检查成功传递的args和没有值。
在生产环境中,URL数据将显示在日志文件中,这可能会造成漏洞。虽然目前不重要,但我从长远来看。它也会,我怀疑导致更大的日志文件(本身不是问题,但仍然需要考虑)。
虽然很少有浏览器遵守我不太可能达到的慷慨限制,但GET的篇幅有限。POST具有更少限制的优势。它还允许上传文件。
就像我的第一段说的那样...我只是在试图权衡从GET到POST的好坏。
所有评论都欢迎......
答案 0 :(得分:6)
不应该“权衡利益”。它们用于不同的事物。只要请求对服务器状态没有影响,就应该使用GET(除了简单的访问日志之外)。当存在时应该使用POST(现在忽略诸如PUT或DELETE之类的REST方法)。
例如,如果您想让服务器向您显示下一页,列出可用项目,为您显示图片......您应该使用GET。如果您想要求服务器更改数据库,请记住您的选择,发送电子邮件,上传文件,删除文件,关闭服务器......您使用POST。
这不仅仅是一个原则问题;它是其他Web参与者所依赖的合同,例如crawlbots。如果您没有身份验证,并且您的删除操作是GET链接,那么Googlebot的一次访问可以清除您的数据库。