Как известно, существует предел количества тех файлов, которые Firefox одновременно запрашивает из Паутины. Предел этот намеренно установлен по умолчанию довольно низким, чтобы не напрягать ресурсы вебсерверов, обслуживающих читателя.
Его можно повысить, и это приведёт к ускорению работы, однако это произойдёт ценою увеличения пúковой нагрузкu на отдалённый сервер и на ваше соединение. Поэтому сверх меры увлекаться таким повышением не следует.
Но ускорение работы весьма драгоценно для всех сетевиков, поэтому я расскажу вам, как и почему скорость работы может и должна быть повышена.
Ситуация такая: обычно браузер открывает одно или два постоянных (keep-alive) соединения с вебсервером, и начинает посылать через них запросы. Очередной запрос, однако же, посылается только после того, когда пришёл отклик на предыдущий. Вся эта схема поэтому немного тормозит.
Более двух соединений открывать нельзя, поскольку это не рекомендуется спецификациями протокола HTTP/1.1.
Однако существует механизм, называемый HTTP/1.1 Pipelining, который позволяет сразу послать несколько запросов по такому соединению, а потом просто дожидаться прихода откликов.
Таким образом уменьшается задержка, связанная со временем прохода пакетов информации от вас к серверу и от сервера к вам. Эта задержка теперь происходит только один раз, поскольку запросы посылаются всем скóпом — а не каждый раз при запросе очередного файла.
Кроме того, уменьшается число самих таких пакетов. Во многих системах размер пакета TCP/IP установлен равным 512 байт, и в такой пакет вполне возможно засунуть несколько штук HTTP-запросов, если посылать их одновременно.
Остаётся вопрос: по сколько штук объединять HTTP-запросы? Если объединять помáлу, то эффект от pipelining будет невысок. Если объединять помнóгу, то значительными будут потери, если „постоянное соединение“ всё же оборвётся.
А теперь внимание: записывайте рецепт.
Откройте новое окно Mozilla Firefox, введите адрес about:config — вы окажетесь на странице с перечнем настроек.
Наверху в фильтре введите network.http — тогда перед вами останутся только те настройки, которые связаны с обработкою протокола HTTP.
Найдите настройку “network.http.pipelining” и дважды щёлкните её мышью — настройка включится, переменив своё значение с false на true.
Найдите настройку “network.http.proxy.pipelining” и дважды щёлкните её мышью — настройка включится, переменив своё значение с false на true.
Найдите настройку “network.http.pipelining.maxrequests” и дважды щёлкните её мышью — после этого вы сможете переменить максимальное количество одновременно так отсылаемых запросов.
По умолчанию их четыре. Я рекомендую ставить десять.
Настройка завершена. Теперь читаемые вами страницы будут начинать загружаться значительно быстрее, поскольку число запросов, одновременно отсылаемых, увеличилось вдесятеро.
Сама же загрузка будет происходить с прежней скоростью: настройка эта избавляет от предварительной задержки, но она не в состоянии волшебным образом увеличить скорость вашего модема.
Но и то нехило! Пакет от меня до Москвы идёт примерно 200 миллисекунд, и поэтому, допустим, каждые пять отдельных запросов — это в сумме уже получается целая секунда лишнего ожидания, а теперь эти запросы оказываются объединены.
Пусть эта настройка не ускоряет каналы связи, но за такую секунду даже обычный модем закачает вам килобайта четыре, а то и больше.
Firefox — мой путь к быстрой Паутине.
Обсуждение Mozilla Firefox на нашем форуме - перейти к теме.
Разделы:
Дополнительные разделы: