Вход Регистрация
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 стр.