Механизм отправки заголовков в 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.