Bug #17359 Updated: wrong header sent
| From: | kaz at telemedia dot hu | Date: | Thu, 23 May 2002 13:29:46 +0000 |
| Subject: | Bug #17359 Updated: wrong header sent | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-8324@lists.php.net to get a copy of this message | ||
ID: 17359
Updated by: kaz@telemedia.hu
Reported By: kaz@telemedia.hu
Status: Bogus
Bug Type: Output Control
Operating System: unix
PHP Version: 4.1.2
New Comment:
ok, thank you (all).
i'm forwarding this stuff to our developer, he said to me, that the
headers are case sensitive, and coded the application in wrong way.
thanks again.
Previous Comments:
------------------------------------------------------------------------
[2002-05-23 09:24:25] hholzgra@php.net
have a look at the sapi_apache_header_handler() function
http://lxr.php.net/source/php4/sapi/apache/mod_php4.c#153
and especially line 170
http://lxr.php.net/source/php4/sapi/apache/mod_php4.c#170
thats how the content type is passed to apache: not as a complete
header string but as the mime-type only in the content_type component
of the requert_rec structure r
so there is no way for apache to know if you wrote
Content-Type, Content-type or even cOnTeNt-TYPE
and as it doesn't matter there is no chance that they
(the apache people) will change their APIs for you to
get case sensitive behaviour in a place that is NOT
to be meant case sensitive
on the other hand they could even decide to convert
*all* header field names to lowercase if they wanted
so i *am* concentrating on the real problem, trying
to convince you that relying on case sensitivity or
case preservation here is just plain wrong in the
first place.
------------------------------------------------------------------------
[2002-05-23 09:10:15] kaz@telemedia.hu
oh, man, would you please concentrate to the problem??
i'm running a command which puts out a header.
i'm giving this command a parameter, the text of the header.
this text is: "Content-type: text/plain"
this is case sensitive, because i want this header, this text. not
anything else.
and i get something completely different: Content-Type: text/plain
THIS is the problem aside from the specifications.
ok, the headers are case insensitive, but i want the header as i
commanded the code to output it to me, not otherwise.
------------------------------------------------------------------------
[2002-05-23 08:39:35] hholzgra@php.net
good luck ;)
again: apache does nothing wrong here,
as HTTP headers are defined as case insensitive
whatever "causes chaos" for you is something that
is *not* HTTP complient, so you should try to
get that fixed instead of blaming software that
is perfectly compliant, although maybe in a way
you didn't expect ...
please read the HTTP specs
RRF2616, 4.2 Message Headers: "... Field names are case-insensitive.
..."
(http://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html#sec4.2)
RFC2616, 14.17 Content-Type
Content-Type = "Content-Type" ":" media-type
------------------------------------------------------------------------
[2002-05-23 06:24:15] kaz@telemedia.hu
ok, sorry, forwarding this to the apache group.
------------------------------------------------------------------------
[2002-05-23 05:55:07] hholzgra@php.net
#1 HTTP headers are defined as Case-Insensitive. period.
#2 CGI does not specify headers at all
#3 this is not a PHP issue, PHP passes the content-type
to apache, it is the apache web server that treats the
content-type header special and writes the Content-Type:
part of the header line in this case
this will happen to every Content-Type header set by
an apache module, it will not happen for CGIs
you can verify this by using the PHP command line
interface (CLI):
echo "<?php header('Content-type: text/plain'); ?>" | php
result:
X-Powered-By: PHP/4.2.0
Content-type: text/plain
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
http://bugs.php.net/17359
--
Edit this bug report at http://bugs.php.net/?id=17359&edit=1