Правильні 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");