Отображать HTTP-ответ на веб-странице с помощью PHP - PullRequest
3 голосов
/ 21 декабря 2011

Я собираюсь собрать сайт, который отображает полные Заголовки HTTP-запросов и Заголовки HTTP-ответов для загрузки самой страницы. Например. Если кто-то просматривает http://example.com/index.php, я хочу отобразить следующее:

HTTP-запрос
GET /index.php HTTP / 1.1
Хост: example.com
Пользователь-агент: Mozilla / 5.0 (Windows; U; Windows NT 6.1; en-US; rv: 1.9.2.16) Gecko / 20110319 Firefox / 3.6.16
Принять: текст / html, приложение / xhtml + xml, приложение / xml; q = 0,9, / ; q = 0,8
Accept-Language: en-us, en; q = 0,5
Accept-Encoding: gzip, deflate
Accept-Charset: ISO-8859-1, utf-8; q = 0,7, *; q = 0,7
Keep-Alive: 115
Подключение: keep-alive

HTTP-ответ
HTTP / 1.1 200 OK
Дата: понедельник, 21 декабря 2011 г. 10:20:46 GMT
Сервер: Apache / 2.2.15 (Red Hat)
X-Powered-By: PHP / 5.3.3
Длина контента: 1169
Подключение: закрыть
Content-Type: text / html; кодировка = UTF-8

Нам удалось довольно просто отобразить заголовок запроса, используя следующий код PHP:

print $_SERVER['REQUEST_METHOD']." ".$_SERVER['REQUEST_URI']." ".$_SERVER['SERVER_PROTOCOL']."<br>";
foreach (apache_request_headers() as $name => $value)
        echo "$name: $value<br>";

Но возникают проблемы с заголовком HTTP-ответа. У кого-нибудь есть идеи, как мы можем это сделать? Это не обязательно должен быть PHP, если у вас есть метод, который работает в Perle, CGI или чем-то еще.

Для ясности, я не имею в виду устанавливать HTTP-ответ на что-то конкретное, только отображать ответ, который обслуживает веб-сервер для загрузки страницы.

Ответы [ 4 ]

3 голосов
/ 21 декабря 2011

Вы хотите использовать headers_list ()

http://www.php.net/manual/en/function.headers-list.php

headers_list () вернет список заголовков для отправки в браузер / клиент. Чтобы определить, были ли отправлены эти заголовки, используйте headers_sent ().

2 голосов
/ 21 декабря 2011

Ну, вот в чем проблема, заголовок ответа генерируется после того, как PHP (или любой серверный язык в этом отношении) уже завершил свою работу.

Говоря по-английски, это похоже на то, как почтальон вручает вам письмо, а вы просите его объяснить, как прошел процесс вручения вам письма. Вероятно, он просто будет тупо смотреть на тебя.

Для выполнения этой задачи вам потребуется клиентский язык (например, JavaScript).

1 голос
/ 12 февраля 2014

Используйте PHP для получения заголовков, отправляемых на веб-сервер.

http://www.php.net/manual/en/function.apache-request-headers.php

Используйте JavaScript для получения заголовков, отправленных веб-сервером. Я бы предложил использовать для этого jQuery.

http://api.jquery.com/jQuery.ajax/#jqXHR

Таким образом, вы уверены, что вы получите все заголовки, полученные либо веб-сервером, либо браузером.

0 голосов
/ 21 декабря 2011

Проверьте get_headers в PHP Manual

...