web-dev-qa-db-ja.com

Webサイトが書き換えまたはリダイレクトを使用しているかどうかを確認する方法は?

ブラウザでgoogle.comにアクセスすると、httpsサイトが自動的に読み込まれます。

Curl http://www.google.com を実行すると、リダイレクトを実行していた場合、301メッセージが表示されるはずです。しかし、代わりに、ページのコードを表示するように見えます。

これは、リダイレクトではなくhttpsへの書き換えを行っているということですか?

1
Tony

これはStrict Transport SecurityまたはHSTSとして知られている呼び出しです

Googleなどは、HTTP要求に対するHTTPS応答でハードコーディングされています。 Chromeブラウザで開くと:chrome://net-internals/#hstsヒントが表示されます:

HSTSはHTTPSの厳密なトランスポートセキュリティです:サイトが常にHTTPSを使用することを選択する方法

https://www.chromium.org/hsts へのリンク付き

セクションでは、プリロードされたHSTSサイトは、httpsのみで配信されるすべてのサイトの完全なリストです。 (このためのchrome-sourcecodeは https://code.google.com/p/chromium/codesearch#chromium/src/net/http/transport_security_state_static.json

さらに、ウィキペディアでHSTSについて読むことができます: https://en.wikipedia.org/wiki/HTTP_Strict_Transport_Security

したがって、できることは通常の301です。永続的に移動しますリダイレクトまたは(理論的にはオプションを完了するために)適切な引数がある場合は、すべてのブラウザーのコードベースでhttpsがリダイレクトされます。

1
Varon

サーバーオペレーターに依存して正しいHTTPステータスコードを送信するため、オプションが制限されます。これは、発生が保証されていません。たとえば、多くのWebサイトは、カスタム404 Not Foundページで200 OK応答を返しますが、これは間違っています。

テストする最も簡単な方法は、ヘッダーのみを返すcurlの-Iオプションを使用することです。 curl -I http://www.example.comは、HTTPステータスコードで始まる短い応答を表示します。サーバーオペレーターが正しく構成を行っている場合、3XXリダイレクト応答が返されるかどうかがわかります。

ここでのVaronの答えは、これがあなたの質問の例として使用したものであるGoogleのウェブサイトでなぜ起こっているのかを説明しています。ここでの私の答えは、どのサイトでも使用できるより一般的な応答ですが、ここでも、信頼できない正しい応答を提供するサーバーに依存しています。

1
Tom Brossman