GET请求方法:
POST请求方法:
二者最直观的区别就是
1.get方法会把数据都放在头部url里而post会放在请求体中,因为get方法数据都暴露在url中因此post方法比get更加安全
2.get方法在浏览器回退时是无害的而post会再次提交表单
3.get方法产生的url可以被bookmark,post不会
4.get方法会被浏览器主动cache,post不会除非手动设置
5.get方法只能进行url编码,post支持多种编码
6.get方法参数会完整保留在历史记录里而post中的参数不会
7.get方法在url中传颂的参数是有长度限制的,post没有
8.对参数的数据类型get只接受ASCll字符,post不是
但其中本质上有一个重大区别
由于get方法会把请求头和数据一并发送服务器响应200只会产生一个tcp包,而post会先发送一个请求头服务器响应100continue之后再发送数据服务器响应200因此会产生两个tcp包
所以
1.get方法和post方法有各自的语义不可以混用
2.网络环境好的情况下,发一次包和发两次包的时间差不多可以忽略不计,但是在差的网络环境中发两次包在tcp完整性验证上具有非常大的优点
3.并不是所有浏览器post方法都会发两次包,火狐就只发一次