PHP

Какую роль играют порты при создании вебсокетов?

Везде только и слышу: порты-порты-порты... Что это во-первых? Это что-то виртуальное, создаваемое в оперативной памяти или что-то железное? Почему одни сервера используют одни порты, другие - другие? Почему такая зацикленность на одном из портов, например на 80-ом? Почему не 79 или 81?
Ваня Черенев
Ваня Черенев
5 333
когда на комп приходят пакеты, данные по сети, то надо же как то определить для какой программы эти данные пришли. типа таблички с колонками "Программа", "Порт (число)". Пришли данные, в которых указан порт 79, если есть в табличке строка где порт 79, то этой программе данные перейдут.
Crazy Mazafacker
Crazy Mazafacker
19 655
Лучший ответ
"Что это во-первых?"
Виртуальные номера каналов связи.

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

Вебсерверу совершенно необязательно использовать 80 порт - он может висеть на любом незанятом, но тогда при подключении к такому серверу придется отдельно указывать порт.
А есть куча сервисов, у которых нет выделенных фиксированных адресов. Те же торренты.
Виртуальное.
По той же причине, что и закрепление названия за сущностью, имени за человеком, и так далее. Это конвенция.
По уже названной причине (см. выше). Васю называют Васей, потому что его так родители назвали. Но Вася может сходить в паспортный стол (или хз куда), переименоваться в Машу, и больше не отзываться на прошлое имя... хотя он продолжит быть тем же существом которое раньше звалось Васей, и ничего по сути не изменится - просто когда не знающий о смене имени сосед крикнет через балкон "Вася, пойдешь с нами бухать?", не получит ответа от Маши.
PP
Pro Pro
70 294
80 порт просто стал стандартом например для веб-серверов. Можно смело занять любой порт, 28717, 21029, 989, 41773 и т. д. Но тогда при вводе например адреса придется и порт указывать, например

http:://192.168.1.1 (здесь будет порт 80), https:://192.168.1.1 (здесь будет порт 443).

А если нужно указать порт 27182, то тогда запись получится уже такой
192.168.1.1:27182
Port переводится на русский как Проход/Лаз
Василий Стоян
Василий Стоян
53 172
Так работает доставка пакетов между участниками сети интернет.
Используется уникальный для каждого участника сети адрес (IP адрес) и порт.
У каждого порта есть свой слушатель (процесс) который забирает пакеты доставленные на этот порт.

Вот по номеру порта приложения и процессы на компьютере и узнают для кого из них доставлен пакет данных из сети интернет.
Denis Leonov
Denis Leonov
12 592
Один вебсокет - одно соединение, как мне известно. В моем случае вебсокет работает на том же порту что и http сервер. Для вебсокета просто используется отдельная url, т. е. вебсокет и http могут работать вместе, но их запросы не могут использовать один url. Да, вебсокет можно на любом порту использовать, часто на 80, 443 потому что все сайты на них работают