Алгоритм генерации заголовка Etag на PHP аналогичный заголовку Apache 2

В Apache 2(с какой именно версии пока что не отвечу) был изменён формат заголовка Etag используемого для управления кешированием. Ранее этот заголовок состоял из 3-х частей, с некоторого времени формат быз изменён - теперь заголовок состоит из 2-х частей разделённых знаком тире. Методом проб и ошибок, а так же аналитикой результатов генерации заголовка Apache удалось установить, что в первой части заголовка содержится размер файла для которого вычисляется заголовок(кстати эта часть присутствовала и в предыдущей версии заголовка из 3-х частей и располагалась она в второй позиции, то есть после первого тире), а вторая часть дата модификации файла в формате unixtime, причём после секунд идут 6 знаков микросекунд, которые не отделяются от секунд каким либо знаком(в том числе точкой), то есть микросекунды идут сразу за секундами. Поскольку в PHP предположительно нет стандартной функции, которая бы возвращался время изменения файла с милисекундами, для получения этой информации используется обращение к /usr/bin/stat. В листинге ниже приведена функция для генерации значения значения заголовка Etag по адресу файла на сервере, аналогичного применяемому в Apache 2.

Комментарии

Если у Вас возникли вопросы, Вы можете задать их в форме ниже. В частности если Ваш вопрос по Bitrix и что то не получается - можно спросить. Ваш e-mail не публикуется, при этом я отвечу на него если будет что то по теме. Писать необходимо для людей - избегайте сленга, пишите орфографически правильно.

Имя:
E-mail:
Текст комментария:

Вы так же можете прочитать следующие статьи: