Http POST vs GET方法-在网络级别,哪种方法受延迟的影响更大?
HTTP GET和POST请求的网络通信有什么区别吗 使用GET,我知道整个请求是一次性发送的。 对于POST,我认为发送了初始请求,然后发送了第二个请求,该请求发送所有参数Http POST vs GET方法-在网络级别,哪种方法受延迟的影响更大?,http,post,networking,get,latency,Http,Post,Networking,Get,Latency,HTTP GET和POST请求的网络通信有什么区别吗 使用GET,我知道整个请求是一次性发送的。 对于POST,我认为发送了初始请求,然后发送了第二个请求,该请求发送所有参数 例如,假设服务器和客户端之间的延迟为500毫秒。GET和POST调用的总时间是多少?对于给定的数据段,它们可能非常接近。下面是GET请求的外观: GET /test?x=5&y=3&z=4 HTTP/1.1 Header1: value Header2: value ... 以下是这篇文章的内容: POS
例如,假设服务器和客户端之间的延迟为500毫秒。GET和POST调用的总时间是多少?对于给定的数据段,它们可能非常接近。下面是GET请求的外观:
GET /test?x=5&y=3&z=4 HTTP/1.1
Header1: value
Header2: value
...
以下是这篇文章的内容:
POST /test HTTP/1.1
Header1: value
Header2: value
...
x=5&y=3&z=4
所以数据量是一样的。真正的问题是,您是否希望用户能够添加书签并返回到URL,并在将来再次看到相同的数据。GET用于此目的,POST用于请求在服务器上更改数据,或出于安全原因(例如,不要使用GET提交密码)。这一切都是关于客户端的实现。在http规范中没有这样的条件。
发送时间取决于数据量。如果您使用POST only替换GET,则无法区分。这些数据包都是TCP数据包,它们携带HTTP协议,请求方法不会更改网络层的响应时间 它将根据请求的大小根据请求的不同而变化,但这不是由请求类型决定的 你可以用post发送比get发送更多的数据,但这并不意味着他们的响应速度更快,这是另一个问题 HTTP服务器处理和返回结果的速度是在您正在使用的服务器上的,而且可能微不足道,不值得一提 从服务器返回结果的速度取决于HTTP服务器正在处理的资源,如果它调用一个需要时间的PHP文件,那么它将需要时间 数据包之间没有明显的区别。。。这是通过SSL的GET请求:
00907f8252f7001e4fe86a93080045000028
0bb2400080067380ac100167adc22064c51a
01bb66ccad148448d84850103f05bde90000
00907f8252f7001e4fe86a93080045000028
0c0640008006732cac100167adc22064c511
01bbe538c0df8621dc6150104042248c0000
这是通过SSL的POST请求:
00907f8252f7001e4fe86a93080045000028
0bb2400080067380ac100167adc22064c51a
01bb66ccad148448d84850103f05bde90000
00907f8252f7001e4fe86a93080045000028
0c0640008006732cac100167adc22064c511
01bbe538c0df8621dc6150104042248c0000
TCP数据包中的字符串是“GET”还是“POST”并没有太多涉及,网络看着它,说“哦,你是TCP,嗯?好吧,那你就走吧。”它不在乎
正常网络流量之外的任何延迟都完全是由于服务器级别的处理,或者它所处理的代码造成的。乔纳森的回答非常明确。但让我进一步谈谈请求彼此不同的地方 所有通过互联网的信息都是通过小包裹传递的。假设每个包的最大容量为1KB(这不是正确的值,只是为了澄清机制,如果您想了解限制的真实值,请在RFC上搜索) 好的,我们有一个GET和一个POST请求。这些软件包与Jonathan举例说明的非常相似。在这种情况下,使用少量数据,所有内容都可以封装在1KB包中,因此网络性能没有差异 但是,如果需要大量的请求呢?有几个人知道,但GET请求的最大长度可能因服务器而异。试着问问任何一个网站.com/foo/a{200次a}。它将返回无效/错误的请求,而不仅仅是404未找到 这里是POST发生的地方。如果数据量大于某个值,POST允许服务器继续列出该请求并解析值 此外,在行为上还有另一个潜在的差异,这是以前没有提到的。POST数据在发送到服务器之前在浏览器中解析为当前文档编码。POST请求由于日志记录较少而具有优势 给定相同的信息量(POST消息不超过GET),POST在服务器端的速度在技术上应该更快(从纳秒到皮秒):
- 通常,像Apache这样的web服务器会将请求记录在某个地方
- POST请求不记录查询字符串,因此写处理更少。服务器IOPS可能会无意中影响延迟
如果没有这个,给定相同的数据包,它们实际上是等价的。
GET将数据存储在查询字符串中,POST将信息存储在消息正文中。
服务器以不同的方式处理这两者
我在Wireshar监控时测试了这个