Заголовки HTTP через PHP

Для тех, кто только начинает изучать PHP - заголовки HTTP явля.тся каким-то туманом, который почему-то не особо приятный...давайте его рассеивать...

Вообще нужно сказать, что заголовки HTTP используются для общения между браузером и веб-сервером. То есть один говорить в каком формате принимает, другой в каком передает.

В PHP для передачи заголовков используется функция header() - основное внимание ей.

void header ( string string [, bool replace [, int http_response_code]] )

!!! - главное - перед этой функцией(то есть перед отправкой заголовков) - не должно стоять ни пробелов, ни других html тегов, иначе будет ошибка!

1) Вообще их можно узнать через функцию: var_dump(getallheaders());

Узнать операционку пользователя и версию браузера можно так:

$headers = getallheaders();
echo $headers['User-Agent'];

Но чаще пользуются суперглобальным массивом $_SERVER для этих нужд.

2) А узнать то, что отправили можно так, через функцию headers_list():

header("Человек: это звучит гордо!");
var_dump(headers_list());

 

Как использовать

1) Для переадрессации на другой сайт. Вы скорее всего видели в своей жизни неоднократно, заходишь на свой сайт, а он перекидывает тебя на другой, так вот это и есть применение заголовков таким образом:

header( 'Location: http://saitsozdanie.ru/' );

или перекинь меня пожалуйста, через 5 секунд после захода:

header( 'Refresh: 5; url=http://saitsozdanie.ru/' );  (то же самое но с помощью html тегов <meta http-equiv="refresh" content="5;http://saitsozdanie.ru/ />)

2) Для установки кодировки сайта:

header('Content-Type: text/html; charset=utf-8');

или тоже самое html тегом:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

Основная боязнь у новичков - именно от незнания, то в одном виде видят, то в другом. Так вот знайте, что можно и так и так! Все должно стать легче!)

3) Для отработки ошибок:

//Страница выполнена корректно
header( 'HTTP/1.1 200 OK' );
//Запрашиваемая страница не найдена
header( 'HTTP/1.1 404 Not Found' );
//Доступ запрещен:
header( 'HTTP/1.1 403 Forbidden' );
//Страница перемещена навсегда.
//Используется для корректировки урлов поисковых серверов.
header( 'HTTP/1.1 301 Moved Permanently' );
//Сервер выполнил скрипт с ошибкой
header( 'HTTP/1.1 500 Internal Server Error' );

4) Установка типа контента - что мы передаем рисунок - это одно, если pdf файл - то другой заголовок и тд:

header('Content-Type: text/plain'); // plain text файл
header('Content-Type: image/jpeg'); // JPG картинка в формате
header('Content-Type: audio/mpeg'); // Audio MPEG (MP3,...) файл
header('Content-Type: application/x-shockwave-flash'); // Flash animation

5) Когда последний раз изменялось содержимое контента:

header( 'Last-Modified: '.gmdate( 'D, d M Y H:i:s', ( time() - 60 ) ).' GMT' );

6) Заголовок на PHP для отключения кэширования:

header( 'Cache-Control: no-cache, no-store, max-age=0, must-revalidate' );
header( 'Expires: Mon, 1 Apr 2001 01:02:03 GMT' );
header( 'Pragma: no-cache' );

7) Задаем язык:

header( 'Content-language: en' ); // en = English

 

Также заголовки используются:

  • для задания куки;

 

 

 

Добавить комментарий


Защитный код
Обновить

Вы здесь: Сайтостроение Создание сайта Php Заголовки HTTP через PHP