|
|
|
|
|
для: BuZZZard
(15.06.2007 в 20:22)
| | то header() и тут же выход из скрипта. Генерировать нечего.
статус not modified даже пустого тела не создает. | |
|
|
|
|
|
|
|
для: Trianon
(15.06.2007 в 20:10)
| | Начинаю втыкаться.
Я правильно понял, что нужно сравнить [If-Modified-Since] с датой изменения картинки? И в случае если дата картинки раньше [If-Modified-Since] то header("304 HTTP/1.1 Not modified"); ?
И это единственный хедер , который стоит в этом случае отправлять? | |
|
|
|
|
|
|
|
для: BuZZZard
(15.06.2007 в 20:07)
| | Ну вот видите?
[If-Modified-Since] => Fri, 15 Jun 2007 16:01:12 GMT
Значит если Since Fri, 15 Jun 2007 16:01:12 GMT Вами эта картинка Not modified - то и скажите об этом браузеру. { header("304 HTTP/1.1 Not modified"); die(); } | |
|
|
|
|
|
|
|
для: Trianon
(15.06.2007 в 19:38)
| | Изменил картинку и сохранил ее в базе.
Теперь получаю вот это:
Array
(
[0] => HTTP/1.1 200 OK
[1] => Date: Fri, 15 Jun 2007 16:07:32 GMT
[2] => Server: Apache/2.2.4 (Win32) PHP/5.2.1
[3] => X-Powered-By: PHP/5.2.1
[4] => Cache-Control: private, must-revalidate
[5] => Vary: Content-ID
[6] => Content-ID: 4bdbb68a88243599686c9e162832ed6b
[7] => Content-Length: 1151
[8] => Connection: close
[9] => Content-Type: image/gif
)
Array
(
[Accept] => image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, */*
[If-Modified-Since] => Fri, 15 Jun 2007 16:01:12 GMT
[Referer] => http://localhost/test/
[Accept-Language] => ru
[Accept-Encoding] => gzip, deflate
[User-Agent] => Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)
[Host] => localhost
[Proxy-Connection] => Keep-Alive
[Cookie] => PHPSESSID=7pchuv7jpfa7d2pa3pu0rig7m5
)
|
Причем
[If-Modified-Since] => Fri, 15 Jun 2007 16:07:34 GMT
|
при новом запросе новая дата :(
Управлять этим хедером?
Получать из базы дату изменения файла и ее подставлять?
Голова кругом.
Плохо когда не знал, да еще и забыл :( | |
|
|
|
|
|
|
|
для: Trianon
(15.06.2007 в 19:38)
| |
(
[Accept] => */*
[Accept-Language] => ru
[Accept-Encoding] => gzip, deflate
[User-Agent] => Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)
[If-Modified-Since] => Fri, 15 Jun 2007 15:36:10 GMT
[Host] => localhost
[Proxy-Connection] => Keep-Alive
[Pragma] => no-cache
[Cookie] => PHPSESSID=46lhpaqsr66gakbah0fjs0du65
)
|
Видимо вот моя беда:
А как с ней бороться? | |
|
|
|
|
|
|
|
для: BuZZZard
(15.06.2007 в 19:35)
| | это заголовок отклика. А я говорю о
echo '<pre>';
print_r( getallheaders());
|
| |
|
|
|
|
|
|
|
для: Trianon
(15.06.2007 в 19:10)
| | Вот все заголовки:
[0] => HTTP/1.1 200 OK
[1] => Date: Fri, 15 Jun 2007 15:36:09 GMT
[2] => Server: Apache/2.2.4 (Win32) PHP/5.2.1
[3] => X-Powered-By: PHP/5.2.1
[4] => Cache-Control: private, must-revalidate
[5] => Vary: Content-ID
[6] => Content-ID: 68dc8f2e2c1d1717628f4db8e40320b7
[7] => Content-Length: 1149
[8] => Connection: close
[9] => Content-Type: image/gif
|
| |
|
|
|
|
|
|
|
для: BuZZZard
(15.06.2007 в 18:31)
| | В смысле - как?
Как заголовок запроса получить?
либо в массиве $_SERVER поглядеть, либо функцией get_all_headers(0 вытащить. | |
|
|
|
|
|
|
|
для: Trianon
(15.06.2007 в 18:22)
| | Как это сделать?
Картинка та же самая. выводится несколько раз на одной странице.
Еще поясню.
Нужно принудительное кэширование картинок. Если картинка изменяется - нужно загрузить новую. Автоматически. | |
|
|
|
|
|
|
|
для: BuZZZard
(15.06.2007 в 18:18)
| | Проверьте заголовок IF-modified-since
Выдайте статус 304 HTTP/1.0 Not modified - если и вправду картинко то же самое... | |
|
|
|
|