Forum Moderators: phranque
* On navigating to the page (both via links and directly by entering URL in browser), it is blank
* Viewing source in browser shows nothing (i.e. blank)
* Response headers show HTTP/0.9 200 OK, content-length of zero, content-type text/plain
When I reload the page, it displays as expected (with HTTP/1.1 response).
This happens randomly on different pages, on average every 10th page visited. It's not an issue with partial rendering: The page either displays absolutely nothing or completely ok. The site's been running for over 6 months without any significant changes, this problem only started recently. Server load is normal. Oh, and Apache access log files do not show these "blank" requests.
Running Apache 2.0.54 on Debian, PHP 4.4.11 via mod_php
Any ideas?
First, are you on a name-based virtual server, or an IP-based shared server or a dedicated box?
(HTTP/0.9 and true HTTP/1.0 clients cannot be used to access name-based virtual servers, because they do not send a Host request header; therefore, a name-based server cannot determine which site's pages to serve.)
Did you do a view-page-source on the 'blank' page? If so, what is there? (I would not be surprised to see a 'default' page header from your server, but no content.)
Jim
The site in question is on a name-based virtual server.
When I view the source, there nothing. Not a single tag.
Again, this happens very randomly, and on reloading the page displays correctly. The next few pages will all be fine and then suddenly another page will show this problem. And so on. What I can't figure out is what causes this as it's not a permanent behaviour.
Apache not showing your accesses suggests that your browser isn't reaching your server in the first place.
Have you tested your site using a number of different browsers? If you haven't, try checking on things for awhile using Firefox, Mozilla, Netscape, Explorer, etc., and see if your accesses appear in your access_log -- and the pages appear in your browser(s).
First, your ISP may have added a (very old) caching proxy between their customers (you) and the Web. In this case, the request is passing through an HTTP/0.9 proxy. And as stated above, no access to name-based virtual hosts is possible using 'true' HTTP/1.0 or below.
I keep mentioning 'true' HTTP/1.0 because there is a 'extended' HTTP/1.0 which does support sending a hostname with the request, but it doesn't support all HTTP/1.1 features. However, HTTP/0.9 absolutely will not be able to access a name-based virtual server.
So the questions is, how does your request come to use HTTP/0.9? And the only reasonable way it might happen without your knowledge is if your ISP inserted a caching proxy into their network. Ask them.
The other possibility is less pleasant, and that is that perhaps you've got a keylogger or ad-ware on your machine that is interfering with your WinSock LSPs. I'd advise a full sweep of your system with every free tool you can find. LavaSoft's Ad-Aware and Safer Networking's SpyBot Search & Destroy to start with (Especially see SpyBot's built-in LSP report tool).
Jim