--#--
Why, I was referred by you!
--#--
Look! There were three GETS!
GET /home/httpd/html/index.html HTTP/1.0
...
GET /home/httpd/html/apache_pb.gif HTTP/1.0
...
GET /home/httpd/html/poweredby.gif HTTP/1.0
There were two GIF images embedded in the file (which
happens to be Apache's "It Worked!" file to demonstrate that
the httpd server is alive and well). The browser found both
of them in the HTML and went right back to Kevin and
asked for them. And look at this: Both GIF requests have
a Referer line.
GET /home/httpd/html/apache_pb.gif HTTP/1.0
Referer: http://localhost:9000/home/httpd/html/index.html
...
GET /home/httpd/html/poweredby.gif HTTP/1.0
Referer: http://localhost:9000/home/httpd/html/index.html
They were referred by the page that contained their
references. No wonder you site is its own best referer. But
what about the initial request, for /home/httpd/html/index.html?
GET /home/httpd/html/index.html HTTP/1.0
Connection: Keep-Alive
...
...
...
When a URL is entered from the keyboard, no browser I know of
sends any Referer header. In fact, both RFC 1945 and RFC 2616
are explicit in saying that the browser "must not" send a Referer
line when making a request originating from the keyboard. All
browsers I know of also do not send a Referer header when
traveling from a browser's built-in "Bookmarks" or "Favorites" list.
What shows up in the server's access log when there is no Referer header?
Simply a dash: "-".
Remember this when you're massaging your log files to see where people
are coming from. Most of what you'll see are GIF requests. And what you
don't see is all the people who've memorized your URL or bookmarked it.
Kevin, in his final code format, is right
here.