0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

httpヘッダーのhostが送信先のサーバのドメイン:ポートと異なっていたら301エラー。 httpヘッダーのhost削除、または、httpヘッダーのhostが送信先のサーバのドメイン:ポートしたら問題なかった。なぜ

Posted at

HTTPリクエストを送信する際、Hostヘッダーはリクエスト先のサーバを特定するために非常に重要です。サーバは、このHostヘッダーを見て、どのドメインに対するリクエストかを判断します。このため、Hostヘッダーがリクエスト先のサーバのドメインやポートと一致しない場合、サーバ側でリクエストを処理できないことがあり、その結果としてリダイレクト(301 Moved Permanently)が発生する場合があります。

あなたのケースでは、次のようなことが考えられます。

1. Hostヘッダーが送信先のサーバと一致していなかった理由

HTTPリクエストのHostヘッダーが送信先のドメインやポートと異なっている場合、サーバはそのリクエストがどのバーチャルホストに対して行われたのかを正しく判断できません。多くのウェブサーバ(Apache、NGINXなど)は、複数のドメインを1つのIPアドレスでホスティングすることができ、Hostヘッダーを使用して正しいリソースを選択します。Hostが誤っていると、サーバは期待するリソースにリダイレクトするために301を返すことがあります。

2. Hostヘッダーを削除または正しいものに変更した場合の動作

削除した場合:

Hostヘッダーがない場合、多くのサーバはデフォルトのホスト(通常はサーバ自体のデフォルト設定)で処理を試みますが、これは正しいリソースに到達することができないため、異なるリソースが返される可能性があります。ただし、サーバによっては、この処理が問題なく成功する場合もあります。

正しいHostを設定した場合:

Hostヘッダーを正しい送信先のサーバのドメインとポートに設定すると、サーバはそのドメインに対するリクエストとして正しく解釈でき、正しいリソースを返すことができます。このため、問題なく接続できたのでしょう。

301リダイレクトについて

301 Moved Permanentlyは、リソースが恒久的に別のURLに移動したことを示すステータスコードです。サーバは、リクエストされたリソースが新しい場所にあることをクライアントに伝えるために、Locationヘッダーを使って新しいURLを通知します。正しいHostが指定されていないと、サーバはリクエストを別のホストやURLにリダイレクトしようとすることがあります。

まとめ

Hostヘッダーが送信先のサーバのドメインやポートと一致しなかった場合、サーバはリクエストを正しく処理できず、リダイレクトやエラーが発生します。
正しいHostを指定するか、不要な場合には削除することで問題が解決されますが、Hostヘッダーが欠落している場合も一部のサーバはリクエストを処理できることがあります。
この挙動は、サーバの設定やアプリケーションの動作に依存する場合もあります。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?