说到WEB开发中GET与POST两种请求方法,相信有点WEB知识的开发者,都能说出个一二三来。但它们之间的区别你能说出多少来呢?下面飞鸟慕鱼博客的小编就收集了一些资料,来说一下 POST 与 GET 请求的区别。

GET 与 POST 的简单理解

GET 与 POST 是 HTTP 协议中,两种发送请求的方法。

HTTP 是基于 TCP/IP 的关于数据如何在万维网中如何通信的协议,它底层是 TCP/IP。所以 GET 和 POST 的底层也是TCP/IP,也就是说,GET 与 POST都是TCP链接。

GET 与 POST 所要做的事情都是一样的,但硬要说它们之间的区别,那还是有的。

GET 与 POST 的区别

GET 与 POST 之间的区别,是有请多的,以下是网上收集的一些,大家可参考一下。

1、GET在浏览器回退时是无害的,而POST会再次提交请求

2、GET请求会被浏览器主动cache(缓存),而POST不会

3、GET产生的URL地址可以被Bookmark(存为便签),而POST不会

4、GET只能进行url编码,而POST可以支持多种编码方式

5、GET请求在URL中的参数有长度限制,而POST没有

6、GET请求参数会被完整保留在浏览器历史记录里,而POST不会

7、GET只接受ASCII字符类型的数据,而POST没有限制。

8、GET没有POST安全,因为参数直接暴露在URL上

9、GET参数通过URL传递,POST放在Request body中

10、Get执行效率却比Post方法好。

11、Get是form提交的默认方法。

GET 与 POST 请求的TCP数据包对比

TCP:(Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议。

在 GET 与 POST 请求中,都会发送 TCP 的数据包。在实际请求中,GET只产生一个 TCP 的数据包,而 POST 会产生两个 TCP 的数据包。

GET 与 POST 两种请求方法的区别

网上找的POST 与 GET  对比图

1、在 GET 方式的请求中,浏览器会把 http header 和 data 一起发送出去,服务器响应200(返回数据);

2、在 POST 方式的请求中,浏览器先发送 http header,等服务器响应100 continue,浏览器再发送 data(form表单内的数据),服务器响应200(返回数据,表示服务器已接收数据并正确处理)。

PS:在网络条件较好的情况下,POST(发送了两次数据包) 与 GET(发送了一次数据包) 请求的性能差距是可以忽略不计的。而 POST 发送的 TCP 数据包在完整性上,是很有优势的。