Как мой браузер узнает, что ему нужно подключиться к порту 443 или порту 80?

Вот что я пытаюсь сделать:

  1. Откройте браузер и начните просматривать любой https-сайт, например Gmail или Google.com.

  2. Через Wireshark я вижу, что разрешение имени выполняется DNS сервер.

  3. Но после этого соединение устанавливается напрямую на порт 443 (начиная с TCP рукопожатия)

  4. Одна вещь, которую я не могу понять, это то, как браузер узнает, что ему нужно подключиться к порту 443, я пытался изучить пакет DNS, но он содержит только адрес назначения, и нет никакой информации, которая говорит о том, что ему нужно подключиться к порту 443.

  5. Даже если, скажем, браузер имеет приоритет при запросе в первый раз, он видит, что если порт 443 открыт, то подключитесь к нему или подключитесь к порту 80, но я не вижу такого поведения, если я подключаюсь к обычный веб-сайт HTTP, в том смысле, что если я захожу на обычный HTTP-сайт, нет потока трафика из браузера, что указывает на то, что он сначала искал порт 443, а затем перешел на порт 80.

Я уверен, что мне здесь чего-то не хватает, но не уверен, что именно.


person hsengiv86    schedule 28.03.2015    source источник


Ответы (2)


Об этом говорит наличие https: в URL-адресе.

person user207421    schedule 28.03.2015
comment
Нет, мой вопрос заключался в том, как браузер узнает, что ему нужно отправить данные на порт 443 (https) - person hsengiv86; 29.03.2015
comment
Вы сказали ему перейти по URL-адресу HTTPS. Вы так сказали. Когда он видит https:, он знает, что номер порта по умолчанию — 443. Или же вы перешли к http:google.com и получили перенаправление HTTP, но вы не сказали, что видели это в анализе пакетов. - person user207421; 29.03.2015
comment
Извините, я думаю, что не объяснил должным образом, что я пытался сделать, так это в браузере Chrome, я просто набрал dropbox.com, и это привело меня прямо к https-версии dropbox, и когда я обнюхиваю пакеты, Я не вижу никаких перенаправлений, поэтому я не уверен, как браузер узнает, что ему нужно перевести меня на https-версию dropbox вместо http-версии dropbox. - person hsengiv86; 29.03.2015
comment
хм, при гуглении я обнаружил en.wikipedia.org/wiki/HTTP_Strict_Transport_Security, но интересно, где они держат вкладку на веб-сайте https, я почти уверен, что он не хранится где-то локально, поэтому для получения списка должен произойти какой-то поток пакетов, но этого не происходит. - person hsengiv86; 29.03.2015
comment
HSTS позволяет серверу указать период времени, в течение которого должна применяться политика. Если ваш браузер посещал Dropbox ранее и получил заголовок Strict-Transport-Security, указывающий такой временной интервал, и вы все еще находитесь в этом временном интервале, любой последующий HTTP-запрос, который ваш браузер отправляет в Dropbox, автоматически обновляется до HTTPS. Это ясно объяснено в предоставленной вами ссылке. - person Remy Lebeau; 29.03.2015
comment
Спасибо, Реми, моя ошибка, я не прочитал ее полностью, позвольте мне очистить кеш и попробовать - person hsengiv86; 30.03.2015
comment
@RemyLebeau Но как браузер вначале узнает, следует ли ему подключаться к порту 80 или 443? - person Ravi Raj; 19.11.2020
comment
@RaviRaj, если браузер никогда раньше не посещал данный сайт или не отслеживает для него какую-либо информацию HSTS, тогда он просто не знает, использует ли этот сайт HTTP или HTTPS. Таким образом, если URL-адрес введен без http: или https: или явного указания порта, у браузера нет другого выбора, кроме как просто попробовать обе схемы и посмотреть, какая из них работает. В настоящее время HTTPS очень распространен, поэтому браузер, скорее всего, сначала попробует его, а затем при необходимости переключится на HTTP. - person Remy Lebeau; 19.11.2020

Браузер (клиент) использует HTTP или HTTPS в адресе, чтобы определить, какой порт использовать... Однако сервер можно настроить на требование HTTPS и переключение/перенаправление соединения HTTP-порта 80 на HTTPS-порт 443 с шифрованием и сертификатом. . Таким образом, если браузер подключается к серверу через HTTP-порт 80, сервер может немедленно переключить/перенаправить соединение на HTTPS-порт 443. Сервер может быть даже настроен наоборот, чтобы переключить/перенаправить соединение с HTTPS-порта 443 на HTTP. порт 80.

person DVOPS    schedule 03.12.2020