Разрыв keep-alive сервером., Jassmin, 13-Май-09, 09:07 [смотреть все]Здравствуйте все! Кто-нибудь знает, как должны действовать клиенты, при разрыве соединения сервером после заявленного Connection: keep-alive. В спецификации я не нашла ни чего об этом :-( Там говорится, что можно разрывать соединение вместо 503 Service Unavailable У меня как раз такая ситуация. При подключении клиента делаю сначала fork, а потом chroot. Причём, chroot разный в зависимости от запроса. И иногда не могу достать нужный файл (как правило картина на странице). Их клиент почти всегда просит через то же соединение, что и саму страницу. Вариант - поменять структуру директорий, продублировать файлы везде где надо - не подходит. Я уже думала об этом, файлы необходимо оставить как есть. И chroot в вышестоящую директорию нельзя :-( После экспериментов с конкерором (больше ни чего нет), я поняла: 503 - картинки не грузятся разрыв соединения - грузятся, но иногда дважды! (есть трафик с полными телами файлов) Когда картинок на странице много, браузер сразу создаёт несколько соединений, и при неудачной попытке загрузить файл, видимо пробует в других существующих соединениях и создаёт новое. Как избавиться от дублирующих загрузок? И не противоречил ли вообще всё это спецификации?
|
- Разрыв keep-alive сервером.,
Sarge, 09:47 , 13-Май-09 (1)
- Разрыв keep-alive сервером.,
Jassmin, 10:13 , 13-Май-09 (2)
- Разрыв keep-alive сервером.,
Sarge, 11:19 , 13-Май-09 (3)Либо меняйте архитектуру сайта/сервера, либо всегда закрывайте соединение.Можно ещё попробовать выдавать редирект в таких случаях. Если есть фронтенд типа nginx, то можно даже внутренний редирект выдать (см. X-Accel-Redirect), или в своём приложении реализовать что-то подобное.
- Разрыв keep-alive сервером.,
Jassmin, 15:54 , 13-Май-09 (4)Проверка показала, что: IE7, Opera, Firefox и Konqueror нормально (не считая странных дублирующих загрузок) работают с разрывом соединения. Спецификация, вроде, тоже не против 503 как-никак.>Можно ещё попробовать выдавать редирект в таких случаях. А какой? (301, 302, 303, 307) Редирект URL на самого себя - это нормально? И редирект, ведь отключается в настройках и в теории не всегда автоматический. *вот надоест мне всё, сделаю много варианотов с разными редиректами и без них, и скормлю всё тестерам заказчика...
- Разрыв keep-alive сервером.,
Sarge, 19:53 , 13-Май-09 (5)>Проверка показала, что: IE7, Opera, Firefox и Konqueror нормально (не считая странных >дублирующих загрузок) работают с разрывом соединения. >Спецификация, вроде, тоже не против 503 как-никак. а где вы кстати прочитали что разрыв соединения равен ошибке 503? Я такого не припомню в rfc2616. ИМХО разрыв соединения это нештатная ситуация. >>Можно ещё попробовать выдавать редирект в таких случаях. > >А какой? (301, 302, 303, 307) >Редирект URL на самого себя - это нормально? не знаю, пробуйте. В крайнем случае можно сделать редирект на себя + случайный параметр в гет (типа Location: http://site.ru/img.gif?redirect=curtime) >И редирект, ведь отключается в настройках и в теории не всегда автоматический. в теории - да, а на практике слишком широко используется чтобы его отключать в штатном режиме веб-серфинга. >*вот надоест мне всё, сделаю много варианотов с разными редиректами и без >них, и скормлю всё тестерам заказчика... а самому делать запрос в режиме прокси к другому чайлду не катит?
- Разрыв keep-alive сервером.,
Jassmin, 20:55 , 13-Май-09 (6)>а где вы кстати прочитали что разрыв соединения равен ошибке 503? Я >такого не припомню в rfc2616. ИМХО разрыв соединения это нештатная ситуация. Наоборот 503 = разрыв соединения. Ну и то и другое - нештатная ситуация. Note: The existence of the 503 status code does not imply that a server must use it when becoming overloaded. Some servers may wish to simply refuse the connection. >в теории - да, а на практике слишком широко используется чтобы его >отключать в штатном режиме веб-серфинга. А я-то хотела сделать всё по науке... Видимо придётся ограничиться практикой. >а самому делать запрос в режиме прокси к другому чайлду не катит? Не элегантно, муторно, ресурсы тратит, подменяет IP, зато клиента не трогает - хорошая идея! Итог: так и не ясно, что должны делать клиенты при разрыве соединения, но ясно, что они делают. Sarge ,благодарю за советы.
|