in reply to Re^2: NPH and Connection: Keep-Alive
in thread NPH and Connection: Keep-Alive

I'm not experienced in this area. I'll have to get back to you later today after having time to do some testing.

Replies are listed 'Best First'.
Re^4: NPH and Connection: Keep-Alive
by gfairweather (Novice) on Mar 25, 2009 at 11:32 UTC

    Here are 2 snippets that you can try to see the effect.

    hello.pl

    #!/usr/bin/perl -w use CGI::Carp qw(fatalsToBrowser); use strict; use warnings; use CGI qw(:standard ); my $http_body_length = 0; my $http_body = "<html>\n<head>\n</head>\n<body>\n<p>Hello World</p>\n +</body>\n</html>\n"; { use bytes; $http_body_length = length($http_body); } print header(-type => 'text/html', -content_length => $http_body_length ); print $http_body;

    You will see that hello.pl sends keep-alives as expected as the headers are parsed by Apache and the connection remains open

    nph-hello.pl

    #!/usr/bin/perl -w use CGI::Carp qw(fatalsToBrowser); use strict; use warnings; use CGI qw(:standard ); my $http_body_length = 0; my $http_body = "<html>\n<head>\n</head>\n<body>\n<p>Hello World</p>\n +</body>\n</html>\n"; { use bytes; $http_body_length = length($http_body); } print header(-type => 'text/html', -content_length => $http_body_length, -nph => 1); print $http_body;

    You will see that nph-hello.pl does not send keep-alives as the headers are not parsed by Apache and the connection closes upon exit

    I have tried adding the 'Connection' and 'Keep-Alive' headers to nph-hello.pl and of course they are sent but Apache does not keep the connection open. Example:

    print header(-type => 'text/html', -content_length => $http_body_length, -connection => 'Keep-Alive', -nph => 1);

    This is what I am trying to accomplish.

Re^4: NPH and Connection: Keep-Alive
by gfairweather (Novice) on Apr 01, 2009 at 02:26 UTC

    The issue with the Content-Type being sent with the 304 response has been resolved. It appears that the issue was with the configuration of the host providers Apache setup. They moved the website onto a different server and the problem went away. I have not had confirmation but I think it was because they had a DefaultType set in the httpd.conf but also the new server is running a newer version of Apache so I can't be sure but it also may have been a bug in Apache 1.3. So I have moved away from using NPH and no longer have to worry about the Keep-Alive issue as that functions correctly in non NPH mode. Many thanks for your help.