好的,我知道目的上的差异.GET是获取一些数据.提出请求并获取数据.POST应该用于CRUD操作,而不是我认为的读取.但是当它归结为它时,服务器是否真的关心它最终是否接收到GET与POST?
根据HTTP RFC,GET不应该有任何副作用,而POST可能有副作用.
最基本的例子是,GET不适用于购买交易或将文章发布到博客等任何内容,而POST适用于具有后果的操作.
通过RFC,您可以让用户对POST(例如购买)所执行的操作负责,但不对GET操作负责.'因此,机器人总是使用GET.
来自RFC 2616,9.1.1:
9.1.1安全方法
实施者应该意识到软件代表用户在
互联网上的交互,并且应该小心地让用户知道他们可能采取的任何可能
对他们自己或他人有意想不到的意义的行为.特别是,已经建立了这样的惯例:GET和
HEAD方法不应该具有采取
除检索之外的动作的重要性.这些方法应该被认为是"安全的".这允许用户代理以特殊方式表示其他方法,例如POST,PUT和DELETE,以便使用户意识到正在请求可能不安全的操作.当然,不可能确保服务器不会
因执行GET请求而产生副作用; 实际上,一些动态资源会考虑这个功能.这里的重要区别是用户没有请求副作用,因此不能对他们负责.
如果搜索引擎正在抓取页面,它会发生,因为它们将发出GET请求而不是POST.假设您的页面上有链接:
http://www.example.com/items.aspx?id=5&mode=delete
如果在删除之前未执行某种授权检查,Googlebot可能会进入并删除您网页中的项目.
因为你是编写服务器软件的人(大概是),所以如果你告诉它要关心它.如果你以相同的方式处理POST和GET数据,那么不,它没有.
但是,浏览器绝对关心.例如,刷新或单击回到您作为对POST的响应而获得的页面会弹出"您确定要再次提交数据"提示.