Hello,

I don't get this at all.

I'm trying to use php to manipulate my HTTP headers. 

[ Background Info about HTTP headers.]
[ If an "ETag" header is sent by the server, then, next time a user-agent requests the 
same page, it sends back that header's value - in an "If-None-Match" header. ] 

The problem comes when I try to access the "If-None-Match" header using 
"apache_request_headers()". 

With Mozilla (I'm using 1.6b) the "If-Modified-Since" header is in the array. 
With Internet Explorer 6, it isn't, even though the header is sent out. (I'm checking 
the header output with the Proxomitron).

Why is this happening and what can I do about it?

Here are all the details:
-------------------------------------------
The page I'm testing this with:
<?php
header("ETag: asdfghjkl");

$headers = apache_request_headers();
print_r(array_keys($headers));
exit;
?>
-----------------------------------------
The Mozilla output on reload:

Array ( [0] => Accept [1] => Accept-Charset [2] => Accept-Encoding [3] => 
Accept-Language [4] => Cache-Control [5] => Connection [6] => Host [7] => 
If-None-Match [8] => Keep-Alive [9] => User-Agent )

and from the Prox:
GET /test.php HTTP/1.1
Host: pc
User-Agent: Mozilla/5.0 (Windows; U; Win98; en-US; rv:1.6b) Gecko/20031208
Accept: 
text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,image/jpeg,image/gif;q=0.2,*/*;q=0.1
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
If-None-Match: asdfghjkl
Cache-Control: max-age=0
Connection: keep-alive
-------------------------------------------
The IE6 output on reload is:

Array ( [0] => Accept [1] => Accept-Encoding [2] => Accept-Language [3] => Connection 
[4] => Host [5] => Pragma [6] => User-Agent )

and from the Prox:
GET /test.php HTTP/1.1
Accept: */*
Accept-Language: en
Accept-Encoding: gzip, deflate
If-None-Match: asdfghjkl
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows 98)
Host: pc
Pragma: no-cache
Connection: keep-alive
--------------------------------------------
As you can see, in both cases, all the request headers shown by the Proxomitron are 
also in the array - with the exception, for IE6, of the "If-None-Match" header.

Thanks in advance for your responses,

Philip Pawley

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to