GET和POST有什么区别?

最普遍的答案( 错误 )

  1. GET使用URL传参。而POST将数据放在BODY中。

  2. GET的URL会有长度上的限制,则POST的数据则可以非常大。

  3. 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有长度限制

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容