当前位置:  开发笔记 > 编程语言 > 正文

为什么GET方法比HTTP中的POST更快?

如何解决《为什么GET方法比HTTP中的POST更快?》经验,为你挑选了6个好方法。

我只是网络编程的新手,只是好奇地知道abt Get和Post方法将数据从一个页面发送到另一个页面.

据说Get方法比Post快,但我不知道为什么我能找到的一个原因是Get只能用255个字符呢?还有其他原因,请有人解释一下吗?



1> Mehrdad Afsh..:

速度并不高.有很多情况下POST更适用.例如,搜索引擎将索引GET URL,浏览器可以将它们加入书签并使它们显示在历史记录中.因此,如果您执行基于GET请求修改数据库等操作,则可能会有害,因为某些机器人也可能会遍历该URL.

另一种情况可能是安全问题.如果您使用GET发布凭据,它将列在浏览器历史记录和服务器日志文件中.



2> Kyle Nunery..:

关于http post的另一件事是当使用http头时它可以是2个调用Expect: 100-Continue.第一个浏览器使用"HTTP 100 Continue"发送http post标头和服务器回复.当浏览器收到此消息时,它会发送实际的正文.

http://omaralzabir.com/atlas_2__http_post_is_slower_and_it_s_default_in_atlas/

我认为这是作者正在寻找的答案.



3> Kevin Jones..:

关于HTTP中的GET和POST有几种误解.有一个主要的区别,GET必须是幂等的,而POST不一定是.这意味着GET不会产生任何副作用,即我可以根据需要多次向Web应用程序发送GET(想想多次按Ctrl + R或F5)并且请求将是"安全的"

我不能用POST做,POST可能会改变服务器上的数据.例如,如果我在网上订购一个项目,那么该项目应该添加POST,因为服务器上的状态已更改,我添加的项目数量增加了1.如果我使用POST执行此操作并点击刷新在浏览器中,浏览器警告我,如果我使用GET进行操作,浏览器将只发送请求.

在服务器上,GET vs POST是纯粹的约定,即由我作为开发人员来确保我在服务器上编写POST以重复调用.有很多方法可以做到这一点但这是另一个问题.

要实际回答问题,如果我使用GET或POST执行相同的任务,则没有性能差异.

您可以阅读RFC(http://www.w3.org/Protocols/rfc2616/rfc2616.html)以获取更多详细信息.



4> Robert..:

查看http协议,POST或GET应该同样容易和快速解析.我认为,没有性能差异.

看一下原始的HTTP标头

http GET

GET /index.html?userid=joe&password=guessme HTTP/1.1
Host: www.mysite.com
User-Agent: Mozilla/4.0

http POST

POST /login.jsp HTTP/1.1
Host: www.mysite.com
User-Agent: Mozilla/4.0
Content-Length: 27
Content-Type: application/x-www-form-urlencoded

userid=joe&password=guessme

从我的角度来看,在比较GET和POST时不应考虑性能.


然后,POST比较少的数据包.在您的示例中显示.始终是数据包,如果更少则更快处理.即使在单个字节中,更大的数据包至少在memor/cpu中的某个地方是额外的实现.所以比较GET或POST,我会说根据数据包大小GET会更快.

5> Tim Booker..:

您应该将GET视为"一个可以去的地方",将POST视为"做某事".例如,应使用GET提交搜索表单,因为搜索结果页面是"地点",用户希望将其加入书签或在以后从其历史记录中检索.如果您使用POST提交表单,则用户只能通过再次提交表单来重新创建页面.另一方面,如果您要执行诸如单击删除按钮之类的操作,则不希望使用GET提交此操作,因为只要用户返回到URL,操作就会重复.



6> Tom..:

从2016年开始我的几美分.

我正在创建一个简单的消息系统.起初我使用POST来接收新警报.在jQuery我有:

$.post('/a/alerts', 'stamp=' + STAMP, function(result)
{
});

在PHP中我使用$ _POST ['stamp'].即使从localhost我也得到90-100毫秒的每个请求.我只是改变了:

$.get('/a/alerts?stamp=' + STAMP, function(result)
{
});

并在PHP中切换到$ _GET ['stamp'].所以变化不到1分钟.现在每个请求需要30-40毫秒.

所以GET的速度是POST的两倍.当然并不总是,但对于少量数据,我总是得到相同的结果.

推荐阅读
雨天是最美
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有