-
GET请求常用于向服务器获取数据;POST请求常用于向服务器传送数据
-
GET请求把参数包含在URL中,将请求信息放在URL后面,POST请求通过request body传递参数,将请求信息放置在报文体中
-
参数大小不同,通常浏览器会对URL的长度有限制(大概在2k),有些服务器处理长 URL 要消耗比较多的资源,为了性能和安全考虑,会给 URL 长度加限制;POST请求传送的数据量一般被默认为不受限制。但理论上,IIS4中最大量为80KB,IIS5中为100KB
-
GET请求安全性非常低,他传递的参数在地址栏里面可以看到,POST请求安全性较高,POST传递数据比较隐私,所以在地址栏看不到。从传输的角度来说,他们都是不安全的,因为
HTTP
在网络上是明文传输的,只要在网络节点上捉包,就能完整地获取数据报文,只有使用HTTPS
才能加密安全 -
GET请求能够被缓存,GET请求会保存在浏览器的浏览记录中,以GET请求的URL能够保存为浏览器书签,POST请求不具有这些功能
-
HTTP的底层是TCP/IP,GET和POST的底层也是TCP/IP,也就是说,GET/POST都是TCP链接。GET和POST能做的事情是一样一样的。你要给GET请求加上request body,给POST请求带上url参数,技术上是完全行的通的
-
GET请求产生一个TCP数据包,对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据);POST产生两个TCP数据包,对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据),并不是所有浏览器都会在POST中发送两次包,Firefox就只发送一次