我只是网络编程的新手,只是好奇地知道abt Get和Post方法将数据从一个页面发送到另一个页面.
据说Get方法比Post快,但我不知道为什么我能找到的一个原因是Get只能用255个字符呢?还有其他原因,请有人解释一下吗?
速度并不高.有很多情况下POST更适用.例如,搜索引擎将索引GET URL,浏览器可以将它们加入书签并使它们显示在历史记录中.因此,如果您执行基于GET请求修改数据库等操作,则可能会有害,因为某些机器人也可能会遍历该URL.
另一种情况可能是安全问题.如果您使用GET发布凭据,它将列在浏览器历史记录和服务器日志文件中.
关于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/
我认为这是作者正在寻找的答案.
关于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)以获取更多详细信息.
查看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时不应考虑性能.
您应该将GET视为"一个可以去的地方",将POST视为"做某事".例如,应使用GET提交搜索表单,因为搜索结果页面是"地点",用户希望将其加入书签或在以后从其历史记录中检索.如果您使用POST提交表单,则用户只能通过再次提交表单来重新创建页面.另一方面,如果您要执行诸如单击删除按钮之类的操作,则不希望使用GET提交此操作,因为只要用户返回到URL,操作就会重复.
从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的两倍.当然并不总是,但对于少量数据,我总是得到相同的结果.