GET和POST两种基本请求方法的区别有哪些

技术GET和POST两种基本请求方法的区别有哪些本篇内容主要讲解“GET和POST两种基本请求方法的区别有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“GET和POST两

本文主要解释“GET和POST这两种基本请求方法有什么区别”。感兴趣的朋友不妨看看。本文介绍的方法简单、快速、实用。让边肖带你学习“GET和POST这两种基本的请求方式有什么区别”!

Getpost是HTTP请求的两种基本方法,任何接触过WEB开发的人都可以对它们的不同之处讲一二。

最直观的区别是GET在URL中包含参数,POST通过请求体传递参数。

你可能自己写过无数个GET和POST请求,或者看到过很多权威网站总结的它们之间的差异。你很清楚什么时候用什么。

面试中被问到这个问题时,内心充满了自信和喜悦。

GET和POST两种基本请求方法的区别有哪些

你轻松地给出了一个“标准答案”:

浏览器回滚时GET是无害的,POST会再次提交请求。

GET生成的网址可以是Bookmark,但不能是POST。

除非手动设置,否则浏览器会主动缓存GET请求,而POST不会。

GET请求只能进行url编码,而POST支持多种编码方式。

获取请求参数将完全保留在浏览器历史记录中,而开机自检中的参数将不会保留。

在URL中由GET请求发送的参数长度有限,而POST则没有。

对于参数的数据类型,GET只接受ASCII字符,POST没有限制。

它不如GET POST安全,因为参数直接暴露在URL上,所以不能用来传递敏感信息。

获取参数通过网址传递,发布放在请求正文中。

“可惜,这不是我们想要的答案!”

GET和POST两种基本请求方法的区别有哪些

请告诉我真相。

如果我告诉你GET和POST本质上没有区别,你会相信我吗?

让我们脱下GET和POST的外衣,坦诚相待!

GET和POST两种基本请求方法的区别有哪些

getpost是什么?HTTP协议中发送请求的两种方法。

什么是HTTP?HTTP是一种基于TCP/IP的协议,涉及数据如何在万维网中通信。

HTTP的底层是TCP/IP。所以GET和POST的底层也是TCP/IP,也就是说GET/POST是TCP链路。而GET POST也可以做到同样的事情。你必须在GET中添加请求体,在POST中添加url参数,这在技术上是完全可行的。

那么,“标准答案”有什么不同呢?

GET和POST两种基本请求方法的区别有哪些

在我的万维网中,TCP就像一辆汽车。我们使用TCP来传输数据。它非常可靠,而且从来不会发生几件丢失的情况。

但是如果所有在路上行驶的汽车看起来完全一样,那么这个世界看起来就像一团乱麻。运送紧急物品的汽车可能会被前面装满货物的汽车挡住,整个运输系统将会瘫痪。为了避免这种情况,流量规则HTTP诞生了。

HTTP为汽车运输设置了几个服务类别,包括GET、POST、PUT、DELETE等。HTTP规定,在执行GET请求时,汽车要标记为GET(将方法设置为GET),传输的数据要放在车顶(在url中),方便记录。

如果是POST请求,需要在车上贴一个POST标签,把货物放在车厢里。当然,你也可以在GET的时候偷偷把一些货物藏在火车里,但这是非常不光彩的;你也可以在开机自检的时候把一些数据放在车顶,让人觉得很傻。

HTTP只是个行为准则,而TCP才是GET和POST怎么实现的基本。

但是,我们只看到HTTP需要GET和POST参数的传输通道(url或requrest body)。《标准答案》中参数大小的限制从何而来?

269.jpg" alt="GET和POST两种基本请求方法的区别有哪些"> 

在我大万维网世界中,还有另一个重要的角色:运输公司。

不同的浏览器(发起http请求)和服务器(接受http请求)就是不同的运输公司。虽然理论上,你可以在车顶上无限的堆货物(url中无限加参数)。

