Как два номера порта работают одновременно?

Теперь я очень запутался в том, как на самом деле работают порты. Это мое понимание портов. Я знаю, что порт 80 предназначен для протокола HTTP, а порт 443 - для протокола HTTPS, поэтому всякий раз, когда я получаю доступhttp://website.com [(name or ip)], он преобразуется в http://website.com:80 [(name or ip)], и когда я получаю доступ https://website.com [(name or ip)], он преобразуется в https://website.com:443 [(name or ip)].

Итак, если я получаю доступ к веб-сайту через другой порт, т.е. у меня есть локальная настройка приложения springboot или angular, и они являются конечными точками HTTP, и я получаю доступ http://localhost:someportNumber (пример: http://localhost:5000), как это переводится на порт, поскольку я явно указал порт 5000, но HTTP работает на порту 80.

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

Я столкнулся с этим конфликтом понимания, когда изучал службы Google Kubernetes Engine. Там я создал службу типа nodeport, у которой были такие конфигурации, как

port: 443
targetPort: 443
nodePort: 31000

и когда я получил доступ к внешнему IP-адресу одного из узлов https://[external-ip]:31000, это сработало.

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

PS:- Речь идет не о концепции NodePort/ClusterIP/LoadBalancer. Но в целом о том, как эти порты работают с портом протокола http или https, с портом приложения.

2 ответа

Решение

Вы можете указать любой порт (например, 5000 в вашем примере). URI просто начинается сhttpчтобы указать, какой протокол используется - он не требует использования порта 80. После этого адрес используется для связи с хостом на указанном порту (которым будет порт 80, если не указан другой порт). После успешного подключения клиент ожидает, что сервер будет говорить по протоколу HTTP.

На стороне сервера есть просто программа, которая прослушивает порт в ожидании входящих соединений.

Раньше нельзя было напрямую звонить человеку в компанию. Вместо этого можно было бы позвонить на главный коммутатор компании и спросить человека на каком-то добавочном номере.

Оператор: Чем могу помочь? Вы: добавочный номер 123 Оператор: сейчас на связи

Думайте о "порте" как о расширении компании. Имя хоста /IP-адрес - это номер телефона компании, порт - это добавочный номер этой компании.

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

Когда вы устанавливаете соединение через Интернет с каким-либо компьютером через порт 80, предполагается, что мы будем обмениваться HTTP-трафиком. Однако, если я устанавливаю соединение с каким-либо компьютером через порт 5000, тогда ничто не мешает ЭТОМ соединению также отправлять и получать HTTP-трафик. Например, если с отделом продаж в моей компании можно связаться по добавочному номеру 80 и вы можете разместить заказ, также может быть дополнительный добавочный номер (5000), по которому вы можете разместить другие типы заказов, которые недоступны на добавочном номере 80.

Смотрите также:

http://www.steves-internet-guide.com/tcpip-ports-sockets/

Другие вопросы по тегам