Клиентская и серверная оптимизация: сходство и различия |
|
Клиентская оптимизация оперирует двумя основными принципами: меньше данных и меньше соединений. Но именно эти принципы помогают уменьшить нагрузку на сам сервер. Давайте посмотрим, как это происходит и как перенести часть серверной нагрузки на клиентский браузер. Кэширование во главу углаСервер может управлять состоянием кэша клиентского браузера, во-первых, через заголовок Cache-Control (и его атрибуты max-age, pre-check, post-check), который может указывать на промежуток времени, в течение которого соответствующий файл следует хранить на диске и не запрашивать с сервера. Рекомендуется для всех статических файлов выставлять максимальное время жизни кэша и форсировать его обновление у пользователя через изменение URL ресурса (с помощью RewriteRule либо GET-параметра). Во-вторых, состоянием клиентского кэша можно управлять через заголовки ETag и Last-Modified, которые ставят в соответствие каждому файлу уникальный идентификатор, изменяющийся при изменении файла, - своеобразная цифровая подпись или хэш. При этом серверу нужно не пересылать файл заново, а лишь ответить статус-кодом 304 на запрос браузера, если файл не изменился с момента последнего запроса. В итоге сам файл не пересылается, соединение (и сокет) освобождается быстрее, и ресурсы сервера также экономятся. Подробнее о кэшировании рассказывается в третьей главе. Меньше запросов - легче серверуИспользуя объединение файлов, мы не заставляем сервер обмениваться с браузером заголовками для передачи, например, нескольких таблиц стилей - гораздо экономичнее будет их объединить в одну. При этом браузер быстрее получит всю необходимую информацию и быстрее освободит такой важный ресурс, как соединение. Наряду с объединением текстовых файлов не стоит пренебрегать и объединением картинок. Если учитывать, что современные браузеры могут устанавливать несколько десятков одновременных соединений с сервером для получения статических файлов (и 80% из них - это именно картинки), то экономия от использования CSS Sprites, Image Map или data:URI подхода рассчитывается очень просто. В некоторых случаях удается уменьшить число соединений браузера с сервером для загрузки одной HTML-страницы в 8-10 раз. Объединение файлов рассматривается в четвертой главе. Архивировать и кэшировать на сервереКак показали проведенные исследования, gzip-сжатие текстового файла «на лету» в 95-98% случаев позволяет сократить время на передачу файла браузеру. Если хранить архивированные копии файлов на сервере (в памяти proxy-сервера или просто на диске), то соединение в общем случае удается освободить в 3-4 раза быстрее. В случае высоконагруженных серверов с динамическими HTML-файлами gzip также может быть применим. Здесь стоит ориентироваться на минимальную степень сжатия, ибо процессорные издержки при этом растут линейно, а размер уменьшается лишь логарифмически. О сжатии рассказывает следующая глава. Кто у кого на службе?После проведенного обзора технологий может показаться, что клиентская оптимизация является лишь составляющей частью серверной. Однако это не так. И клиентский, и серверный подход должен присутствовать при построении высокопроизводительных веб-приложений. В этом случае можно говорить о пересекающейся области ответственности, но никак не о превалировании одной логики над другой. Когда дело доходит до взаимодействия клиент-сервер, нужно помнить обо всех аспектах оптимизации. И у клиентской составляющей есть своя, выделанная, область ответственности. Она находится в окне браузера - это веб-страница, которая загружается у пользователя и с которой он взаимодействует.
|
Яндекс - как он выглядит внутри?Cайт www.yandex.ru был создан в 1997 году, для него хватало всего одного сервера, который стоял под рабочим столом одного из группы первых разработчиков Яндекса, Дмитрия, по фамилии Тейблюм. Очень быстро после открытия приобрели второй сервер, а вскоре, когда понадобилось установить ещё один, стало понятно, что под столом хватает пространства либо на три сервера Яндекса, либо на две ноги ... Читать полностью |
Продвижение сайта и уникальность контентаВы, наверное, не раз попадали на разные сайты с совершенно одинаковым содержанием. А тем временем Яндекс продолжает настаивать на уникальности контента и призывать к этому владельцев сайтов и веб-мастеров. Уникальный контент способен сделать результаты поиска более объективными и более разнообразными по содержанию. Тут возникает вопрос: кто же наиболее заинтересован в оригинальности содержания:... Читать полностью |
Матрикснет – новое качество поиска ЯндексаОсновная задача поисковой системы – дать ответ на вопрос пользователя. Когда пользователь задает запрос, поисковая система не обращается к каждому сайту в интернете, а ищет по базе известных ей страниц – поисковому индексу. Там она находит все страницы со словами из запроса. Ссылки на эти страницы пользователь и видит на страницах результатов поиска. Читать полностью |
Что ждет нас в будущем?Как мы видим, Яндекс не стоит на месте, и я уверен, что поисковые технологии этой системы будут развиваться и дальше, чтобы повышать качество поиска, которое пока трудно назвать идеальным. Читать полностью |
