更具RFC7231对请求方法的描述,不同的请求方法仅存在语义差别,没有本质区别。但是由于市面上的常见软件对get请求,认为get请求默认不带请求体,所以造成了一直实质性的差别。
- 浏览器在发送get请求时,不会携带请求体
- get请求的传递信息量有限,适合传递少量数据;post请求的传递信息量是没有限制的,适合传输大量数据。
- get请求只能传递ASCII数据,遇到非ASCII数据需要进行编码;post请求没有限制。
- 大部分get请求传递的数据都附带在path参数中,能够通过分享地址完整的重现页面,但同时也暴露了数据,若有敏感数据传递,不应该使用get请求,至少不应该放到path中。
- post不会被保存到浏览器的历史记录中
- 刷新页面时,若当前的页面时通过post请求得到的,则浏览器会提示用户是否重新提交。若是get请求得到的页面则没有提示。