web-dev-qa-db-ja.com

Webブラウザは開いているタブに異なるポート番号を使用しますか?

ブラウザが内部でどのように機能するのか疑問に思っています。現在、同じブラウザ内で「タブ」を使用して異なるWebサイトに接続するには、次の2つの方法のいずれかで処理できます。1-スレッドを使用する2-開いているタブごとに異なる送信元ポート番号を使用する

この質問に対する回答は1つではなく、ブラウザごとに異なる可能性があることは承知していますが、すべての回答を歓迎します。

ありがとう


みなさん、ありがとうございました。本当に感謝しています。私の質問は、クライアント側の送信元ポートに関するものです。ブラウザが開くタブごとに異なる送信元ポートを使用するのか、プロセス全体で同じ送信元ポートを使用するのか、「異なるタブを含むウィンドウを意味する」、またはウィンドウ全体で同じ送信元ポートを使用するのかを尋ねています。

または、Webブラウザはスレッドを使用しますか?

16

スレッドとポートは別個のものであり、ほとんど関係のない概念です。

スレッドは、ローカルコンピュータのプロセッサが、画面への描画やインターネットトラフィックの待機などの計算を処理するために行うことです。各タブのこれらの操作には、おそらく個別のスレッド(およびそれ以上)があります。

ポートは、トラフィック自体が(TCPおよびUDP)で)識別されるものです。ブラウザと通信するために、ローカルポート(通常は〜5000のような大きなものであり、それは問題ではありません)を開きます。一意である限り)、通常はポート80(サーバーがリッスンしているポート)でサーバーに接続します。コンピューターがリモートポートを認識していない場合は接続できませんが、HTTPに80を使用する標準です。例えば。

ブラウザは別々のスレッドでタブを開き(セキュリティと信頼性の理由から別々のプロセスでも新しいタブを開きます)、クライアント側で別々のポートを使用します。そうです、答えはスレッドとポートの両方です。物理的に指定しない限り、常に同じリモートポートを使用します(たとえば、http://ではなくhttps://を使用してWebサイトに接続すると、そのプロトコルが作成されたため、別のポートが使用されます)。最近のブラウザで使用するポートを、名前の後に:#を付けて指定することもできます。 (例: http://www.google.com:81/ ただし、それは彼らがリッスンするポートではないため失敗します!)

15
Ribose

netstat(またはBSDマシンではsockstat)を使用して簡単に確認すると、接続ごとに異なる送信元ポート番号が使用されていることがわかります。その点で、あなたは正しいです。

Firefoxは、タブごとに少なくとも1つのスレッドを使用します。各スレッドは、異なるデータに対して複数の接続を開くことができます(たとえば、メディアサーバーからの画像の読み込みやWebサーバーからのコンテンツの読み込み)。各接続には、独自の送信元ポートが必要です。

5
vinod

ブラウザに応じて、タブごとに異なるスレッドまたは異なるプロセスを使用します。使用されるローカルポートは、おそらく異なるタブとはあまり関係がありません。

0
Abdullah Jibaly