Что такое порт
Урок 10 из 47 курса Сетевое взаимодействие в терминале на Coddy.
Адрес направляет ваш запрос к нужной машине. Но на одной машине одновременно могут работать веб-сайт, база данных и почтовый сервер. Что-то должно указывать, для кого из них предназначен запрос.
Это порт: число от 1 до 65535, которое выбирает программу. Адрес — это здание, а порт — дверь.
В URL он находится после двоеточия:
curl -s http://127.0.0.1:9104/hello.txt
# ^^^^ портАдрес и порт вместе идентифицируют один конец соединения, и такая пара называется сокетом. Когда вы слышите, что сервер «открыл сокет на 9104», это означает именно такое сочетание.
Две программы на одной машине не могут одновременно прослушивать один и тот же порт, из-за чего возникает ошибка, с которой в конце концов сталкивается каждый разработчик: address already in use.
Задание
СложноДокажите, что порт выбирает программу, запустив два сервера на одной машине.
- Создайте две папки:
aиb - Поместите в каждую файл
i.txt:AAAвa,BBBвb - Обслуживайте
aна порту 9104, аb— на порту 9105 - Получите
i.txtс каждого порта, сначала с 9104
Тот же адрес, то же имя файла, другая дверь:
AAA
BBB
(cd a && python3 -m http.server 9104 &)запускает сервер для одной папки, не меняя папку, в которой вы находитесь.
Попробуйте сами
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Сетевое взаимодействие в терминале
3Порты и сокеты
Что такое портХорошо известные портыЛокальный хостПрослушивание и подключениеПовторение: порты6curl в деталях
Просмотр заголовковСохранение ответовПользовательские заголовкиСтатус и время выполненияКоды выхода curlПовторение: флаги curl9Аутентификация и отладка
API-ключи и BearerUser-AgentТайм-ауты и повторные попыткиАнализ ошибкиПовторение: отладкаПотренируйтесь самостоятельно: Песочница Terminal