Почему порт 80 был выбран в качестве порта HTTP по умолчанию, а порт 443 - в качестве порта HTTPS по умолчанию?
Есть ли причина или это было определено именно так?
Почему порт 80 был выбран в качестве порта HTTP по умолчанию, а порт 443 - в качестве порта HTTPS по умолчанию?
Есть ли причина или это было определено именно так?
Управление по присвоению номеров в Интернете (IANA) является подразделением ICANN, некоммерческой частной американской корпорации, которая осуществляет надзор за глобальным распределением IP-адресов, системой доменных имен (DNS), известными портами и другими символами и номерами, связанными с протоколом Интернета.
В марте 1990 года они опубликовали документ RFC1060, в котором перечислены известные порты того времени. В этом списке не было протокола, назначенного на порт 80. Это пошло с 79 до 81:
79 FINGER Finger
81 HOSTS2-NS HOSTS2 Name Server
Итак, в то время порт 80 был официально свободен.
В 1991 году Тим Бернерс-Ли выпустил первую версию HTTP в документе о HTTP 0.9, где он заявил:
If the port number is not specified, 80 is always assumed for HTTP.
Затем в июле 1992 года был опубликован RFC 1340, который устарел RFC 1060, где появляется:
finger 79/tcp Finger
finger 79/udp Finger
www 80/tcp World Wide Web HTTP
www 80/udp World Wide Web HTTP
Этот документ делает официальный порт 80 как www или http. Однако в этом документе ничего не говорится о 443.
В октябре 1994 года появляется RFC 1700, где впервые появляется это:
https 443/tcp https MCom
https 443/udp https MCom
# Kipp E.B. Hickman <kipp@mcom.com>
Похоже, что об этом попросил Кипп Э.Б. Хикман, который в то время работал в Mosaic, первой компании по разработке графических интерфейсов, которая впоследствии стала Netscape.
Непонятно, почему был выбран 443, однако в предыдущем RFC был промежуток от 374 до 512, и в этом RFC было заполнено пространство от 375 до 451 . Весьма вероятно, что цифры просто указаны в порядке запроса.
В ответе jcbermu упоминается, что у RFC 1340 (назначенные номера) было количество неиспользуемых портов от 374 до 512, а 443 находится посередине.
assert https_port == (374 + 512) / 2 == 443