-
Notifications
You must be signed in to change notification settings - Fork 229
Description
When server returns response "204 No Content" and does not return any body, ARC waits 60 seconds for the body (message "Headers received" is displayed), then timeouts and displays the empty response.
Expected outcome
After receiving 204, no body is expected and result should be displayed immediately.
e.g. (204) No Content, Time: 300ms, Size: 0 Bytes
(Similar result is displayed in Postman immediately; Postman actually includes size of headers in the "Size:" field. )
Chrome and Firefox display empty tab immediately after nagigating to this URL. Not tested in other clients.
Actual outcome
Waiting 60 seconds, then result. Waiting time is included in result time. This is very confusing when using ARC to debug API and speed of its response (to workaround possible delays in other clients).
e.g. (204) No Content, Time: 60300ms, Size: 0 Bytes
(This result is displayed in ARC after 1 minute)
Versions
App: 17.0.9
Platform: win32
Electron: 17.1.0
Chrome: 98.0.4758.102
V8: 9.8.177.11-electron.0
Node: 16.13.0
Steps to reproduce
- Prepare server script that just returns 204 header e.g.
<?php http_response_code(204); die();
. Prepared demo page: http://demo.nothrem.cz/empty.php - Send GET request to the server using ARC
- Wait for response
Workaround:
Including header Connection: Close
will fix this issue since the server will include the same header in response and will end the connection.
Note 1:
HTTP allows servers to include body in 204 response. ARC may wait for any potencial body, but it should be obvious, that request is considered finished as soon as the 204 header is received
Note 2:
Strange is that ARC is waiting 60 seconds even when server returns header e.g. Keep-Alive: timeout=30
which should instruct the client to close the connection after 30 seconds. (And default request timeout set in ARC is 90 seconds so it also does not match this case.)