最后更新:2022-08-04 07:43:49 手机定位技术交流文章
GET和 POST是HTTP请求的两个最常用的请求方法。在日常开发RESTful接口中,你可以看到他们的面孔。而它们之间的区别,这也是一个常见的和经典的面试问题,因此,我们将在这个文章中详细地讨论它。 HTTP 协议定义的方法类型总共有以下 10 种:

PS: 目前大多数网站使用协议的HTTP 1.1。
然而,在日常开发中,最常用的是GET请求和 POST请求,特别是在小型和中型企业中,它们基本上是项目实施的唯一两个请求。
GET 请求和 POST 请求底层都是基于 TCP/IP 协议实现的,使用二者中的任意一个,都可以实现客户端和服务器端的双向交互。
GET和 POST之间最内在的区别是“公约与规范”之间的区别,在规范中,定义GET请求用于访问资源,也就是说,为了执行查询操作,POST请求用于发送实体对象,因此, POST被用于添加、修改和删除操作。当然,如果严格按照标准,删除操作只应使用删除请求,但在实际开发中,使用 POST 去除是比较常见的。按照约定来说,GET和 POST参数也不同,GET请求通过添加参数将参数传递到URL上。POST将请求参数写入请求文本,如下图所示:

GET 请求一般会被缓存,比如常见的 CSS、JS、HTML 请求等都会被缓存;而 POST 请求默认是不进行缓存的。
GET请求的参数通过URL传递,而URL的长度是有限的,通常为 2k,当然,浏览器制造商不同,版本不同,而且这个限制的大小也可能不同。但相同的是它们都会对 URL 的大小进行限制;而 POST 请求参数是存放在请求正文(request body)中的,所以没有大小限制。
GET请求可以直接返回和更新,不会对用户或程序产生任何影响;而 POST请求会重新提交数据,如果它们被直接返回和更新,如下图所示:

GET请求的参数将存储在历史记录中, POST请求的参数不会存储在历史记录中。
GET请求的地址可以被收集为书签, POST请求的地址不能被收集为书签。
GET和 POST是HTTP请求的两个最常用的请求方法。它们的底层基于TCP/IP实现。它们的区别主要体现在 5 个方面:缓存不同、参数长度限制不同、回退和刷新不同、历史记录不同、能否保存为书签不同,但它们最大的区别是规范和惯例的差异,该规格定义GET是用来获取信息的,POST用于转移实体,GET请求的参数应该放在URL上,POST请求的参数置于请求的原始文本中。
本文由 在线网速测试 整理编辑,转载请注明出处。