Вход Регистрация
ruen

Как отправить или получить HTTP заголовки запроса (браузера или другого клиента) на PHP

HTTP заголовки отправляются практически всегда, при каждом запросе любой веб-страницы. Они позволяют сообщить браузеру или другому клиенту информацию о выдаваемом контенте, могут содержать ряд настроек. Известно, что заголовки бывают двух типов:

  • request headers - заголовки запроса, посылаются клиентом (браузером) на сервер;
  • response headers - заголовки ответа, посылаются сервером клиенту (в браузер).

В этой статье рассматриваются заголовки первого типа - заголовки запроса.

send-receive-delete-http-request-headers-php

Как отправить 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.

Комментарии (0)
Для комментирования войдите или зарегистрируйтесь.
Оставить заявку

Последние статьи

Популярные разделы

Eqsash (Инструменты)

Приложение для Android - VK LAST USER ID, отучитель от зависимости и т.д.:
Доступно в Google Play

Amessage (Общение)

Вход в веб-версию
Приложение для Android:
Доступно в Google Play

Поделиться

Подписаться

YouTube

Книги

IT-заметки - Простым языком о самом нужном (HTML, CSS, JavaScript, PHP, базы данных, Drupal, Битрикс, SEO, домены, безопасность и другое), PDF, 500 стр.