Есть ли способ узнать время работы сервера по HTTP-ответу? - PullRequest
1 голос
/ 08 июня 2009

Я ищу способ узнать, как долго сервер работал, основываясь только на странице, которую он отправляет обратно. Например, если я зашел на www.google.com, есть ли какая-то переменная заголовка ответа, которая сообщает, как долго работал сервер, к которому я подключился? Я сомневаюсь, что есть, но никогда не больно спрашивать ...

Ответы [ 5 ]

4 голосов
/ 08 июня 2009

Нет, потому что HTTP, как протокол, на самом деле не волнует. В любом случае 50 разных запросов к google.com могут в конечном итоге оказаться на 50 разных серверах.

Если вам нужна эта информация, вам нужно встроить ее в приложение, что-то вроде "http://google.com/uptime", которое предоставит Google представление о том, как давно он работает - Google, вероятно, сделает это как статическую страницу, показывающую дата их создания: -).

3 голосов
/ 08 июня 2009

Не из HTTP.

Возможно , однако можно обнаружить время безотказной работы во многих ОС путем опроса полученных пакетов TCP. Смотрите RFC 1323 для получения дополнительной информации. Я считаю, что заголовок метки времени увеличивается на некоторое значение при каждой транзакции и сбрасывается до нуля при перезагрузке.

Предостережения: он работает не со всеми операционными системами, и вам нужно со временем отслеживать серверы, чтобы получать точные данные о времени безотказной работы.

Netcraft делает это: см. здесь для смутного описания:

Время безотказной работы, представленное в этих Отчеты "время с прошлого перезагрузка "внешнего компьютера или компьютеры, на которых размещен сайт. Мы может обнаружить это, посмотрев на данные что мы записываем, когда мы пробуем сайт. Мы можем определить, как долго отвечающий компьютер (ы), на котором размещен веб-сайт бегал, и записав эти образцы в течение длительного периода времени мы может построить графики, которые показывают это как линия. Обратите внимание, что это не то же самое как доступность сайта.

2 голосов
/ 08 июня 2009

К сожалению, там действительно нет. Вы можете убедиться в этом сами, запросив заголовки HTTP с рассматриваемого сервера. Например, с google.com вы получите:

HTTP/1.0 200 OK
Cache-Control: private, max-age=0
Date: Mon, 08 Jun 2009 03:08:11 GMT
Expires: -1
Content-Type: text/html; charset=UTF-8
Server: gws

Онлайн-инструмент для проверки заголовков HTTP:

http://network -tools.com / default.asp? Прог = httphead и хост = www.google.com

Теперь, если это ваш собственный сервер, вы можете создать скрипт, который будет сообщать о времени работы, но я не думаю, что это то, что вы искали.

0 голосов
/ 08 июня 2009

Я использую Uptime Party для мониторинга сервера.

0 голосов
/ 08 июня 2009

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

...