1. url可见性
get请求参数可见,post请求参数不可见
2. 数据传输上
get通过拼接url进行传输,post通过body体传输参数
3. 缓存性
get请求可缓存,post请求不可以缓存
4. 页面后退上
get请求页面后退对页面无影响,post请求后退会重新提交请求
5. 安全性上
post相对get请求,相对来说较安全,但也不是绝对的,其他人可以通过抓包查看请求参数,安全性区别不是特别大
6. 数据传输的大小
get请求一般数据传输大小在2k-4k,post请求传输数据发现根据php.ini文件中配置
7. 数据包
get请求只产生一个TCP包,post请求产生2个TCP包。浏览器会把http header和data一起发送;对于post,浏览器会先发送header,服务器返回100 continue,浏览器再发送data,服务器响应200 ok(返回数据)。在网络环境较好的情况下,发一次包的时间和发两次包的时间基本可以无视,而在网络环境较差的情况下,两次包的tcp在验证数据包完整性上,有非常大的优点。并不是所有的浏览器都会在post中发送两次包,firfox就只发送一次。