技术&日志

POST和GET区别

从语义,幂等性,副作用和可缓存性方面的区别分析

  • 语义: GET是用来向获取服务器信息的, POST是用来向服务器传递数据
  • 副作用: 从http-safe的角度 中是否改变服务器资源的状态, POST是一个可能有副作用的方法,但GET应是没有副作用的的(因为POST会改变服务器状态)
  • 副作用: 如果是GET带副作用的请求可能会导致 被被通过一张带超链接的图片进行XSS攻击, 也可能会被一只爬虫无意的暴击
  • 幂等性(多次请求结果一致): 安全(Safe)方法包括GET都是幂等的,POST不是幂等的
  • 可缓存性: 安全(Safe)方法包括GET都是可被缓存的,POST不会。
  • GET请求只能进行url编码,而POST支持多种编码方式
  • 对参数的数据类型,GET只接受ASCII字符,而POST没有限制。

参考文章

[原][经典面试题]带你深入理解HTTP中GET和POST的区别

如果面试官问你:GET和POST的区别?

发表评论