Главная
Форум
Контакты
Купить
Поддержи проект
Поиск
Искать:
Расширенный поиск
[Закрыть]
Правила форума
Войти
Регистрация
Russian
English
HandyCache форум
Главная категория
»
Общие вопросы
»
Что такое Pipelining?
Имя пользователя:
1 час
1 день
1 неделя
1 месяц
Навсегда
Пароль:
Страниц: [
1
]
2
3
Все
Вниз
« предыдущая тема
следующая тема »
Отправить эту тему
Печать
Автор
Тема: Что такое Pipelining? (Прочитано 43950 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Сергей
Beta tester
Репутация: +9/-2
Offline
Сообщений: 621
Что такое Pipelining?
«
:
05 апреля 2007, 10:45:26 »
Что нам даст эта фича?
И как ее тестировать?
Сообщить модератору
Записан
Rick
Администратор
Репутация: +15/-1
Offline
Сообщений: 868
Re: Что такое Pipelining?
«
Ответ #1 :
05 апреля 2007, 11:11:27 »
Посмотри
тут
. Картинка весьма наглядна.
Суть в том, что браузер посылает несколько запросов "пачкой", а сервер так же "пачкой" отдает.
Тестировать - IE это не поддерживает, в Опере некий "интеллектуальный алгоритм" который сам определяет когда использовать pipelining, в FF это по дефолту отключено и включается опциями network.http.pipelining и network.http.proxy.pipelining
Цитировать
Что нам даст эта фича?
Теоретически экономию ресурсов, увеличение производительности и увеличение скорости. В общем сплошной шоколад. Теоретически.
Сообщить модератору
Записан
DenZzz
Модератор
Репутация: +179/-11
Offline
Сообщений: 5589
Re: Что такое Pipelining?
«
Ответ #2 :
05 апреля 2007, 11:32:51 »
Цитата: Сергей от 05 апреля 2007, 10:45:26
Что нам даст эта фича?
Еще пара ссылок:
http://mozilla.org/projects/netlib/http/pipelining-faq.html
http://operawiki.info/HttpProtocol
Нам это даст поддержку преимуществ HTTP/1.1 - передачу на сервер сразу нескольких запросов в одном соединении, не дожидаясь ответов. Теоретически, это должно увеличить скорость загрузки страниц на медленных каналах и уменьшить количество TCP/IP пакетов (нагрузку на сеть).
Кроме того, это должно решить проблемы
с путаницей картинок в FireFox
и некоторые
проблемы в Опере
...
Сообщить модератору
Записан
Михаил
Gold beta tester
Репутация: +337/-14
Offline
Сообщений: 5513
Re: Что такое Pipelining?
«
Ответ #3 :
05 апреля 2007, 11:47:47 »
Сергей
Наибольшую выгоду от Pipelining получат те, у кого время отклика составляет существенную часть от общего времени коннекта. В первую очередь, это обладатели спутникового интернета, потом DSL, потом Dial-Up.
PS Может, здесь и продолжим обсуждение тестирования поддержки Pipelining?
У меня сразу возник вопрос. В логе строки имеют теперь вид:
05.04.2007 11:37:11 # 493/519 >>> URL:
http://handycache.ru/forum/Themes/SlickPro_Graphite/images/icons/folder_open.gif
Что означает 519 в # 493/519? Предполагаю, что это относится к Pipelining.
Сообщить модератору
Записан
Rick
Администратор
Репутация: +15/-1
Offline
Сообщений: 868
Re: Что такое Pipelining?
«
Ответ #4 :
05 апреля 2007, 12:01:30 »
Цитата: DenZzz от 05 апреля 2007, 11:32:51
Нам это даст поддержку преимуществ HTTP/1.1 - передачу на сервер сразу нескольких запросов в одном соединении, не дожидаясь ответов. Теоретически, это должно увеличить скорость загрузки страниц на медленных каналах и уменьшить количество TCP/IP пакетов (нагрузку на сеть).
Не все так радужно. Поскольку ответы сервер должен давать в строго той же последовательности как получались запросы, один затормозивший запрос тормозит все последующие в "пачке".
Цитата: Михаил от 05 апреля 2007, 11:47:47
Что означает 519 в # 493/519?
Это номер строки в Мониторе.
Сообщить модератору
Записан
Михаил
Gold beta tester
Репутация: +337/-14
Offline
Сообщений: 5513
Re: Что такое Pipelining?
«
Ответ #5 :
05 апреля 2007, 14:11:43 »
Цитата: Rick от 05 апреля 2007, 12:01:30
Это номер строки в Мониторе.
Переформулирую: что означает написание через дробь 493/519? Значит ли это, что данная строка лога относится к строке монитора 519 и этот файл получен по Pipeline в рамках одного соединения после файла, обозначенного в 493 строке монитора?
Сообщить модератору
Записан
Rick
Администратор
Репутация: +15/-1
Offline
Сообщений: 868
Re: Что такое Pipelining?
«
Ответ #6 :
05 апреля 2007, 14:43:32 »
Цитата: Михаил от 05 апреля 2007, 14:11:43
Значит ли это, что данная строка лога относится к строке монитора 519
Да.
Цитировать
и этот файл получен по Pipeline в рамках одного соединения после файла, обозначенного в 493 строке монитора?
Не так. В твоем примере 493 - номер соединения. 519 - номер строки в Мониторе. Если в рамках одного соединения было сделано несколько запросов то будет, например, 493/519 и 493/524.
Сообщить модератору
Записан
Михаил
Gold beta tester
Репутация: +337/-14
Offline
Сообщений: 5513
Re: Что такое Pipelining?
«
Ответ #7 :
09 апреля 2007, 21:06:50 »
На мой взгляд, pipelining не будет полноценно использоваться, пока НС не начнет возвращать "HTTP 1.1" в собственных ответах (в тех, где сервером значится HandyCache).
Мы должны возвращать клиенту максимально поддерживаемую нами подверсию HTTP (т.е. HTTP 1.1)
.
Сейчас происходит так. Опера запоминает, что запрошенный хост (а на самом деле НС) отвечает HTTP 1.0, и запоминает его как неподдерживающий HTTP 1.1 и соответственно pipelining. В итоге в процессе следующих обращений к этому хосту pipelining Опера не инициирует.
Сообщить модератору
Записан
Rick
Администратор
Репутация: +15/-1
Offline
Сообщений: 868
Re: Что такое Pipelining?
«
Ответ #8 :
09 апреля 2007, 22:07:23 »
Имхо еще бы необходима собственно опция включающая/отключающая Pip в HC.
Сообщить модератору
Записан
Михаил
Gold beta tester
Репутация: +337/-14
Offline
Сообщений: 5513
Re: Что такое Pipelining?
«
Ответ #9 :
09 апреля 2007, 22:47:28 »
Еще мне кажется, ничего положительного в поддержку pipeline не привносят формируемые НС заголовки Proxy-Connection.
Насколько я знаю, это изобретение Netscape не регламентировано никакими стандартами и применяется (применялось) только в нетскейповских браузерах. Стандартом HTTP определен заголовок Connection, который обязан понимать любой клиент. С учетом этого предлагаю не использовать Proxy-Connection.
Как работать с заголовком Connection, постараюсь изложить позже.
Сообщить модератору
Записан
DenZzz
Модератор
Репутация: +179/-11
Offline
Сообщений: 5589
Re: Что такое Pipelining?
«
Ответ #10 :
09 апреля 2007, 23:25:50 »
Цитата: Михаил от 09 апреля 2007, 21:06:50
Сейчас происходит так. Опера запоминает, что запрошенный хост (а на самом деле НС) отвечает HTTP 1.0, и запоминает его как неподдерживающий HTTP 1.1 и соответственно pipelining.
В каких ответах HC сейчас формирует HTTP/1.0 ? Вроде, везде HTTP/1.1...
Цитировать
Насколько я знаю, это изобретение Netscape не регламентировано никакими стандартами и применяется (применялось) только в нетскейповских браузерах.
Однако, великий и всемогущий IE тоже использует заголовок Proxy-Connection...
Сообщить модератору
Записан
Михаил
Gold beta tester
Репутация: +337/-14
Offline
Сообщений: 5513
Re: Что такое Pipelining?
«
Ответ #11 :
09 апреля 2007, 23:38:40 »
Цитата: DenZzz от 09 апреля 2007, 23:25:50
В каких ответах HC сейчас формирует HTTP/1.0 ? Вроде, везде HTTP/1.1...
Если запрос HTTP 1.0, то, собственно, во всех без исключения (по крайней мере, у меня): 304, 403, 404, 430, 200 (НС).
Цитировать
Однако, великий и всемогущий IE тоже использует заголовок Proxy-Connection...
А где он описан? Когда и как его надо использовать? Почему/для каких целей его использует НС?
Я этого за IE не замечал.
«
Последнее редактирование: 09 апреля 2007, 23:45:07 от Михаил
»
Сообщить модератору
Записан
mai62
Автор HC
Репутация: +226/-4
Offline
Сообщений: 6383
Re: Что такое Pipelining?
«
Ответ #12 :
09 апреля 2007, 23:49:21 »
Михаил
Цитировать
На мой взгляд, pipelining не будет полноценно использоваться, пока НС не начнет возвращать "HTTP 1.1" в собственных ответах (в тех, где сервером значится HandyCache).
Сейчас НС в своих ответах отдает то, что получает в запросах браузера.
Rick
Цитировать
Имхо еще бы необходима собственно опция включающая/отключающая Pip в HC.
И что должно происходит при включении/выключении этой опции?
Сообщить модератору
Записан
Михаил
Gold beta tester
Репутация: +337/-14
Offline
Сообщений: 5513
Re: Что такое Pipelining?
«
Ответ #13 :
09 апреля 2007, 23:54:00 »
Цитата: mai62 от 09 апреля 2007, 23:49:21
Сейчас НС в своих ответах отдает то, что получает в запросах браузера.
НС должен, на мой взгляд, и на запрос HTTP 1.0, и на 1.1 давать ответ HTTP 1.1. Этим НС сообщит браузеру, что он поддерживает 1.1. Имхо, исходя из этого ответа браузер (по крайней мере, Опера) будет в дальнейшем строить взаимоотношения с НС при обращении к тому же хосту.
Такой ответ, собственно, как мне помнится, определен стандартом и/или рекомендациями к нему. Если нужно, могу отыскать.
«
Последнее редактирование: 10 апреля 2007, 00:13:43 от Михаил
»
Сообщить модератору
Записан
Rick
Администратор
Репутация: +15/-1
Offline
Сообщений: 868
Re: Что такое Pipelining?
«
Ответ #14 :
10 апреля 2007, 00:06:44 »
Цитата: mai62 от 09 апреля 2007, 23:49:21
И что должно происходит при включении/выключении этой опции?
Видимо должно выдаваться Proxy-Connection: Close? Радикальный, но не лучший способ.
Суть в том, что у многих пользователей проблемы с pipelining'ом: в зависимости от удаленного сервера и от сереверов через которые осуществляется к ним доступ. Кроме того, некоторые программы с ним не дружат. В частности антивирус Касперского: на его форуме ответы от крайности "не поддерживает вообще", до самого оптимистичного из того, что было сказано: "с pipelining'ом будет намного медленнее, чем без него" (с) Global Moderator форума KAV.
Учитывая, что в Опере невозможно отключить пип без отключения http 1.1 желательно наличие такой опции в НС.
Сообщить модератору
Записан
mai62
Автор HC
Репутация: +226/-4
Offline
Сообщений: 6383
Re: Что такое Pipelining?
«
Ответ #15 :
10 апреля 2007, 00:31:47 »
Михаил
Цитировать
Если нужно, могу отыскать.
Нужно.
Rick
Цитировать
Видимо должно выдаваться Proxy-Connection: Close?
Тогда так и называть надо эту опцию - Persistent connection.
Сообщить модератору
Записан
Михаил
Gold beta tester
Репутация: +337/-14
Offline
Сообщений: 5513
Re: Что такое Pipelining?
«
Ответ #16 :
10 апреля 2007, 00:33:49 »
mai62
Здесь
.
Цитировать
An HTTP server SHOULD send a response version equal to the highest
version for which the server is at least conditionally compliant, and
whose major version is less than or equal to the one received in the
request.
Сообщить модератору
Записан
mai62
Автор HC
Репутация: +226/-4
Offline
Сообщений: 6383
Re: Что такое Pipelining?
«
Ответ #17 :
10 апреля 2007, 00:45:18 »
Михаил
Хорошо, сделаю 1.1
Сообщить модератору
Записан
Rick
Администратор
Репутация: +15/-1
Offline
Сообщений: 868
Re: Что такое Pipelining?
«
Ответ #18 :
10 апреля 2007, 00:51:37 »
Цитата: mai62 от 10 апреля 2007, 00:31:47
Тогда так и называть надо эту опцию - Persistent connection.
Я потому и говорю, что не лучший способ: Persistent connection хотелось бы наверное сохранить. А как разделить Persistent connection и Pipelining я не знаю/не разбирался.
Сообщить модератору
Записан
Михаил
Gold beta tester
Репутация: +337/-14
Offline
Сообщений: 5513
Re: Что такое Pipelining?
«
Ответ #19 :
10 апреля 2007, 14:04:23 »
mai62
Тестирую сборку 21 с HTTP 1.1. Опера перестала закрывать соединение после каждого скачанного файла. Работа ускорилась. В общем, постоянные соединения наконец заработали!!!
Тем не менее, pipelining не наблюдается - НС шлет запрос по открытому соединению только после получения ответа на предыдущий запрос по этому соединению. Надо разбираться.
Как НС определяет, когда открывать новое соединение, а когда слать запрос по существующему?
Сообщить модератору
Записан
Страниц: [
1
]
2
3
Все
Вверх
Отправить эту тему
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Главная категория
-----------------------------
=> Общие вопросы
=> Новые предложения
=> Дополнения, плагины
=> Сжатие трафика
=> English forum
=> Indonesian forum
-----------------------------
Гостевая
-----------------------------
=> Гостевая
-----------------------------
Дела домашние
-----------------------------
=> Сайт и форум HandyCache
=> Курилка
© 2006-2014 HandyCache Team. Все права защищены.
Загружается...