Используют ли веб-браузеры разные номера портов для открытых вкладок? - PullRequest
16 голосов
/ 09 июля 2011

Мне интересно, как внутренне работают браузеры. Теперь подключение к разным веб-сайтам с помощью «вкладок» в одном и том же браузере можно выполнить одним из двух способов: 1 - Использование потоков 2 - Использование разных номеров портов источника для каждой открытой вкладки

Я знаю, что на этот вопрос не может быть единого ответа, и он может отличаться в разных браузерах, однако все ответы приветствуются.

Спасибо


Спасибо всем. Я действительно ценю это. Мой вопрос относится к порту источника на стороне клиента. Я спрашиваю, использует ли браузер разные исходные порты для каждой открываемой вкладки или один и тот же исходный порт для всего процесса «Я имею в виду окно, которое включает в себя разные вкладки», или один и тот же исходный порт для всех окон?

Или веб-браузеры используют потоки?

Ответы [ 5 ]

15 голосов
/ 09 июля 2011

Потоки и порты - это отдельные и в основном не связанные понятия.

Потоки - это то, что процессор локального компьютера делает для обработки вычислений, таких как рисование на экране или ожидание интернет-трафика.Вероятно, есть отдельный поток (и более) для этих операций в каждой вкладке.

Порты - это то, чем определяется сам трафик (в TCP и UDP).Для связи ваш браузер откроет локальный порт (обычно такой большой, как ~ 5000, и это не имеет значения, если он уникален) и подключится к серверу обычно через порт 80 (тот, который слушает сервер).Если ваш компьютер не знает удаленного порта, он не может подключиться, но стандартно использовать, например, 80 для HTTP.

Браузеры открывают вкладки в отдельных потоках (и новые даже в отдельных процессах для безопасности).и причины надежности), и использовать отдельные порты на стороне клиента.Так что да, ответ - и потоки, и порты.Они всегда используют один и тот же удаленный порт, если физически не указано иное (например, при подключении к веб-сайту с использованием https: // вместо http: // используется отдельный порт, поскольку именно так был создан этот протокол).Вы можете указать порт для использования в современных браузерах с: # после имени тоже.(пример: http://www.google.com:81/, однако это не удастся, потому что это не тот порт, который они слушают!)

4 голосов
/ 09 июля 2011

Быстрая проверка с использованием netstat (или sockstat на машинах BSD) показывает, что для разных соединений используются разные номера портов источника.В этом отношении вы правы.

Firefox использует хотя бы один поток для каждой вкладки.Каждый поток может открывать несколько соединений для разных данных (например, загрузка изображений с медиа-сервера и контента с веб-сервера).Каждое соединение должно иметь свой собственный порт источника.

0 голосов
/ 09 июля 2011

Вы имеете в виду TCP-порты?Нет, браузеры используют один и тот же порт, обычно 80 или 443. (для HTTPS).

HTTP - это протокол без сохранения состояния: браузер открывает соединение, загружает страницу, а затем закрывает ее.Это не держит связь.Если вы загружаете более 1 страницы, он создает потоки для каждого (обычно Chrome создает процессы), но как только страница загружается, соединение закрывается.

AJAX открывает новое соединение для каждого запроса и закрывает еговпоследствии.

Некоторые хаки имеют постоянное соединение HTTP (см. COMET), но поскольку браузер запускает несколько потоков / процессов, они обычно не конфликтуют.

0 голосов
/ 09 июля 2011

нет!обычно он использует порт 80 по умолчанию, если не указано иное.например www.someweb.com:8080.

Вкладки в браузере, я предполагаю, работали в разных потоках

0 голосов
/ 09 июля 2011

В зависимости от браузера он использует разные потоки или разные процессы для каждой вкладки.Используемые локальные порты, вероятно, не имеют ничего общего с различными вкладками.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...