1、url 可见性
get,参数url可见;
post,url参数不可见
2、传递参数
get,通过 拼接 url 传递参数;
post,通过 body 传输参数
3、缓存性
get请求是可以缓存的
post请求不可以缓存
4、传输数据的大小
get 传输数据大小不超过2k-4k
post 传输数据的大小根据 php.ini 配置文件设定,
大小没有限制
6、安全性
原则上 post 比 get 安全,毕竟传输参数时url不可见,
如果对传递的参数进行加密,其实都一样。
7、数据包
GET 产生一个TCP数据包;
POST 产生两个TCP数据包。
对于GET
浏览器会把 header 和 data 一起发送出去,
服务器响应 200(返回数据)
对于POST,
浏览器先发送 header,服务器响应 100 continue,
浏览器再发送 data,服务器响应 200 ok(返回数据)。
在网络环境差的情况下,
两次包的TCP在验证数据包完整性上,有非常大的优点。
并不是所有浏览器都会在POST中发送两次包,
Firefox就只发送一次。
