首页 > 编程知识 正文

httpget使用,http referer

时间:2023-05-05 16:38:03 阅读:132543 作者:3398

GET和POST是HTTP请求的两个基本方法,要说它们的区别,接触过WEB开发的人可以说是一二。 最直观的区别是,GET将参数包含在URL中,POST通过请求主体传递参数。

自己写无数的GET和POST请求,看看他们在已经很多权威网站上总结出来的差异,你可能很清楚什么时候该用什么。

现代年轻人在面试中被问到这个问题,你的心里充满了自信和喜悦。

你轻而易举地给出了“标准答案”:

GET在浏览器返回时无害,开机自检再次提出请求。

GET生成的URL地址将被Bookmark,但无法开机自检。

GET请求由浏览器主动缓存,但除非手动设置开机自检。

GET请求只能进行url编码,但开机自检支持多种编码方式。

GET请求参数完全保留在浏览器历史记录中,不保留开机自检参数。

GET请求通过URL传递的参数有长度限制,开机自检中有吗?

对于参数的数据类型,GET只接受ASCII字符,并且开机自检没有限制。

GET不比开机自检安全。 参数直接暴露在URL中,因此不能用于传递敏感信息。

GET参数通过URL传递,POST放置在请求主体中。

(本标准回答见w3schools )

“很遗憾,这不是我们想要的回答! ”

请告诉我真相。

如果我告诉你GET和POST本质上没有区分你的信呢?

脱下GET和POST的外套,坦诚相见吧!

获取和开机自检是什么? HTTP协议中的两种请求发送方法。

什么是HTTP? HTTP是关于数据如何在网络上通信的基于TCP/IP的协议。

HTTP的基础是TCP/IP。 因此,GET和POST的基础也是TCP/IP,即GET/POST是TCP链路。 GET和开机自检是一样的。 在技术上,将请求主体添加到GET或在开机自检中具有url参数是完全通用的。

那么,“标准答案”的区别是什么?

在我的全球网络世界里,TCP就像一辆汽车,我们用TCP传输数据。 它很可靠,绝对不会发生零件丢失。 但是,如果路上跑的都是一模一样的车,世界看起来会很混乱。 赶集的车可能会被前面满载货物的车拦住,整个交通系统瘫痪。 为了避免这一点,交通规则HTTP应运而生。 HTTP为汽车运输设定了几个服务类别,有GET、POST、PUT、DELETE等。 HTTP要求在执行GET请求时,在汽车上贴上GET的标签(将method设定为GET ),以便于将转发的数据放置在车顶上(记录在url上)。 要求开机自检时,请在车上贴上开机自检的标签,将行李放入车里。 当然,你可以在GET期间偷偷把行李藏在车里,这很不光彩; 开机自检的时候也可以把数据放在车顶上,感觉很傻。 HTP只是一个行为规范,TCP才是GET和POST如何实现的根本。

但是,我只是看到HTTP向GET和POST参数的传输通道(url还是requrest body )提出了请求。 关于“标准答案”参数大小的限制来自哪里?

在我的万维网世界里,还有另一个重要的作用。 是运输公司。 不同的浏览器(启动http请求)和服务器(接受http请求)是不同的运输公司。 理论上,您可以在屋顶上无限地装载货物(在url中无限地添加参数)。 但是,运输公司并不是笨蛋。 装载和装卸也需要很大的成本。 限制一次运输量以控制风险。 数据量太大会给浏览器和服务器带来很大的负担。 行业不成文规定,“大多数”浏览器通常将url的长度限制为2K字节,而“大多数”服务器最多处理64K大小的url。 超出的部分可能不处理。 如果使用的是GET服务,并且在request body中偷偷隐藏了数据,则处理方法因服务器而异。 根据服务器的不同,可以帮我们卸货,读取数据。 根据服务器的不同,也可以直接忽略。 所以,即使GET带来了请求主体,也不能保证一定能接收到哦。

那么,现在你知道,GET和POST本质上是TCP链接,没有差别。 但是,由于HTTP的规定和浏览器/服务器的限制,在APP应用程序方面存在一些差异。

你认为这篇文章到此结束吗?

我们多情的奇迹还在等待登场

呢。。。

 

这位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的区别”的时候,你的内心是不是这样的?

(本文原创,转载请注明转自微信公众号WebTechGarden)

(如文中有纰漏,请不吝更正)

 

转载于:https://www.cnblogs.com/chinajava/p/5900018.html

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。