我正在使用Android应用程序中的HTTP /POST请求,它做得很好(请求和响应),但是当我提到wireshark日志时,有FIN,ACK即将到来,这是否意味着我的连接即将关闭?我的要求是使连接持久。所以我的问题是为什么FIN/ACK会来,如果它要关闭连接,那么我要离开哪里?
WireShark日志和请求/响应内容如下:
关于GET/POST:
请求:
GET /api/application/addparam HTTP/1.1
Content-Type: application/json; charset=utf-8
User-Agent: okhttp/2.5.0
Authorization: Basic QURJOg==
Host: 10.92.33.190:8080
Connection: Keep-Alive响应:
HTTP/1.1 200 OK
X-Powered-By: Express
Content-Type: application/json; charset=utf-8
Accept-Language: en-us
Accept-Encoding: gzip, deflate
Content-Length: 558
Date: Fri, 18 May 2018 13:11:46 GMT
Connection: keep-alive
{
//JSON Here
}WireShark日志:
692 28.537182   10.92.33.134    10.92.33.190    HTTP    329 POST /api/application/AddParam HTTP/1.1  (application/json)
693 28.541340   10.92.33.190    10.92.33.134    HTTP    345 HTTP/1.1 200 OK  (application/json)
704 29.194478   10.92.33.190    10.92.33.134    TCP 66  8080 → 47074 [FIN, ACK] Seq=289 Ack=334 Win=66048 Len=0 TSval=285850628 TSecr=19045098
709 29.393729   10.92.33.134    10.92.33.190    TCP 66  47074 → 8080 [ACK] Seq=334 Ack=290 Win=88832 Len=0 TSval=19045619 TSecr=285850628   
852 33.544459   10.92.33.190    10.92.33.134    TCP 66  8080 → 45502 [FIN, ACK] Seq=280 Ack=264 Win=66304 Len=0 TSval=285854978 TSecr=19045534
855 33.583848   10.92.33.134    10.92.33.190    TCP 66  45502 → 8080 [ACK] Seq=264 Ack=281 Win=88832 Len=0 TSval=19046038 TSecr=285854978发布于 2018-05-20 15:17:49
基于数据包捕获,连接关闭由服务器在发送响应后不久启动。如果服务器在同一个TCP连接中为下一个HTTP请求保持连接打开的时间和时间,则完全取决于服务器端的,并且客户机无法对此进行调优。客户机所能做的就是很好地要求服务器为另一个请求保持连接打开,这是通过使用HTTP/1.1和发送(冗余的) Connection: keep-alive来实现的。客户端无法执行持久连接,也无法执行最短时间(),服务器应该等待下一个请求多长时间。
https://stackoverflow.com/questions/50435646
复制相似问题