Параллельная загрузка веб-браузера и конвейерная обработка - PullRequest
5 голосов
/ 09 февраля 2011

Я всегда знал, что веб-браузеры могут выполнять параллельные загрузки. Но потом на днях я услышал о конвейерной обработке. Я думал, что конвейерная обработка - это просто другое название для параллельных загрузок, но потом обнаружил, что даже в Firefox конвейерная обработка отключена по умолчанию. В чем разница между этими вещами и как они работают вместе?

Ответы [ 2 ]

2 голосов
/ 09 февраля 2011

Как я понимаю, «параллельные загрузки» - это запросы, отправляемые по нескольким сокетам. Они могут относиться к абсолютно не связанным серверам, но не обязательно.

Конвейерная передача - это функция HTTP / 1.1, которая позволяет сделать несколько запросов в одном сокете перед получением ответа. При подключении к тому же серверу это уменьшает количество сокетов, экономя ресурсы.

0 голосов
/ 09 февраля 2011

Я думаю, эта статья MDC объясняет, что конвейер HTTP довольно чертовски хорош.

Что такое конвейер HTTP?

Обычно запросы HTTP выдаются последовательно, сследующий запрос выдается только после того, как ответ на текущий запрос будет полностью получен.В зависимости от задержек в сети и ограничений пропускной способности, это может привести к значительной задержке, прежде чем сервер увидит следующий запрос.

HTTP / 1.1 позволяет одновременно записывать несколько HTTP-запросов в сокет, не ожидаясоответствующие ответы.Затем запросчик ожидает поступления ответов в том порядке, в котором они были запрошены.Конвейерная обработка запросов может привести к значительному сокращению времени загрузки страницы, особенно при подключениях с высокой задержкой.

Конвейерная обработка также может значительно сократить количество пакетов TCP / IP.С типичным MSS (максимальный размер сегмента) в диапазоне от 536 до 1460 байт можно упаковать несколько HTTP-запросов в один пакет TCP / IP.Уменьшение количества пакетов, необходимых для загрузки страницы, приносит пользу Интернету в целом, поскольку меньшее количество пакетов естественным образом снижает нагрузку на IP-маршрутизаторы и сети.

Серверы, соответствующие HTTP / 1.1, должны поддерживать конвейерную работу.Это не означает, что серверы должны передавать ответы, но они не должны давать сбои, если клиент выбирает конвейерные запросы.Очевидно, что это может привести к появлению новой категории ошибок евангелизации, поскольку ни один другой популярный веб-браузер не реализует конвейерную обработку.

Я рекомендую прочитать всю статью, поскольку в моем ответе есть нечто большее, чем то, что я скопировал.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...