ブラウザでgoogle.comにアクセスすると、httpsサイトが自動的に読み込まれます。
Curl http://www.google.com を実行すると、リダイレクトを実行していた場合、301メッセージが表示されるはずです。しかし、代わりに、ページのコードを表示するように見えます。
これは、リダイレクトではなくhttpsへの書き換えを行っているということですか?
これは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がリダイレクトされます。
サーバーオペレーターに依存して正しいHTTPステータスコードを送信するため、オプションが制限されます。これは、発生が保証されていません。たとえば、多くのWebサイトは、カスタム404 Not Foundページで200 OK応答を返しますが、これは間違っています。
テストする最も簡単な方法は、ヘッダーのみを返すcurlの-Iオプションを使用することです。 curl -I http://www.example.com
は、HTTPステータスコードで始まる短い応答を表示します。サーバーオペレーターが正しく構成を行っている場合、3XXリダイレクト応答が返されるかどうかがわかります。
ここでのVaronの答えは、これがあなたの質問の例として使用したものであるGoogleのウェブサイトでなぜ起こっているのかを説明しています。ここでの私の答えは、どのサイトでも使用できるより一般的な応答ですが、ここでも、信頼できない正しい応答を提供するサーバーに依存しています。