180 Degree Panorama from Tavel Memorial Copyright By Fritz Wittwer

How to Diagnose Problems

There are various resosn why a browser does not display a web page. There are various systems involved to display a web page in a browser. The intention of this page is to help you to nail down where the problem lies so you are abel to fix it or to ask the correct person to fix it.

In case a proxy server is involved, there are a few more steps, see below

    Steps to get a web page
  • 1) Translate the domainame into an IP adress
    An error in this phase usualy results in an errormessage like 'host not found', 'DNS error' or dependign on your browser settings, you will be redirected to a search page.
  • 2) Connect to the web server
    Connection problems are usualy reported as 'connection refused' or 'connection timeout
  • 3) request the page
    Here you get the '404 page not found' errors, Access Denied errors, or sometimes 500 internal server errors.
  • 4) render the page
    The page may contain Invalid or not by your Browser supported Java Script and HTML Code

Now lets look at the different phases of a request

1) Translate domain name to IP adress
In case of this page, the client system translates www.redriver.ch to its IP adress
    Possible Errors
  • Mistyped Domain Name
    You just simply mistyped the name, thus the DNS resolver ca not find an adress
    > enter the correct domainname
  • The DNS has not yet configured
    If this is a domain which goes on-line, then chances are good the DNS has not yet been configured.
    >use nslookup to verify it, ask the onwer of the domain to fix it
  • The DNS is not correct configured
    There are sometimes errors in the DNS configurations, mostly after the owner of the site has changed its ISP
    >use nslookup to verify it, ask the onwer of the domain to fix it
2) Open a TCP connection on port 80 to the server
Establishes a communication path to the server or more technical, open a TCP connection on port 80 whit this server.
    Possible Problems
  • Firewall
    There is a firewall which blocks either access to port 80, or to this server. In this case you get 'can not open connection' or 'connection timeout' errors.
    > depending on the policy of your site, you must either use a proxy which bypasses the firewall, or ask the firewall adminstrator to open this port for you.
  • Server not responding
    The server is not accepting connections on port 80 for some reasons, e.g. for maintenace, because of a hardware or network failure. In this case you get usualy 'connection timeout' or 'server not responding' errors.
    > ask the webmaster of the server to fix this problem.
3) Send the request to the server
This is the part after the domain name, for this page /tech/request-debug.html.A request can contain a lot more information, e.g. what language the client prefers, the type and name of the client application (Browsers), what document types the client accepts and so on. See the echo request page (opens in a new window) to learn what your client is telling the server. All content on the lines starting with HTTP_ is sent from your browser
A request should contain at least the Request path and the host, but often just a simple request GET / returns the home page.
    Possible Problems
  • 404 error
    The resource specified in the path does not exists, this happens often because a document has been deleted or if someone makes a mistake while typing in an URL. or
  • Host header Missing
    If the server uses Name Based Virtual Hosting, (more than one domain name under the same IP adress), then the server needs the HOST header in order to know to which virtual host it must connect. There are even some applications servers which require this header even if they don't use name based virtual hosting
  • Server relies on other header
    Some Server rely on other headers, often HTTP_USER_AGENT and HTTP_REFERRER. Some proxies filter out this information as it might violate the privacy of the user.

We often had problems with people accessing some web sites because the are using a strange proxy or so. I have thus written a small CGIwhichh returns the details of a Request as it is seen by the web severer. Get the request header from http://www.redriver.ch/cgi/echo (opens in a new window)

Filler Filler