GET 和 POST 其实都是 HTTP 的请求方法。除了这 2 个请求方法之外,HTTP 还有 HEAD、PUT、DELETE、TRACE、CONNECT、OPTIONS 这 6 个请求方法。对于程序员的咱们来说,这两种请求方法,在日常开发的 RESTful 接口中,都能看到它们的身影。而它们之间的区别,也已经成了经典的面试题,所以让我们来详细的聊聊。
一、相同点
GET 请求和 POST 请求底层都是基于 TCP/IP 协议实现的,使用二者中的任意一个,都可以实现客户端和服务器端的双向交互。
二、不同点
约定和规范
对于GET 请求和 POST来说,它们最大的区别是规范和约定上的不同。在规范中,定义 GET 请求是用来获取资源的,也就是进行查询操作的,而 POST 是用来传递实体的。所以在我们开发中对于获取一般常用GET请求,而对于数据的增添、删除、修改,一般都使用POST请求进行操作。还有一点,他们两者之间的参数传递也是不同的。GET 请求是将参数拼接到 URL 上进行参数传递的,而 POST 是将参数写入到请求正文中传递的。
如下图所示,对于get请求而言,一般用于数据的查询,请求参数拼接到URL路径中:
如下图所示,对于add这个接口而言,是以Post进行请求。
是将参数写入到请求正文中传递的。如下图所示:
缓存
GET请求会被浏览器主动缓存,比如常见的CSS,JS,HTML请求都会被缓存,如果下次传输的数据相同,那么他们就会返回缓存中的内容,以求更快的展示所需要的数据。
如下图所示:
首先说一下状态码304:是对客户端有缓存情况下服务端的一种响应。
在浏览器第一次请求某一个URL时,服务器端的返回状态会是200,内容是客户端请求的资源,同时有一个Last-Modified的属性标记此文件在服务器端最后被修改的时间。客户端第二次请求此URL时,根据HTTP协议的规定,浏览器会向服务器传送If-Modified-Since报头,询问该时间之后文件是否有被修改过。 如果服务器端的资源没有变化,则自动返回 HTTP 304状态码,内容为空,这样就节省了传输数据量。下面提供简易流程图较为清晰:
所以对于常见的CSS,JS,HTML请求都会被缓存。
而对于POST请求来说:POST请求默认不会进行缓存。如下图所示:
他会再次发送请求,拿到响应数据,不会进入缓存。
参数长度限制
由于GET请求的参数通过url来传递的,而url的长度是有限制的,根据不同的浏览器以及不同的浏览器版本,他们大小的限制也是不同的。
对于POST请求来说,参数存放在request body中,它没有大小限制。
效率
GET产生一个TCP数据包,而POST产生2个TCP数据包,为什么呢?
对于GET请求来说,浏览器发送请求,会把http header和data一并发送出去,服务器做出相应200ok。而对于POST而言,浏览器会先发送header,服务器响应100continue,再发送data,服务器再做出响应200ok。因此POST在时间上会消耗比GET要大。当然,并不是所有的浏览器POST都会发送2次包,Firefox就只发送一次。
回退和刷新不同
GET 请求可以直接进行回退和刷新,不会对用户和程序产生任何影响;而 POST 请求如果直接回滚和刷新将会把数据再次提交。
总结
GET 和 POST 是 HTTP 请求中最常用的两种请求方法,它们的底层都是基于 TCP/IP 实现的。但是由于 HTTP 的规定以及浏览器/服务器的限制,导致它们在应用过程中可能会有所不同。
来源:格隆汇APP格隆汇4月5日|“美联储传声筒”NickTimiraos表示,美联储主席鲍威尔处在关键转折点。2019年6月:采取适当行动维持经济增长。2024年8月:劳动力市场进一步疲软是不可取的。2025年4月:我们的义务是保持长期通胀预期稳定。
在消费升级与健康需求双重驱动的浪潮下,中国智能马桶行业正经历一场从"野蛮生长"到"品质觉醒"的深刻变革。在7月1日国家强制实施智能马桶3C认证的倒计时中,京东于4月1日率先掷出一枚"深水炸弹"——抢先联合品牌完成全量自营智能马桶3C认证,比政策限期提前三个月完成布局。此次京东自营智能马桶率先全面切换
埠帝保险柜售后维修服务中心400-883-8253,致力于为客户提供全方位、专业且高效的产品维修解决方案。埠帝保险柜维修服务中心拥有一支经验丰富、技术精湛的团队,他们对各类产品的结构和功能了如指掌,能够迅速准确地定位问题,以最小的干扰和最快的速度完成维修工作。我们的服务流程严谨而高效,从初步咨询、故
纳诗莲保险柜全国服务热线:400-883-8253随时为您解决家电维修问题无论我们多么小心使用家电产品,总会有一天出现故障的时候。面对这种情况,许多人可能会感到困惑和无助,不知道该去哪里寻求帮助。作为家电维修问题的专家,我们建议您拨打纳诗莲保险柜全国服务热线:(以产品说明书或保修卡电话为准)。这
全能保险柜24小时售后客服中心:400-883-8253全能保险柜,作为一家资深且信誉卓著的服务提供商,自成立以来便专注于为各界客户提供安全可靠的产品质量与维护解决方案。我们不仅拥有完备的工商注册资质,并且每一项服务均经过相关单位严格备案,确保每一次上门服务既专业又合法,给予客户十足的安全感
网站内容来自网络,如有侵权请联系我们,立即删除!
Copyright © 黑兔子百科网 琼ICP备2024032622号-19