Hi Robert
Thanks for answering.
If I restart the web server and use the HEAD command as the very first
request, I get:
%> HEAD http://iahc-linux13.iah.bbsrc.ac.uk/Gallus_gallus/mapview?chr=1
500 Internal Server Error
Connection: close
Date: Wed, 18 Apr 2007 08:56:57 GMT
Server: Apache
Content-Type: text/plain
Client-Date: Wed, 18 Apr 2007 08:56:58 GMT
Client-Response-Num: 1
(however the same address displays in IE without HTML headers and with
special characters).
My log file shows:
[Wed Apr 18 09:56:55 2007] [notice] Apache/2.2.4 (Unix) mod_perl/2.0.3
Perl/v5.8.0 configured -- resuming normal operations
[Wed Apr 18 09:56:57 2007] [error] [client 149.155.40.20] malformed
header from script. Bad header=<head>: mapview
[Wed Apr 18 09:56:57 2007] [warn] /perl/Gallus_gallus/mapview did not
send an HTTP header
[Wed Apr 18 09:57:45 2007] [error] [client 149.155.42.148] malformed
header from script. Bad header=<head>: mapview
[Wed Apr 18 09:57:45 2007] [warn] /perl/Gallus_gallus/mapview did not
send an HTTP header
I must confess, I don't really know what the Apache::Registry and
ModPerl::Registry modules actually do, but the code in question is
handled by ModPerl::Registry. From httpd.conf (mostly a perl script!):
$Location{"/perl"}={
SetHandler => 'perl-script',
PerlHandler => 'ModPerl::Registry',
# Options => '+ExecCGI',
allow => 'from all',
# PerlSendHeader => 'On',
PerlOptions => '+ParseHeaders',
};
Now, in terms of grepping "Content-type", or indeed "content_type" (to
check for calls to apache modules to set the header) there isn't really
anything obvious... A bunch of test scripts, some user web pages etc,
but nothing that seems to specifically print out these headers...
Thanks
Mick
-----Original Message-----
From: Robert Landrum [mailto:suppressed
Sent: 16 April 2007 17:45
To: michael watson (IAH-C)
Cc: suppressed
Subject: Re: Malformed header from script
michael watson (IAH-C) wrote:
> Sorry for the confusion....
>
> The code also actually attempts to print out HTML headers ie
> "<HTML><HEAD> etc" but these DO NOT come through to the webpage -
> instead, a bunch of special characters are printed out...
Right... because the <HTML> and <HEAD> tags are being (incorrectly)
shoved into the Content-type field by apache..
From the command line do:
HEAD http://my.web.host.com
I bet you'll see Content-Type: <HTML><HEAD> or something close to that.
Apache is expecting the first two lines of your output to be a content
type header.
I suspect that the reason you're running into this issue is because the
original code was never intended to be run as a Apache::Registry script,
and that the content type printing is being controlled by a global
variable.
i.e.
print "Content-type: foo/bar\n\n" if($HEADER_PRINTED == 0);
$HEADER_PRINTED = 1;
That global variable is never being reset to 0, and thus all requests
(except the very first) end up being sent across without a header.
I could be wrong, but I would start grepping for 'Content-type' in the
code.
Rob
Mail converted by mhonarc 2.6.15
This archive provided courtesy of JSW4.NET, Internet Hosting Services for Small Business.