Веб-разработка, логотип Eqsash

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

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

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

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:

foreach (getallheaders() as $name => $value) {
    echo "$name: $value\n";
}

Однако она работает не всегда, например, может возникнуть ошибка «Call to undefined function getallheaders()». Это означает, что функция не определена и необходимо использовать другие функции, либо обновить PHP. Перед использованием этой функции можно проверить существует ли она – функцией function_exists. Если никакая функция не сработает – можно выбрать все заголовки из массива $_SERVER, они помечаются префиксом «HTTP_».

Как видно из статьи, работать с HTTP заголовками довольно просто, для этого достаточно использовать специальные средства языка программирования PHP.

Оставить заявку

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

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