Есть ли способ определить время работы сервера по http-ответу?
-
12-09-2019 - |
Вопрос
Я ищу способ узнать, как долго сервер был запущен, основываясь только на странице, которую он отправляет обратно.Например, если бы я перешел к www.google.com, есть ли какая-то переменная заголовка ответа, которая сообщает, как долго сервер, к которому я подключился, был запущен?Я сомневаюсь, что есть, но спросить никогда не помешает...
Решение
Нет, потому что HTTP, как протокол, на самом деле не имеет значения.В любом случае, 50 разных запросов к google.com могут оказаться на 50 разных серверах.
Если вам нужна эта информация, вам нужно встроить ее в приложение, что-то вроде "http://google.com/uptime" который предоставит Google представление о том, как долго он был запущен - Google, вероятно, сделает это в виде статической страницы, показывающей дату их создания :-).
Другие советы
Не с HTTP.
IT является возможно, однако, определить время безотказной работы на многих операционных системах путем опроса полученных TCP-пакетов.Посмотрите на RFC 1323 для получения дополнительной информации.Я полагаю, что заголовок метки времени увеличивается на некоторое значение с каждой транзакцией и сбрасывается до нуля при перезагрузке.
Предостережения:это работает не со всеми операционными системами, и вам приходится отслеживать серверы с течением времени, чтобы получать точные данные о времени безотказной работы.
Netcraft делает это:видишь здесь для расплывчатого описания:
"Время безотказной работы", представленное в этих отчетах, - это "время с момента последней перезагрузки" компьютера переднего плана или компьютеров, на которых размещен сайт.Мы можем обнаружить это, просмотрев данные , которые мы записываем при выборке сайта.Мы можем определить, как долго отвечающий компьютер (ы), на котором размещен веб-сайт работает, и, записывая эти выборки за длительный период времени, мы можем построить графики, которые показывают это в виде линии.Обратите внимание, что это не то же самое что и доступность сайта.
К сожалению, на самом деле это не так.Вы можете проверить это сами, запросив 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?prog=httphead&host=www.google.com
Теперь, если это ваш собственный сервер, вы можете создать скрипт, который будет сообщать о времени безотказной работы, но я не думаю, что это то, что вы искали.
В дополнение к тому, что сказал Pax, существует ряд сторонних сервисов, которые отслеживают время безотказной работы сайта, пытаясь получить доступ к ресурсам сервера через определенные промежутки времени.Они хранят некоторый объем истории в своих собственных базах данных, а затем сообщают вам, когда эти ресурсы недоступны.
Я использую Вечеринка в стиле Аптайм для мониторинга сервера.