第一方面:安全性,get把数据追加在url上,明文显示,不安全,而post不是明文显示,相对安全。
第二方面:数据允许大小,get允许传递的数据只有2kb,而post则不限。
第三方面:数据流,get只能传递字符型数据,不能传递二进制流数据,而post既可传递字符流也可传递二进制流。
GET只请求了一次TCP,POST请求了两次TCP。浏览器在发POST的时候会先发一个options请求。
一般来说除了需要传用户个人的信息用post,其余几乎都用get。
get和post请求,在http协议中信息存放的位置不同:
get将信息存放在http协议header中,有长度的限制,而且浏览器会缓存get请求的地址,如果地址不变,第二次请求不会真的发送到服务器。
post请求是将信息存放到http协议的body中,没有长度限制,浏览器每次都会执行post请求,不会缓存,post请求如果在服务器端执行新增数据时应该注意重复提交的问题,避免数据重复。