Как отправить или получить HTTP заголовки запроса (браузера или другого клиента) на PHP
HTTP заголовки отправляются практически всегда, при каждом запросе любой веб-страницы. Они позволяют сообщить браузеру или другому клиенту информацию о выдаваемом контенте, могут содержать ряд настроек. Известно, что заголовки бывают двух типов:
- request headers - заголовки запроса, посылаются клиентом (браузером) на сервер;
- response headers - заголовки ответа, посылаются сервером клиенту (в браузер).
В этой статье рассматриваются заголовки первого типа - заголовки запроса.
Как отправить HTTP заголовки запроса
Это можно сделать, если используется свой клиент для запроса на сервер. Например, это может быть простой запрос при помощи библиотеки CURL:
if ($curl = curl_init('https://example.com')) {
$headers = array(
'Content-type: application/json',
'Content-length: 0',
);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($curl);
curl_close($curl);
return $response;
}
Также надо сказать, что у библиотеки CURL есть свои предопределенные константы, которые читаются сервером как заголовки. Например, можно отправить HTTP заголовок User-Agent или другие при помощи подобного кода:
curl_setopt($curl, CURLOPT_USERAGENT, 'User-Agent: Mozilla/4.0 (compatible; MSIE 5.01; Widows NT)');
Как получить HTTP заголовки запроса
Получить заголовки может понадобиться для разных целей, для этого используются специальные возможности языков программирования. Для получения заголовков в PHP есть несколько функций. Ниже приводятся функции для получения заголовков на PHP:
- getallheaders - возвращает все заголовки HTTP-запроса;
- apache_request_headers - получает список всех заголовков HTTP-запроса.
Для получения заголовков можно использовать любую функцию. Часто применяется функция getallheaders:
foreach (getallheaders() as $name => $value) {
echo "$name: $value\n";
}
Однако она работает не всегда, например, может возникнуть ошибка «Call to undefined function getallheaders()». Это означает, что функция не определена и необходимо использовать другие функции, либо обновить PHP. Перед использованием этой функции можно проверить существует ли она – функцией function_exists. Если никакая функция не сработает – можно выбрать все заголовки из массива $_SERVER, они помечаются префиксом «HTTP_».
Как видно из статьи, работать с HTTP заголовками довольно просто, для этого достаточно использовать специальные средства языка программирования PHP.
Последние статьи
- ИТ / Разное 08.07.21 Как бесплатно сделать перевод для сайта без API, перевод документов в Google Translate
- ИТ / Разное 06.07.21 Как сделать кнопку подписки на сайте, базу подписчиков и автоматическую рассылку
- Еда / Разное 06.07.21 Как быстро приготовить вкусные жаренные пирожки с картошкой и луком
- ИТ / Разное 04.07.21 Кэширование - создание, загрузка и сброс. Где хранить кэш, способы и виды кэширования
- ИТ / Базы данных 03.07.21 Свой NoSQL - хранение данных в файлах и не только в базе данных. Хранение настроек, небольших данных и файлов кеширования