The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Разрыв keep-alive сервером."
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [ Отслеживать ]

"Разрыв keep-alive сервером."  +/
Сообщение от Jassmin on 13-Май-09, 09:07 
Здравствуйте все!
Кто-нибудь знает, как должны действовать клиенты, при разрыве соединения сервером после заявленного Connection: keep-alive.
В спецификации я не нашла ни чего об этом :-(
Там говорится, что можно разрывать соединение вместо 503 Service Unavailable
У меня как раз такая ситуация. При подключении клиента делаю сначала fork, а потом chroot. Причём, chroot разный в зависимости от запроса. И иногда не могу достать нужный файл (как правило картина на странице). Их клиент почти всегда просит через то же соединение, что и саму страницу.
Вариант - поменять структуру директорий, продублировать файлы везде где надо - не подходит. Я уже думала об этом, файлы необходимо оставить как есть. И chroot в вышестоящую директорию нельзя :-(
После экспериментов с конкерором (больше ни чего нет), я поняла:
503 - картинки не грузятся
разрыв соединения - грузятся, но иногда дважды! (есть трафик с полными телами файлов)
Когда картинок на странице много, браузер сразу создаёт несколько соединений, и при неудачной попытке загрузить файл, видимо пробует в других существующих соединениях и создаёт новое.
Как избавиться от дублирующих загрузок?
И не противоречил ли вообще всё это спецификации?
Высказать мнение | Ответить | Правка | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Разрыв keep-alive сервером."  +/
Сообщение от Sarge (??) on 13-Май-09, 09:47 
http://www.lib.ru/WEBMASTER/rfc2068/section-8.html#p1-2-1
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "Разрыв keep-alive сервером."  +/
Сообщение от Jassmin on 13-Май-09, 10:13 
>http://www.lib.ru/WEBMASTER/rfc2068/section-8.html#p1-2-1

Можно, конечно, всегда закрывать соединение, но у меня в 99,9% случаев всё передаётся сразу.
Я же писала:
>И иногда не могу достать нужный файл

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "Разрыв keep-alive сервером."  +/
Сообщение от Sarge (??) on 13-Май-09, 11:19 
Либо меняйте архитектуру сайта/сервера, либо всегда закрывайте соединение.

Можно ещё попробовать выдавать редирект в таких случаях. Если есть фронтенд типа nginx, то можно даже внутренний редирект выдать (см. X-Accel-Redirect), или в своём приложении реализовать что-то подобное.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "Разрыв keep-alive сервером."  +/
Сообщение от Jassmin on 13-Май-09, 15:54 
Проверка показала, что: IE7, Opera, Firefox и Konqueror нормально (не считая странных дублирующих загрузок) работают с разрывом соединения.
Спецификация, вроде, тоже не против 503 как-никак.

>Можно ещё попробовать выдавать редирект в таких случаях.

А какой? (301, 302, 303, 307)
Редирект URL на самого себя - это нормально?
И редирект, ведь отключается в настройках и в теории не всегда автоматический.

*вот надоест мне всё, сделаю много варианотов с разными редиректами и без них, и скормлю всё тестерам заказчика...

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "Разрыв keep-alive сервером."  +/
Сообщение от Sarge (??) on 13-Май-09, 19:53 
>Проверка показала, что: IE7, Opera, Firefox и Konqueror нормально (не считая странных
>дублирующих загрузок) работают с разрывом соединения.
>Спецификация, вроде, тоже не против 503 как-никак.

а где вы кстати прочитали что разрыв соединения равен ошибке 503? Я такого не припомню в rfc2616. ИМХО разрыв соединения это нештатная ситуация.

>>Можно ещё попробовать выдавать редирект в таких случаях.
>
>А какой? (301, 302, 303, 307)
>Редирект URL на самого себя - это нормально?

не знаю, пробуйте. В крайнем случае можно сделать редирект на себя + случайный параметр в гет (типа Location: http://site.ru/img.gif?redirect=curtime)

>И редирект, ведь отключается в настройках и в теории не всегда автоматический.

в теории - да, а на практике слишком широко используется чтобы его отключать в штатном режиме веб-серфинга.

>*вот надоест мне всё, сделаю много варианотов с разными редиректами и без
>них, и скормлю всё тестерам заказчика...

а самому делать запрос в режиме прокси к другому чайлду не катит?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

6. "Разрыв keep-alive сервером."  +/
Сообщение от Jassmin on 13-Май-09, 20:55 
>а где вы кстати прочитали что разрыв соединения равен ошибке 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 ,благодарю за советы.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру