最直观的区别就是GET把参数包含在URL中,POST通过request body传递参数。
HTTP协议是基于TCP/IP协议的。所以GET和POST的底层也是基于TCP/IP协议,也就是说,GET/POST都是TCP链接。GET和POST能做的事情是一样一样的。你要给GET加上request body,给POST带上url参数,技术上是完全行的通的。
get请求长度问题就不说了。没啥意思、
GET和POST最为重要的一个区别:
GET产生一个TCP数据包;POST产生两个TCP数据包。
对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200.
而对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)。
但并不是所有浏览器都会在POST中发送两次包,Firefox就只发送一次。