最普遍的答案( 错误 )
GET使用URL传参。而POST将数据放在BODY中。
GET的URL会有长度上的限制,则POST的数据则可以非常大。
POST比GET安全,因为数据在地址栏上不可见。
但是很不幸,这些区别全是错误的。
GET和POST与数据如何传递没有关系
GET和POST是由HTTP协议定义的。
本质:都是基于 TCP/IP
GET和POST还有一个重大区别,简单的说:
GET产生一个TCP数据包;POST产生两个TCP数据包
长的说:对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据);
而对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)。
HTTP没有要求,如果Method是POST数据就要放在BODY中。也没有要求,如果Method是GET,数据(参数)就一定要放在URL中而不能放在BODY中。
HTTP协议对GET和POST都没有对长度的限制
浏览器对url有长度限制