为什么GET方法比POST更快?

我只是新的networking编程,只是想知道abt获取和发布数据从一个页面到另一个页面的方法。

据说Get方法比Post方法快,但是我不知道为什么我能find的一个原因是Get只带了255个字符? 有什么其他的原因,请有人解释我?

速度并不多。 有很多情况下POST是更适用的。 例如,search引擎将索引GET URL,浏览器可以将它们join书签,并使其显示在历史logging中。 因此,如果您根据GET请求执行修改数据库的操作,则可能会有害,因为某些漫游器也可能遍历URL。

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

关于http post的另一件事是,当使用http头Expect: 100-Continue时,它可以是2次调用。 第一个浏览器发送http post标题和服务器回复“HTTP 100 Continue”。 当浏览器收到这个,它发送实际的身体。

http://omaralzabir.com/atlas_2__http_post_is_slower_and_it_s_default_in_atlas/

我认为这是作者寻找的答案。

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

我不能这样做POST,POST可能会更改服务器上的数据。 例如,如果我在Web上订购一个项目,应该添加一个POST项目,因为状态在服务器上发生了变化,我添加的项目数量增加了1个。如果我使用POST做了这个操作,在浏览器中浏览器警告我,如果我用GET来做,浏览器将只发送请求。

在服务器上,GET和POST是纯粹的约定,也就是说,作为一个开发人员来确保我在服务器上对POST进行编码,以避免重复调用。 有很多方法可以做到这一点,但这是另一个问题。

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

您可以阅读RFC( http://www.w3.org/Protocols/rfc2616/rfc2616.html )了解更多详情。

看看http协议,POST或者GET应该同样容易和快速的parsing。 我认为,没有性能差异。

看看原始的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 

从我的angular度来看,比较GET和POST时不应该考虑性能。

你应该把GET看作“一个去处”,把POST当做“做某事”。 例如,search表单应该使用GET进行提交,因为search结果页面是“地点”,并且用户希望将其join书签或在稍后的date从其历史中检索它。 如果您使用POST提交表单,则用户只能通过再次提交表单来重新创build页面。 另一方面,如果要执行诸如单击删除button之类的操作,则不希望使用GET提交此操作,因为只要用户返回到URL,操作就会重复。

只是我2016年的几分钱。

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

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

而在PHP中,我使用$ _POST ['stamp']。 即使从本地主机,我得到这样的每个请求90-100毫秒 。 我只是改变了:

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

并在PHP切换到$ _GET ['邮票']。 所以稍微不到1分钟的变化。 现在每个请求需要30-40毫秒

所以GET可以是POST的两倍 。 当然并不总是如此,但是对于less量的数据,我总是得到相同的结果。

GET 稍微快一些,因为这些值是在中发送的,而不像POST在请求正文中发送的那样,以内容types指定的格式发送。

通常内容types是application / x-www-form-urlencoded,所以请求主体使用与查询string相同的格式:

parameter = value&also = another当您在表单中使用file upload时,可以使用multipart / form-data编码,而不是格式。 这更复杂。

我同意其他答案,但没有提到GET请求可以被caching,而POST请求从不被caching。 我认为这是一些GET请求更快执行的主要原因。 (粗略的,这意味着有时候实际上没有请求被发送,因此实际上并不是GET请求更快,而是浏览器的caching)。

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

POST会增加您的标题,只是使其更大,但差异应该是微不足道的,所以我不明白为什么这应该是一个问题。

请记住,说出HTTP的正确方法是仅使用GET来进行操作,并将POST用于数据。 你不需要,但是你也不希望Google机器人可以插入,删除或者操纵那些仅仅是为了人类而处理的数据,因为它只是跟随它发现的链接。