web-dev-qa-db-ja.com

HTTPプロトコルの使用中にポート番号を指定する必要があるのはなぜですか?

HTTPプロトコルを使用している場合でも、IPアドレスでポート番号を指定する必要があるのはなぜですか?例えば ​​- http://xyz:8080...-これはどういう意味ですか? HTTPを使用している間、リクエストがポート80で提供されることはすでにわかっています。そこで、なぜポートを明示的に指定するのですか?

9
unmesh_swar

HTTPのデフォルトポートは80、HTTPSは443ですが、ポート番号の範囲は0〜65535です。ほとんどのWebサーバーはデフォルトポートでリッスンするため、ポートなしでURLを参照する方が簡単です。たとえば、ポート80がデフォルトのポートであるため、http://www.cnn.com/http://www.cnn.com:80/と同じリソースを参照します。 HTTP/HTTPSサービスがデフォルトのポート以外の場合、URLでポートを指定する必要があります。

URLは RFC 1738 によって定義され、ポートを含む次の簡略化された構文を使用します。

<scheme>://<Host>:<port>/<url-path>

したがって、たとえば、URL http://xyz:8080/...は、HTTPをプロトコルとして使用してポート8080をリッスンするホストマシン名またはIPアドレスを参照します。次に、そのアドレスのHTTP(またはWeb)サーバーがurl-pathを特定のサービスまたはファイルに解決します。

特定のスキームまたはプロトコルのデフォルトのポートである場合、ポートはオプションです(例:HTTP = 80)。

特定のマシンは、異なるポートからのHTTPサービスを使用して複数の異なる製品をホストできます。たとえば、Apache Webサーバーは特定のサーバーのポート80をリッスンしているのに対し、Apache Tomcatは同じマシンのポート8080をリッスンしています。さまざまなデータベースおよびメッセージング製品は、通常、異なるポートにHTTPサービスを備えています。 ポートは、クライアントが特定のサービスを参照できるアドレスの一部です

10
JasonM1

ポートはある意味で「チャネル」のようなものです...同じWebサイトのさまざまな機能にアクセスする必要がある場合は、さまざまなポートを使用します。 HTTPはポート80、HTTPSは443、SSHは22などです。

2
Simon