Главная » Полезные статьи » Язык PHP » PHP поддерживает реализацию механизма отправки заголовков HTTP.
Распечатать статью

PHP поддерживает реализацию механизма отправки заголовков HTTP.

Сначала скажем несколько слов о самих http заголовках.

В соответствии со спецификацией http, этот протокол поддерживает передачу служебной информации от сервера к броузеру, оформленной в виде специальных заголовков.

Таким образом, http headers — это средство общения сервера с удаленным клиентом. Каждый заголовок обычно состоит из одиночной линии ascii текста с именем и значением. Сами заголовки никак не отображаются в окне броузера, но зачастую могут сильно изменить отображение сопутствующего документа. 

Механизм отправки http заголовков в php.
Механизм отправки заголовков в php представлен функцией header(). Особенность протокола http заключается в том, что заголовок должен быть отправлен до посылки других данных, поэтому функция должна быть вызвана в самом начале документа и должна выглядеть следующим образом:

header(«http заголовок», необязательный параметр replace);

Опциональный параметр replace может принимать значения типа bool (true или false) и указывает на то, должен ли быть замещен предыдущий заголовок подобного типа, либо добавить данный заголовок к уже существующему.

В отношении функции header() часто применяется функция headers_sent(), которая в качестве результата возвращает true в случае успешной отправки заголовка и false в обратном случае.

Рассмотрим наиболее используемые http заголовки.

cache-control.
«cache-control: » значение

Заголовок управления кешированием страниц. Вообще, данная функция является одной из самых распространенных в использовании заголовков.

Данный заголовок может быть использован со следующими значениями:

no-cashe — Запрет кеширования. Используется в часто обновляемых страницах и страницах с динамическим содержанием. Его дейсвтие подобно meta тегу «pragma: no-cache».
public — Разрешение кеширования страницы как локальным клиентом, так и прокси-сервером.
private — Разрешение кеширования только локальным клиентом.
max-age — Разрешение использования кешированного документа в течение заданного времени в секундах.
header(«cache-control: private, max-age = 3600″) /* Кеширование локальными клиентами и использование в течение 1 часа */

expires.
«expires: » http-date

Устанавливает дату и время, после которого документ считается устаревшим. Дата должна указываться в следующем формате (на английском языке):

День недели (сокр.) число (2 цифры) Месяц (сокр.) год часы:минуты:секунды gmt

Например, fri, 09 jan 2002 12:00:00 gmt

Текущее время в этом формате возвращает функция gmdate() в следующем виде:

echo gmdate(«d, d m y h:i:s»).»gmt»;

Возможно использование данного http заголовка для запрета кеширования. Для этого необходимо указать прошедшую дату.

last-modified.
«last-modified: » http-date

Указывает дату последнего изменения документа. Дата должна задаваться в том же формате, что и в случае с заголовком expires. Данный заголовок можно не использовать для динамических страниц, так как многие серверы (например, apache) для таких страниц сами выставляют дату модификации.

Возможно сделать страницу всегда обновленной:

header(«last-modified: «.gmdate(«d, d m y h:i:s»).» gmt»);

location.
«location :» абсолютный url

Полезный заголовок, который перенаправляет броузер на указанный адрес. Его действие сравнимо с meta тегом refresh:

<meta http-equiv=»refresh» content=»0; url=someurl»>

Например, этот заголовок может быть использован так:

if ($login != $admin_login) header("location: http://www.server.com/login.php"); else header("location: http://www.server.com/admin.php?login=$login"); if (!headers_sent()) exit("Произошла ошибка! Пройдите <a href='http://www.server.com/login.php'>авторизацию</a> заново");

Мы разобрали конечно же не все http заголовки (на это нам несколько уроков не хватит), но рассмотрели наиболее полезные и самые используемые.

Источник: internet-technologies.ru

Вы можете оставить комментарий, или обратную ссылку на Ваш сайт.

Оставить комментарий

Похожие статьи