なぜ IP アドレスでは Web サイトにアクセスできず、サイト名でしかアクセスできないのでしょうか。これはよくあることでしょうか?

なぜ IP アドレスでは Web サイトにアクセスできず、サイト名でしかアクセスできないのでしょうか。これはよくあることでしょうか?

ウェブサイトを持っていますhttp://waycoolblog.comしかし、IPアドレスからアクセスすることはできません http://74.220.219.56/

なぜこうなった?

私の主な疑問は、これが一般的なことかどうかです。私のアプリでは、サイト名を自分で解決し、サイト名ではなく IP アドレスで接続しようとしています。

これが正しく動作するか確認したいです。

答え1

実行しているサーバーはわかりませんが、IIS にはホスト ヘッダー マッピング機能があります。

これにより、同じ IP アドレスから複数の Web サイトを実行できるようになりますが、Web サイトのドメイン名を「Host」http リクエスト ヘッダーとして提供する必要があります。サーバーはこのヘッダーを照会し、適切なサイトからコンテンツを提供します。

IP アドレス経由で受信されるリクエストには、ホスト ヘッダーとして「waycoolblog.com」は含まれません。サーバーが複数の Web サイトをホストしている場合、そのサイトが「デフォルト」ではない可能性があり、サーバーはサイトを提供しません。

答え2

あなたのサイトが稼働しているサーバーはホスト名ベースのVirtualHosting?

答え3

ホスト名前ベースの仮想ホスティングは非常に一般的です。これがなければ、IP アドレスの不足はもっと深刻になります。どのように動作するのでしょうか? HTTP/1.1 クライアントは、Hostどのホストが関心の対象であったかを示すヘッダーをリクエストの一部として渡し (waycoolblog.comこの場合は)、HTTP サーバーはそれに基づいてどのコンテンツ セットを提供するかを判断します。これにより、同じ IP アドレスでさまざまなホスト名のコンテンツを提供できるようになり、ホスティングのコストを大幅に削減できます。これは、すべての実稼働レベルの標準 Web サーバー ソフトウェア システムの機能でもあります。Apache はこれを実行し、IIS や、研究用ではない私の知る他のすべてのシステムも実行します。

修正方法は、Host接続を行っているクライアント コードでヘッダーを正しく渡すことです。そうすれば、すべてが Just Work TMするはずです。

関連情報