раздел 01

localhost и порты

localhost = ваш компьютер

localhost - это специальное имя, которое всегда указывает на ваш же компьютер. У него есть и числовой адрес: 127.0.0.1. Это одно и то же, просто localhost читается человеком, а 127.0.0.1 - технический вид того же самого.

Когда вы открываете в браузере localhost, запрос никуда в интернет не уходит. Браузер стучится в программу, запущенную на этой же машине. Поэтому проект, который крутится локально, и виден только вам.

localhost и 127.0.0.1 - это «я сам». Что бы ни случилось с интернетом, этот адрес всегда ведёт на ваш собственный компьютер.

Порт - это дверь

На одном компьютере может одновременно работать много программ-серверов. Чтобы браузер понял, к какой именно обращаться, к адресу добавляют номер порта. Порт - это как номер двери в большом здании: адрес дома один, а дверей много.

Адрес целиком выглядит так:

localhost:3000

Здесь localhost - дом (ваш компьютер), а 3000 - дверь, за которой ждёт конкретное приложение. Двоеточие просто отделяет одно от другого.

3000
Частый порт фронтенда
На нём по умолчанию поднимаются многие веб-проекты на Node.js. Адрес: localhost:3000.
8000
Частый порт бэкенда
Любят Python и простые серверы. Адрес: localhost:8000. Цифра ничего не значит, это просто номер двери.

Зачем вообще нужны порты

Если запустить два проекта сразу, им нужны разные двери, иначе браузер запутается, кому отдавать запрос. Поэтому один проект садится на 3000, второй - на 3001, третий - на 8000. Конкретные числа выбирает программа; для вас важно лишь то, что в адресе после двоеточия стоит правильный номер.

Что значит «порт занят»

Если на двери 3000 уже сидит одна программа, вторая туда не влезет. Тогда вы увидите сообщение вроде «port 3000 is already in use» (порт 3000 уже занят). Ничего страшного не сломалось - просто эта дверь занята.

Вариантов два: запустить проект на другой двери (часто инструмент сам предложит 3001) или освободить занятую. Как именно освобождать - в разделе про отладку и в шпаргалке.