Правильні http заголовки для сайту
Що таке HTTP заголовки?
Відповідно до специфікації http - даний протокол дозволяє передавати службову інформацію від сервера до браузера у вигляді спеціальних заголовків. Тобто, HTTP заголовки - засіб спілкування сервера з клієнтом. Тема не відображається у вікні браузера, але може докорінно змінити вигляд відображуваного документа.
Відправляємо HTTP заголовки
Для відправки заголовків в php використовується функція header (). Необхідно здійснювати відправку заголовків до посилки інших даних, в зв'язку з чим, функція header () повинна викликатися на самому початку документа.
header ( 'HTTP заголовок', [replace])
Параметр replace може приймати значення - true і false. Він визначає, чи повинен попередній заголовок подібного типу бути замінений, або доданий до існуючого. Для визначення статусу відправки заголовка використовується функція headers_sent (), що повертає true, в разі успішного відправлення, і false, в зворотному випадку.
Тема Cache-control
Виконує управління кешуванням сторінок. Можливі такі значення:
no-cache. Заборона кешування. Використовується в часто оновлюваних сторінках з динамічним контентом;
public. Дозвіл кешування сторінки як локальним клієнтом, так і проксі-сервером
private. Дозвіл кешування тільки локальним клієнтом
max-age. Дозвіл використання кеш документа протягом заданого часу в секундах
no-store. Сторінка містить приватні дані, зберігати в кеші не можна
# Кешування локальними клієнтами і використання протягом 1 години header ( "cache-control: private, max-age = 3600"); # Кешування усіма серверами на 1 годину header ( "Cache-Control: public"); header ( "Expires:". date ( "r", time () + 3600)); # Жорстку заборону кешування на всіх етапах header ( "Cache-Control: no-store, no-cache, must-revalidate"); header ( "Expires:". date ( "r"));
Тема Expires
echo gmdate ( "d, d m y h: i: s"). "gmt";
Можливе використання даного http заголовка для заборони кешування. Для цього необхідно вказати минулу дату. Іноді можна зустріти і таку комбінацію Expires: now
Тема Last-modified
Вказує дату останньої зміни документа. Дата повинна задаватися в тому ж форматі, що і у випадку з заголовком expires. Даний заголовок можна не використовувати для динамічних сторінок, так як багато серверів (наприклад, apache) для таких сторінок самі виставляють дату модифікації. При запиті це значення передається клієнтом в спеціальному заголовку запиту: If-Modified-Since. Оброблювач запиту може перевірити, чи змінився об'єкт, і якщо немає - повернути відповідь з порожнім тілом і кодом відповіді 304 Not Modified. Саме вміст сторінки не передається, і клієнт буде використовувати той вміст, який зберігається у нього в кеші. Можливо зробити сторінку завжди оновленою:
header ( "Last-modified:" .gmdate ( "d, d m y h: i: s"). "gmt");
заголовок Location
Тема дозволяє перенаправити браузер на інший url
Тема Content-type
Тема передає MIME тип повертається документа
Тема Content-length
Передає розмір документа, що повертається сервером
Тема Status
Передає серверу статус документа.
header ( "http / 1.0 200 Ok");