Кеширование с HTTP Etag

Ігор Грегорченко

Etag (или entity tag) – один из механизмов кэширования в HTTP. По сути это идентификатор, который присваивается файлу сервером для последующей проверки.

Когда клиент запрашивает файлы веб-страницы (картинки, CSS и т.д), сервер передает все данные вместе с тэгами Etag в виде:

HTTP/1.1 200 OK

Server: MyServer/2.1

Date: Thu, 09 Jun 2016 13:30:54 GMT

Content-Type: text/html

Accept-Ranges: bytes

Last-Modified: Tue, 07 Jun 2016 12:00:00 GMT

**ETag: “6d82cbb050ddc7fa9cbb659014546e59″**

Content-Length: 363

## Пример ответа сервера с Etag

Файлы сохраняются в кэше на стороне клиента, и когда браузер запрашивает эти файлы снова, то к запросу добавляется строка If-None-Match:

GET /news/latest.html HTTP/1.1

**If-None-Match: “6d82cbb050ddc7fa9cbb659014546e59″**

Host: example.com
## Пример запроса с Etag

Сервер, в свою очередь, проверяет Etag, если он совпадает, то в ответ сервер отправляет код 304:

**HTTP/1.1 304 Not Modified**

Server: MyServer/2.1

Date: Tue, 07 Jun 2016 09:00:00 GMT

ETag: “6d82cbb050ddc7fa9cbb659014546e59”

Content-Length: 0
## Указывает, что файлы не изменились и их можно взять с кэша

Иначе требуемые файлы будут заново отправлены.

Включение Etag

Все современные веб-браузеры и веб-серверы поддерживают HTTP Etag. Для включения функции в Nginx нужно отредактировать его файл конфигурации:

server {

location ~* ^.+.(rss|atom|jpg|jpeg|gif|png|ico|rtf|js|css)$ {

expires 2592000;

**etag on;**

}

}
## Etag включается для статических файлов

Самое главное

HTTP Etag позволяет увеличить отзывчивость веб-приложения и уменьшить нагрузку на канал. Функция поддерживается всеми современными веб-браузерами и не требует дополнительной настройки после включения.

Останні статті

Что такое прокси-сервер: пояснение простыми словами, зачем нужны прокси

Прокси (proxy), или прокси-сервер — это программа-посредник, которая обеспечивает соединение между пользователем и интернет-ресурсом. Принцип…

21.11.2024

Что такое PWA приложение? Зачем необходимо прогрессивное веб-приложение

Согласитесь, было бы неплохо соединить в одно сайт и приложение для смартфона. Если вы еще…

19.11.2024

Как создать игру на телефоне: программирование с помощью конструктора

Повсеместное распространение смартфонов привело к огромному спросу на мобильные игры и приложения. Миллиарды пользователей гаджетов…

17.11.2024

Google Bard: эффективный аналог ChatGPT

В перечне популярных чат-ботов с искусственным интеллектом Google Bard (Gemini) еще не пользуется такой популярностью…

14.11.2024

Скрипт и программирование: что это такое простыми словами

Скрипт (англ. — сценарий), — это небольшая программа, как правило, для веб-интерфейса, выполняющая определенную задачу.…

12.11.2024

Дедлайн в разработке: что это такое простыми словами

Дедлайн (от англ. deadline — «крайний срок») — это конечная дата стачи проекта или задачи…

11.11.2024