为什么在HTTP POST比GET方法快?(Why is the GET method faster

2019-06-17 21:20发布

我是新来的网络编程和只是想知道大概从一个页面发送到另一个数据的GET和POST方法。

据说,该GET方法比POST速度快,但我不知道为什么。 其中一个原因我能找到的是GET只能取255个字符? 是否有其他原因? 请人向我解释。

Answer 1:

这不是太多关于速度。 有很多的情况下,其中POST更为适用。 例如,搜索引擎将索引GET URL和浏览器可以书签他们,让他们在历史上出现。 其结果是,如果你把喜欢修改基于GET请求一个数据库的操作,这可能是有害的一些机器人还可以遍历URL。

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



Answer 2:

有关HTTP POST的另一件事是它可以是2次呼叫时的HTTP头Expect: 100-Continue使用。 首先浏览器发送的HTTP POST头和服务器回复与“HTTP 100继续”。 当浏览器接收到这一点,它发出的实际身体。

http://omaralzabir.com/atlas_2__http_post_is_slower_and_it_s_default_in_atlas/

我觉得这是笔者一直在寻找答案。



Answer 3:

有关于HTTP GET和POST几个误解。 有一个主要的区别,而POST不必是GET必须幂等。 这意味着是获取引起任何副作用,即我可以一个GET发送到Web应用程序很多次,因为我想(想想按下Ctrl + R或F5多次),并请求将是“安全”

我不能做到这一点与POST,后可能会改变服务器上的数据。 例如,如果我在网络上订购项目的项目应与后添加,因为状态是在服务器上的改变,我已经添加如果我这样做了POST增加了1项数和命中刷新在浏览器中浏览器的警告我,如果我有让浏览器做只会发送请求。

在服务器GET VS POST是纯粹的约定,也就是说,它是对我作为一个开发人员,以确保我的服务器上的代码的POST 重复呼叫。 有这样做的各种方式,但是那是另外一个问题。

要真正回答这个问题,如果我使用GET或POST执行相同的任务,不存在性能差异。

你可以阅读RFC( http://www.w3.org/Protocols/rfc2616/rfc2616.html有详细介绍)。



Answer 4:

查看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时。



Answer 5:

你应该想到GET为“一个地方去”,并出任“做一些事情”。 例如,搜索表单应该使用GET,因为搜索结果页是一个“地方”和用户会想书签,或在日后从他们的历史检索提交。 如果您在使用POST提交表单的用户只能通过再次提交表单重新创建页面。 在另一方面,如果你要执行的操作,如点击删除按钮,你不会想用GET提交这一点,因为每当用户返回到URL的行动将被重复。



Answer 6:

只是我自2016年几美分。

我创建一个简单的信息系统。 起初,我用POST接收新的警报。 jQuery中我有:

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

而在PHP我用$ _ POST [“戳”]。 即使从本地主机我得到90-100毫秒 ,这样每个请求。 我只是改变:

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

在PHP切换到$ _GET [ '邮票']。 所以,略小于1的变化分钟。 现在,每个请求将需要30-40毫秒

所以得到可以快一倍POST。 当然,并非总是但是对于少量的数据,我得到相同的结果,所有的时间。



Answer 7:

GET 稍快是因为这些值在不同的是POST的值在请求中发送,在该内容类型指定格式的标头中发送。

一般内容类型是application / X WWW的窗体-urlencoded,所以请求体使用相同的格式作为查询字符串:

参数=值也=另一当在形式使用文件上传,可以使用多部分/ form-data编码代替,其具有不同的格式。 它更复杂。



Answer 8:

我同意其他的答案,但它没有提到GET而POST请求不会被缓存的请求可以被缓存。 我认为这是对正在执行更快一些GET请求的主要原因。 (OF-粗,这意味着有时无请求实际发送。因此,它实际上并不是GET请求是快,但浏览器的缓存。)

HTTP方法:GET与POST: http://www.w3schools.com/tags/ref_httpmethods.asp



Answer 9:

POST将增加你的头的更多,只是使它更大,但差别应该是真的可以忽略不计,所以我不明白为什么这应该是一个问题。

只要记住,说话HTTP的正确方法是使用GET仅用于数据操作和POST。 你没有,但你也不想有一个情况下谷歌机器人可以,例如,插入,删除或操纵也仅仅意味着一个人简单地处理数据,因为它是继它找到的链接。



文章来源: Why is the GET method faster than POST in HTTP?
标签: http post get