From the Experts Round Table, there's this extended reference with an overview of HTTP headers (format and what raw HTTP connections look like) and what that means for PHP's header() function.
Many beginning and intermediate PHP programmers seem to think the header() function is some kind of strange voodoo. They work from examples and code snippets and are able to get things done with it, but they don't know quite how it works. That was certainly the way I regarded header() the first time I saw it.
In reality, it's quite simple. In this tutorial, I'll explain a little about how HTTP headers work, how they relate to PHP, and a little about their meta tag equivalents.
They go on to talk about what the HTTP protocol/headers are and how to "see the whole conversation" by telneting into a server on port 80. They explain what role the headers play in this. The rest of the tutorial goes into detail on PHP's header function. They mention redirection, refreshing the page after a few seconds, preventing page caching, and sending along the Content-type header to correctly identify the contents of your page (including things like dynamic images).
They also include (too) brief section covering the fact that some of the $_SERVER variables influenced by the HTTP headers should not be trusted. They specifically mention HTTP_REFERER.