1.GET和POST是HTTP协议中的两种发送请求的方法。由于HTTP的底层是TCP/IP。所以GET和POST的底层也是TCP/IP 所以 GET和POST在本质上没什么区别
2.(两者之间最大的区别)GET产生一个TCP数据包(浏览器会把http header和data一并发送出去,服务器响应200(返回数据));POST产生两个TCP数据(浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据),但Firefox就只发送一次)。
3.get是从服务器上获取数据(查询数据),post是向服务器传送数据(数据添加、修改、删除)。
4.Get把请求的数据放在url上面 即http的协议头上,post把数据放在http的包体内(requrest body)(post比get安全)。
5.Get 请求参数通过 url 传递,所以传送的参数是有长度限制的,post 请求方法 在request body 中,所以没有限制(get、post理论上是都没有长度限制的,get提交的数据最大是2k,限制实际上是取决于浏览器;post 实际上有限制 IIS4最大量为80KB,IIS5为100KB)。
6.Get 在浏览器回退时是无害的,而 post 会再次请求提交 。
7.Get 请求会被浏览器主动 cache,而 post 不会 除非手动设置。
8.Get 请求只能进行 url 编码(ASCII字符),而 post 支持多种编码方式
9.post那么好为什么还用get ? get效率高!
详细内容请参考:get和post请求的区别