Метод head
Метод head класса Http выполняет HTTP HEAD-запрос к указанному URL. HEAD-запрос аналогичен GET, но сервер возвращает только заголовки ответа без тела. Это полезно для проверки доступности ресурса, получения метаданных (размер, тип контента, дата модификации) или проверки существования файла без его загрузки. Метод принимает первым параметром строку URL, вторым - массив заголовков.
Синтаксис
<?php
use IlluminateSupportFacadesHttp;
$response = Http::head($url, $headers);
?>
Пример
Давайте выполним простой HEAD-запрос к публичному API и выведем статус ответа:
<?php
use IlluminateSupportFacadesHttp;
$res = Http::head('https://api.example.com/users');
echo 'Status: ' . $res->status();
?>
Результат выполнения кода:
"Status: 200"
Пример
Давайте получим заголовки ответа и проверим тип содержимого:
<?php
use IlluminateSupportFacadesHttp;
$res = Http::head('https://api.example.com/document.pdf');
$contentType = $res->header('Content-Type');
$contentLength = $res->header('Content-Length');
echo 'Content-Type: ' . $contentType;
echo 'Content-Length: ' . $contentLength;
?>
Результат выполнения кода:
"Content-Type: application/pdf"
"Content-Length: 1048576"
Пример
Давайте выполним HEAD-запрос с кастомными заголовками для авторизации:
<?php
use IlluminateSupportFacadesHttp;
$res = Http::withHeaders([
'Authorization' => 'Bearer token123',
'Accept' => 'application/json'
])->head('https://api.example.com/private/resource');
if ($res->successful()) {
echo 'Resource exists';
} else {
echo 'Resource not found or inaccessible';
}
?>
Результат выполнения кода:
"Resource exists"
Пример
Давайте проверим, существует ли файл на удалённом сервере, проверяя код ответа:
<?php
use IlluminateSupportFacadesHttp;
$url = 'https://example.com/image.jpg';
$res = Http::head($url);
if ($res->status() === 200) {
echo 'File exists';
} else if ($res->status() === 404) {
echo 'File not found';
} else {
echo 'Server returned: ' . $res->status();
}
?>
Результат выполнения кода:
"File exists"
Пример
Давайте получим дату последней модификации ресурса из заголовков:
<?php
use IlluminateSupportFacadesHttp;
$res = Http::head('https://api.example.com/resource');
$lastModified = $res->header('Last-Modified');
if ($lastModified) {
echo 'Last modified: ' . $lastModified;
} else {
echo 'Last-Modified header not found';
}
?>
Результат выполнения кода:
"Last modified: Wed, 21 Oct 2025 07:28:00 GMT"