サーバーが返送するページのみに基づいて、サーバーが稼働している時間を確認する方法を探しています。たとえば、www.google.comにアクセスした場合、接続しているサーバーが稼働していた期間を示す何らかの応答ヘッダー変数はありますか?私はそこにあるとは思っていませんが、尋ねることを決して傷つけません...
5 に答える
いいえ、プロトコルとしてのHTTPは実際には気にしないためです。いずれにせよ、google.comへの50の異なるリクエストは、50の異なるサーバーで終わる可能性があります。
その情報が必要な場合は、「http://google.com/uptime」のようなアプリケーションに組み込む必要があります。これにより、稼働時間に関するGoogleのビューが表示されます。Googleはおそらくこれを静的ページとして表示します。それらの開始日:-)。
HTTP からではありません。
ただし、受信した TCP パケットを調査することで、多くの OS のアップタイムを検出することができます。詳細については、RFC 1323を参照してください。タイムスタンプ ヘッダーは、トランザクションごとに値が増加し、再起動時にゼロにリセットされると思います。
警告: すべての OS で動作するわけではありません。また、正確な稼働時間データを取得するには、サーバーを長期にわたって追跡する必要があります。
Netcraft はこれを行います:あいまいな説明については、こちらを参照してください:
これらのレポートに表示される「稼働時間」は、サイトをホストしているフロント エンド コンピューターまたはコンピューターの「前回の再起動からの時間」です。これは、サイトをサンプリングしたときに記録したデータを調べることで検出できます。Web サイトをホストしている応答コンピューターが実行されている時間を検出でき、これらのサンプルを長期間にわたって記録することで、これを線として示すグラフをプロットできます。これは、サイトの可用性とは異なることに注意してください。
残念ながら、実際にはありません。問題のサーバーから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 の発言に加えて、特定の間隔でサーバー リソースへのアクセスを試行することで、サイトのアップタイムを監視するサード パーティのサービスが多数存在します。それらは独自のデータベースにある程度の履歴を保持し、それらのリソースにアクセスできない場合に報告します。
サーバーの監視にUptime Partyを使用しています。