Режем cookie

В качестве заключительного аккорда при рассмотрении уменьшения количества передаваемых данных между сервером и клиентом нужно обязательно упомянуть cookie. Cookie являются одним из HTTP-заголовков, которые браузер посылает на сервер, а сервер вправе им ответить (если копнуть глубже, то существует пара заголовков: Cookie и Set-Cookie – но в данном случае это не так существенно). Общий размер HTTP-заголовков обычно не превосходит 500-1000 байтов, однако, cookie могут существенно его увеличить (так как на них накладывается ограничение в 4 Кб). При объемах полезной информации в несколько Кб размер cookie может оказать критичное воздействие на скорость передачи данных. Давайте рассмотрим, какие существуют способы уменьшения этих издержек.

Оптимизируем размер, зону и время действия

В большинстве случаев пользователю просто не нужно пересылать огромные массивы данных каждый раз, для него вполне возможно ограничиться только сессионным ключом. Исходя из этого, стоит пересмотреть логику использования заголовков cookie и оставить только действительно необходимые. Как вариант, можно устанавливать cookie только для определенных разделов на сайте либо ограничиваться только текущей сессией пользователя на сайте (которая не будет сохраняться при повторном заходе). Также у cookie можно варьировать срок действия, что будет несколько нивелировать их влияние, если пользователь будет заходить на сайт достаточно редко: с каждым новым заходом cookie из браузера пересылаться не будут, однако, их будет отправлять сервер. Поэтому данная мера особой производительности не принесет.

Хостинг для компонентов без cookie

Для высоконагруженных проектов, которые активно используют cookie и стремятся минимизировать издержки от них, стоит рассмотреть вынос статических ресурсов на отдельный хост, для которого cookie вообще не будут устанавливаться. В данном случае можно рассмотреть использование поддомена (что может оказаться бесполезным, если cookie выставляются на *.domain.ru) или домена верхнего уровня (в таком случае придется регистрировать отдельный домен для хранения статических ресурсов). Однако в обоих случаях возможны проблемы с локальными прокси-серверами: они могут отказаться кэшировать файлы с физически разных доменов.

Материалы близкой тематики:

Posted in Разгони свой сайт.