Скриптовый язык PHP. Отправка HTTP заголовков. Сессий и cookies

Механизм отправки заголовков в 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 - Разрешение использования кешированного документа в течение заданного времени в секундах.

Expires.

"Expires: " HTTP-date

Устанавливает дату и время, после которого документ считается устаревшим.

Last-Modified.

"Last-Modified: " HTTP-date

Указывает дату последнего изменения документа. Дата должна задаваться в том же формате, что и в случае с заголовком Expires.

Location.

"Location:" абсолютный URL

Полезный заголовок, который перенаправляет броузер на указанный адрес.

По своей сути cookies - это обычные текстовые файлы, хранящиеся в специальной директории, используемой броузером (обычно эта папка называется Temporary Internet Files), и вы можете увидеть их, зайдя в эту директорию (быстрый доступ к ней для броузера IE осуществляется через пункты меню Сервис -> Свойства обозревателя -> Временные файлы Интернета -> Настройка -> Просмотр файлов).

Реализация механизма cookies представлена единственной функцией setcookie(). Как и в случае с HTTP заголовками, эта функция должна быть вызвана до отправки каких-либо данных удаленному клиенту, не допускаются даже "пустые" символы, то есть пробел, символы перевода строки и так далее.

Функция имеет следующий синтаксис:

setcookie(имя куки, значение, срок годности, информация о пути, домен, защищенность)

Любая сессия открывается с помощью функции session_start(), создающей специальный служебный файл с именем, соответствующим ID сессии, в который впоследствии будут записаны все данные, связанные с текущей сессией. Место размещения этих файлов зависит от настроек PHP. Так что если вы используете в своих скриптах сессии, не забывайте иногда подчищать директорию с этими временными файлами, так как там со временем может накопиться солидное количество ненужных файлов.

Также эта функция используется для продолжения текущей сессии. Таким образом, она должна быть вызвана на каждой странице, использующей данные текущей сессии.

В PHP предусмотрено два способа передачи ID сессии (сокращенно SID):

• Через метод GET.

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

http://server.com/main.php?PHPSESSID=bdd95bcd4e1e2ef5ec57fc83a69bba86

• Через Cookie.



Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: