maxidebox@list.ru | +7 (929) 701 21 71
Как получить HTTP заголовки сервера?

Как получить HTTP заголовки сервера?

Немного вступления, перед тем как говорить об основной теме. Как известно согласно протоколу HTTP передача данных происходит посредством отправки специальных служебных заголовков. Привычная схема клиент-серверного взаимодействия, это когда клиент – отправляет запрос, сервер возвращает ответ. Давайте рассмотрим пример, как можно просмотреть возвращаемые HTTP заголовки сервера, при запросе. Для этих целей удобно воспользоваться cURL.

В PHP (начиная от версии 4.0.2) есть поддержка библиотеки функций libcurl, которая позволяет организовать взаимодействие с различными серверами, по разным протоколам, с синтаксисом URL. На данный момент, библиотека поддерживает такие протоколы как: http, https, ftp, gopher, telnet, dict, file, и ldap. Кроме того, умеет работать с сертификатами HTTPS, отправлять POST и PUT запросы на HTTP сервера, выполнять передачу файлов по протоколу HTTP и FTP (здесь нужен так же будет модуль FTP), работать с прокси-серверами, cookies и аутентификации пользователей. Рассмотрим простой пример отправки запроса, и получения HTTP-заголовков с сервера, посредством использования cURL.

	
<?php
if($curl = curl_init()) {
    curl_setopt($curl,CURLOPT_URL,'http://proweb63.ru');
    curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);
    curl_setopt($curl,CURLOPT_NOBODY,true);
    curl_setopt($curl,CURLOPT_HEADER,true);

    $out = curl_exec($curl);
    echo $out;
    curl_close($curl);
}
?>		
	

Первым делом необходимо инициализировать сеанс cURL, выполняет это функция curl_init, в качестве результата она возвращает дескриптор, с которым будут работать функции curl_setopt(), curl_exec, curl_close().

Параметры сеанса задаются с помощью функции curl_setopt:

  • CURLOPT_URL = «http://proweb63.ru» — URL сайта, куда отправляем запрос
  • CURLOPT_RETURNTRANSFER = true — Вернуть ответ, не выводя в браузер
  • CURLOPT_NOBODY = true — Не отправлять содержимое самого документа
  • CURLOPT_HEADER = true — Отправить HTTP-заголовки в ответе

После того как основные параметры заданы, мы выполняем запрос посредством функции curl_exec(), а результат записываем и выводим через переменную $out. После этого необходимо закрыть дескриптор соединения, делается это с помощью функции curl_close().

О том, где можно использовать возможности cURL можно долго рассказывать, т.к. задач по реализации взаимодействия двух серверных приложений просто большое количество. Просто знайте, такая возможность есть, и Вы можете воспользоваться ею тогда, когда в этом возникнет необходимость.

Голосов: 406 | Просмотров: 808