Technically, it means that the web process handling your request closed the connection without returning any data at all, not even HTTP headers. (It sent a "zero-sized reply.")
Unfortunately, there are a number of completely different reasons why this might happen that need to be investigated individually.
If the error message takes a very long time to be displayed (a minute or more), it may just be that the system got tired of waiting for a script or CGI application to respond. In this case, try to identify what's making your script run so slowly.
If the error message appears instantly, it probably means something is aborting the connection. If you receive this error from a CGI script, it may mean that your script (or its interpreter, if applicable) is core dumping.
To help debug this problem, make sure you have your error log enabled. If it happens immediately and there are no error log entries, it may be a core dump. In that case, find a public URL that does it reproducibly and submit it to us in a secure support request; we can check the system logs to find out if requests for that URL are indeed core dumping. If there are error logs, they will probably help identify the problem.
If you are running into this problem on a PHP site, it may help to add the following lines to your .htaccess file:
php_value pcre.recursion_limit 1000 php_value pcre.backtrack_limit 1000
The specific values to use vary from site to site. Some require settings as low as 10, others may be fine with 100000. You want the largest value that you can set without triggering the zero-sized reply. This is caused by a PHP/PCRE bug and is not under our control.