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