The server picked up, said nothing, and hung up. The connection succeeded, then closed with zero bytes of response. Browsers cannot render nothing, so they report this. On real websites the cause is usually a backend process crashing on that specific request, or a reverse proxy that could not get an answer from the application behind it.
An empty response means your front door answered and your application did not. Check in order: the application process is alive (not crash-looping or OOM-killed), the reverse proxy's upstream points at the right port, the proxy error log (it records exactly this as upstream closing or no response), and whether the failing URL pattern correlates with a code path, a large response, or a slow query hitting a proxy timeout.
An empty response that follows one account, one file upload, or one search term is a triggered crash: specific input is killing the handler. It will not heal with browser changes; it heals when the operator fixes the code path or the data that triggers it.
What is the difference between ERR_EMPTY_RESPONSE and ERR_CONNECTION_CLOSED? Closed can happen after part of the response arrived; the connection simply ended early. Empty response means zero bytes came back at all. Empty points more strongly at a backend that died before responding or a proxy that got nothing from upstream.
Can my antivirus cause an empty response? Yes, indirectly: web shields that intercept connections can close ones they cannot process, and the browser then reports an empty response. The test is the same as always: pause the shield briefly and compare.