2011-12-21 1 views
3

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

HTTP Request
GET /index.php HTTP/1.1
Узел: example.com
User-Agent: Mozilla/5.0 (Windows, Windows NT 6.1, en-US; rv: 1.9.2.16) Gecko/20110319 Firefox/3.6.16
Принять: текст/html, application/xhtml + xml, application/xml; q = 0.9, /; q = 0,8
Accept-язык: en-us, en; q = 0,5
Accept-Encoding: GZIP, выкачать
Accept-Charset: ISO-8859-1, UTF-8; д = 0,7, *; д = 0,7
Keep-Alive: 115
Connection: Keep-живым

HTTP Response
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 Response. У кого-нибудь есть идеи, как мы можем это сделать? Он не должен быть PHP, если у вас есть метод, который работает в Perle или CGI или что-то еще.

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

+0

Зачем вам это нужно? –

+0

Ahh, у меня была конечная цель страницы в исходном комментарии, но она была ошибочной, когда я впервые попробовал публикацию, забыл повторно включить ее. Конечной целью страницы является сидеть на веб-серверах за балансирами нагрузки, чтобы мы могли видеть/тестировать/тренировать, как балансировка нагрузки влияет на HTTP-потоки. – Eddie

+0

Можете ли вы использовать Javascript для отображения этой информации, вам будет намного проще. –

ответ

2

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

Чтобы разместить его на английском языке, как человек, передающий вам письмо, и вы просите его объяснить, как прошел процесс передачи вам письма. Вероятно, он просто посмотрит на тебя глупо.

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

0

Заканчивать get_headers in PHP Manual

+1

Это не даст вам заголовков для просматриваемой страницы. PHP не будет знать, что это такое, поскольку некоторые из них происходят из Apache. – ceejayoz

3

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

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

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

+0

+1, но он не будет полным набором. –

+0

@ TomalakGeret'kal Fair. Интересно, достаточно ли обертывания всего в выходном буфере, чтобы захватить полные заголовки перед их отправкой. Кажется довольно запутанным, но я думаю, это может сработать. – MetalFrog

+0

Что будет «Content-Length»? –

1

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

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

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

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

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

 Смежные вопросы

  • Нет связанных вопросов^_^