但是运输公司可不傻,装货和卸货也是有很大成本的,他们会限制单次运输量来控制风险,数据量太大对浏览器和服务器都是很大负担。业

界不成文的规定是,(大多数)浏览器通常都会限制url长度在2K个字节,而(大多数)服务器最多处理64K大小的url。超过的部分,恕不处理。

如果你用GET服务,在request body偷偷藏了数据,不同服务器的处理方式也是不同的,有些服务器会帮你卸货,读出数据,有些服务器直接忽略,所以,虽然GET可以带request body,也不能保证一定能被接收到哦。

好了,现在你知道,GET和POST本质上就是TCP链接,并无差别。但是由于HTTP的规定和浏览器/服务器的限制,导致他们在应用过程中体现出一些不同。

你以为本文就这么结束了?

GET和POST两种基本请求方法的区别有哪些

我们的大BOSS还等着出场呢...

这位BOSS有多神秘?当你试图在网上找“GET和POST的区别”的时候,那些你会看到的搜索结果里,从没有提到他。他究竟是什么呢...

GET和POST还有一个重大区别:

简单的说:GET产生一个TCP数据包;POST产生两个TCP数据包。

长的说:对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据);

而对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)。

也就是说,GET只需要汽车跑一趟就把货送到了,而POST得跑两趟,第一趟,先去和服务器打个招呼“嗨,我等下要送一批货来,你们打开门迎接我”,然后再回头把货送过去。

因为POST需要两步,时间上消耗的要多一点,看起来GET比POST更有效。因此Yahoo团队有推荐用GET替换POST来优化网站性能。

但这是一个坑!跳入需谨慎。为什么?

1. GET与POST都有自己的语义,不能随便混用。

2. 据研究,在网络环境好的情况下,发一次包的时间和发两次包的时间差别基本可以无视。而在网络环境差的情况下,两次包的TCP在验证数据包完整性上,有非常大的优点。

3. 并不是所有浏览器都会在POST中发送两次包,Firefox就只发送一次。

到此,相信大家对“GET和POST两种基本请求方法的区别有哪些”有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/51133.html

(0)

相关推荐

  • 肝脏在左边还是右边,人的肝在左边还是右边`

    技术肝脏在左边还是右边,人的肝在左边还是右边`肝大部分位于右季肋区和腹上区,小部分位于左季肋区。肝的上界与膈穹窿一致,可以用以下3点连线来表示:右锁骨中线上与第五肋间交点;前正中线与剑胸结合的交点;左锁骨中线与第5肋间隙

    生活 2021年11月1日
  • 如何理解mysql中的union limit exists关键字

    技术如何理解mysql中的union limit exists关键字这篇文章给大家介绍如何理解mysql中的union limit exists关键字,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

    攻略 2021年10月21日
  • 四字成语的意思,100个四字成语带解释

    技术四字成语的意思,100个四字成语带解释1.洞若观火四字成语的意思:形容看得清楚明白。
    2.
    对簿公堂:在公堂受审。
    3.
    耳濡目染:形容见得多听得多之后,无形之中受到影响。
    4.
    耳熟能详:听得次数多了,熟悉得能详尽

    生活 2021年10月22日
  • MySQL多版本并发控制机制源码分析

    技术MySQL多版本并发控制机制源码分析本篇内容主要讲解“MySQL多版本并发控制机制源码分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL多版本并发控制机制源码分

    攻略 2021年12月3日
  • 现代云架构中的AWS服务器群和数据库是怎么样的

    技术现代云架构中的AWS服务器群和数据库是怎么样的这篇文章给大家介绍现代云架构中的AWS服务器群和数据库是怎么样的,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。当今云计算技术成了主流的架构和互联网基

    攻略 2021年12月2日
  • geth、web3.js、JSON RPC、truffle之间是什么关系?

    技术geth, web3.js, JSON RPC, truffle之间的关系是什么geth, web3.js, JSON RPC, truffle之间的关系是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希

    攻略 2021年12月14日