get和post都是向服务器发送请求的一种,只是发送的机制不同。
两者区别:
1.使用get请求时,参数在url中显示,而使用post请求时,将数据放到request body中。
2.使用get请求发送数据量小,只能传递1024字节,而使用post请求发送数据量大,可以达到2M。
3.get请求参数会被完整的保留在浏览器的历史记录中,而post不会,因此,使用get请求存在安全问题。
4.get请求参数中有非ASCII字符,会在请求前进行转码,post不会,post数据在Requset body中,通过MIME,可以传输非ASCII字符。
5.get产生一个TCP数据包,post产生两个TCP数据包(Firefox发送一次)。对于get请求,浏览器会把http header和data一起发送出去,服务器响应200 ok;对于post,浏览器先发送header,服务器返回100 continue,浏览器再发送data,服务器响应200。