С нами с 09.03.06
Сообщения: 772
Рейтинг: 143
|
Добавлено: 05/04/08 в 12:38 |
При обращении к моему серверу http://www.domain.com/protected/session1234567890/img123.jpg картинка отдаётся скриптом, а не напрямую апачем. То есть, скрипт выдает сначала http хедер, потом читает файл img123.jpg и выдаёт что прочитал. Проблема в том, что AOL браузер у некоторых людей не показывает картинку. У меня всё работает нормально. Есть подозрение, я я не отдаю в http хедере какие-то нужные данные.
Подскажите пожалуйста сервис для проверки корректности http response. Это поможет понять, в чём дело.
|
|
|
|
легионер МММ
С нами с 18.04.03
Сообщения: 6239
Рейтинг: 786
|
Добавлено: 05/04/08 в 13:17 |
Проверь есть ли в ответе сервера строки: Content-Type: image/jpeg
Я использую для этого вот этот софт http://www.proxomitron.ru/
например
Код: | HTTP/1.1 200 OK
Date: Sat, 05 Apr 2008 10:14:04 GMT
Server: Apache/1.3.39 (Unix) PHP/4.4.8
Last-Modified: Thu, 20 Mar 2008 19:54:36 GMT
ETag: "d88283-17dc9-47e2c0fc"
Accept-Ranges: bytes
Content-Length: 97737
Connection: close
Content-Type: image/jpeg |
|
|
|
|
С нами с 09.03.06
Сообщения: 772
Рейтинг: 143
|
Добавлено: 05/04/08 в 13:43 |
content-type, конечно, есть. Из того, что ты перечислил, нет connection: close и Etag. Etag я приделал, жду, что скажут те, у кого не работало. А вот connection: close нет даже в ответе апача, который напрямую без скрипта, и при этом никто не жаловался.
|
|
|
|
С нами с 19.11.03
Сообщения: 3973
Рейтинг: 2362
|
Добавлено: 05/04/08 в 14:16 |
ты покажи для начала что ты отдаешь, а то так и будешь ждать и гадать на кофейной гуще.
|
|
|
|
С нами с 09.03.06
Сообщения: 772
Рейтинг: 143
|
Добавлено: 05/04/08 в 14:34 |
Это выдаёт скрипт после добавления етага:
HTTP/1.1 200 OK
Date: Sat, 05 Apr 2008 11:31:46 GMT
Server: Apache/1.3.41 (Unix) PHP/4.4.8
Accept-Ranges: bytes
ETag: "425913b5946add11e710283edb05e9be"
Last-Modified: Thu, 03 Apr 2008 17:32:01 GMT
Content-Length: 251981
Content-Type: image/jpeg
Без етага не работало у некоторых на АОЛ браузере. С етагом пока не знаю.
Это выдаёт апач напрямую (работает без проблем у всех):
HTTP/1.1 200 OK
Date: Sat, 05 Apr 2008 11:34:03 GMT
Server: Apache/1.3.41 (Unix) PHP/4.4.8
Last-Modified: Thu, 03 Apr 2008 17:31:03 GMT
ETag: "28f2465-297b5-47f51457"
Accept-Ranges: bytes
Content-Length: 169909
Content-Type: image/jpeg
|
|
|
|
легионер МММ
С нами с 18.04.03
Сообщения: 6239
Рейтинг: 786
|
Добавлено: 05/04/08 в 14:43 |
а почему Content-Length разный?
или это разные картинки?
|
|
|
|
С нами с 09.03.06
Сообщения: 772
Рейтинг: 143
|
Добавлено: 05/04/08 в 15:02 |
alt писал: | а почему Content-Length разный?
или это разные картинки? |
Разные картинки.
Оффтопик: Кстати, заметил баг на этом форуме: если при цитировании перед [/quote стоит знак вопроса, то цитата не выводится. Приходится вместо xxxxx?[/quote писать xxxxx? [/quote
|
|
|
|
С нами с 19.11.03
Сообщения: 3973
Рейтинг: 2362
|
Добавлено: 05/04/08 в 17:18 |
kbot:, друх мой, то что ты написал это апач отдавать не может в принципе, это больше смахивает на плот твоего воображения, не вводи себя и людей в заблуждение.
Показываю что отдает веб-сервер apache в этом случае на примере :
Код: |
HTTP/1.x 200 OK
Date: Sat, 05 Apr 2008 14:13:03 GMT
Server: Apache/1.3.37 (Unix) PHP/4.4.4
Last-Modified: Wed, 18 Jul 2007 13:36:09 GMT
Etag: "1aa980-34cde-469e1749"
Accept-Ranges: bytes
Content-Length: 216286
Keep-Alive: timeout=20, max=100
Connection: Keep-Alive
Content-Type: image/jpeg
|
Кстати есть мнение что заголовок Etag, ты формируешь тоже посредствам воображения, а не так как нужно.
Ну вот тебе пища, для размышлений.
|
|
|
|
С нами с 19.11.03
Сообщения: 3973
Рейтинг: 2362
|
Добавлено: 05/04/08 в 17:20 |
kbot писал: |
Кстати, заметил баг на этом форуме: если при цитировании перед [/quote стоит знак вопроса, то цитата не выводится. Приходится вместо xxxxx?[/quote писать xxxxx? |
Это не баг , это фича такая на форуме, кривая блять как борозда поля в совестком колхозе, кто ее придумал и чем думал в этот момент, остается загадкой, видно посчитали, что люди годами работавшие над движком форума, знают что и как похуже их.
|
|
|
|
С нами с 09.03.06
Сообщения: 772
Рейтинг: 143
|
Добавлено: 05/04/08 в 17:55 |
xreload писал: | kbot:, друх мой, то что ты написал это апач отдавать не может в принципе, это больше смахивает на плот твоего воображения, не вводи себя и людей в заблуждение.
Показываю что отдает веб-сервер apache в этом случае на примере : |
От твоего умного ответа толку как от козла молока. Ты мне не веришь, что апач отдаёт то, что я запостил? Ну посмотри, что получается, когда обращаешься например к http://www.city-feet.com/preview/travel/IMG_8083.jpg . Там точно никакие скрипты не перехватывают обращение. Если у тебя апач настроен так, что выдаёт то, что выдаёт, это не значит, что на других серверах всё в точности так же.
Насчёт ETag. Почитай мануал на w3c и пойми, что его единственное предназначение - быть разным для разного контента для облегчения кэширования. Его вид может быть любым.
|
|
|
|
Web Developer С++
С нами с 25.11.01
Сообщения: 859
Рейтинг: 759
|
Добавлено: 06/04/08 в 19:54 |
Я думаю проблема может быть не в хедере, а в специфике AOL.
При отдаче картинки скриптом ты наверняка фильтруешь пользователей которым выдаешь картинки, по ИП с AOL это не покатит. У них может страница грузиться с одного ИП, картинки уже с другого. Ты это учитываешь когда отдаешь картинки?
|
|
|
|
С нами с 09.03.06
Сообщения: 772
Рейтинг: 143
|
Добавлено: 06/04/08 в 22:35 |
Так вот в чём дело может быть... Конечно, я проверяю, чтобы в пределах одной сессии все обращения к мемберке были с одного айпишника. Это для того, чтобы посторонние, которые увидят URL с сессией, не могли этим воспользоватся.
Спасибо за ценную информацию! Теперь ясно, куда копать
|
|
|
|
С нами с 09.03.06
Сообщения: 772
Рейтинг: 143
|
Добавлено: 08/04/08 в 15:13 |
В общем меня DF правильно надоумил. AOL и некоторые другие кривые провайдеры произвольно меняют IP пользователя даже при непрерывном соединении. Логи это подтвердили.
Раньше я проверял, чтобы IP в течение сессии не менялся, иначе сессию закрывал, чтобы народ не мог выкладывать в свободный доступ ссылки на контент из мемберки (ID сесси передаётся в урле, чтобы не требовалась поддержка кук).
Теперь пришлось ставить двойную проверку - совпадение IP и специальной куки, которая ставится при логине в мемберку и для каждой сессии генерится случайно. Если результат обеих(!) проверок отрицательный, сессия убивается. То есть, если чел сидит на кривом провайдере, он должен включить куки. На нормальном провайдере можно без кук. Так что теперь проблем с доступом должно быть намного меньше.
|
|
|
|