This is baffling me. For authentication reasons, I am doing all my HTTP traffic via a custom flash.net.Socket where I create and parse the HTTP request/response myself (using Digest authorization). Everything works fine when I run the generated html/swf files locally, but once I deploy them to the unprotected part of a webserver, the response connection is not dropped by the server for several seconds. I do a GET and receive the 401 immediately...send the same GET request again with the Digest info. I receive the correct response from the server immediately but the socket is not closed for 4 seconds by the server. Has anyone seen this?
I have "Connection: close" in my request but the socket is still kept open. If I access this URI via browser URL bar, the delay is not there. I sniffed the packets and even if I mimic the request String exactly, the socket still hangs for 4 seconds. I suspect I am not closing the socket request, though '\r\n\r\n' seems to be the standard (and it works when it runs locally). Any ideas??? Here is my exact request that hangs though the 200 response is received immediately: GET /myapp/mydata.xml HTTP/1.1\r\n Host: www.mydomain.com\r\n Content-Type: application/x-www-form-urlencoded\r\n Keep-Alive: 1\r\n Connection: close\r\n Cookie: JSESSIONID=8CCB32BBEDB875F082709FE17AA93679;\r\n Authorization: Digest username="user1", realm="MYAPP", nonce="MTIxMzEyODYwOTE0MDo1Njg5NTllYTUxMDYyN2VmNGNmMjViMTA4MDFiMDRjMA==", uri="/myapp/mydata.xml", response="1175bbe7d5840a0d94fb5de3ef16a2a3", qop=auth, nc=1, cnonce="0a4f113b"\r\n\r\n