HTTP Header
One of the most crucial elements of a script is also hard to see: the HTTP header that goes ahead of everything else and tells the browser what is coming. If it isn’t right, nothing happens at the far end.
A CGI script produces headers and a body. Everything up to the first
blank line (strictly speaking, CRLF
CRLF
, but Apache will tolerate
LF
LF
and convert it to the
correct form before sending to the browser) is header, and everything
else is body. The lines of the header are separated by
LF
or CRLF
.
The CGI module (if you are using it) and Apache will send all the necessary headers except the one you need to control. This is normally:
print "Content-Type: text/html\n\n";
If you don’t want to send HTML — but ordinary text — as if to your own screen, use the following:
print "Content-Type: text/plain\n\n";
Notice the second \n
(C and Perl for newline),
which terminates the headers (there can be more than one; each on its
own line), which is always essential to make the HTTP header work. If
you find yourself looking at a blank browser screen, suspect the HTTP
header.
If you want to force your visitor’s browser to go to another URL, include the following line:
print "Location: http://URL\n\n"
CGIs can emit almost any legal HTTP header (note that although “Location” is an HTTP header, using it causes Apache to return a redirect response code as well as the location specified — this is a special case for redirects). A complete list of HTTP headers can be found in section 14 ...
Get Apache: The Definitive Guide, 3rd Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.