W skrócie: localhost to nazwa, której komputer używa, żeby wskazać sam siebie. Zawsze prowadzi do adresu 127.0.0.1 przez pętlę zwrotną (loopback) - ruch nie opuszcza maszyny, nie idzie do routera ani do internetu. Służy głównie do lokalnego uruchamiania i testowania stron oraz aplikacji.
Co to jest localhost
Localhost to specjalna nazwa hosta, która oznacza po prostu "ten komputer, przy którym siedzę". Kiedy w przeglądarce wpiszesz http://localhost, komputer nie szuka niczego w sieci - kieruje żądanie z powrotem do siebie. To dlatego localhost działa nawet wtedy, gdy masz wyciągnięty kabel od internetu.
Konkret: nazwa localhost jest zarezerwowana specjalnie po to, by wskazywać maszynę lokalną. Nie da się jej "kupić" ani przejąć - każdy komputer na świecie ma swój własny localhost, który zawsze wskazuje na niego samego. To jeden z najstarszych i najbardziej stabilnych elementów stosu TCP/IP.
Dla początkującego najprościej myśleć tak: internet to rozmowa z innymi komputerami, a localhost to rozmowa komputera z samym sobą. Programiści robią to codziennie - zanim strona trafi na prawdziwy serwer widoczny w sieci, który każdy system operacyjny traktuje jako "ja sam".
Mechanizm nazywa się pętla zwrotna, po angielsku loopback. Działa tak: gdy program wysyła dane na 127.0.0.1, system nie kieruje ich do karty sieciowej i dalej do routera. Zamiast tego zawraca je wewnętrznym interfejsem loopback (w Linuksie widocznym jako lo) prosto z powrotem do komputera. Pakiet nigdy fizycznie nie opuszcza maszyny.
Kilka faktów, które warto zapamiętać:
- Cała pula 127.0.0.0/8 jest zarezerwowana na loopback. Oznacza to, że nie tylko
127.0.0.1, ale każdy adres od127.0.0.1do127.255.255.254wskazuje na komputer lokalny. Standard opisują dokumenty RFC 5735 i RFC 6890. W praktyce i tak wszyscy używają127.0.0.1. - W IPv6 odpowiednikiem jest
::1. Jeśli system woli IPv6,localhostmoże rozwiązywać się właśnie na::1zamiast127.0.0.1- to normalne i oznacza dokładnie to samo, czyli "ten komputer". - Mapowanie localhost na 127.0.0.1 zapisane jest w pliku hosts. W Windowsie to
C:\Windows\System32\drivers\etc\hosts, w Linuksie i macOS/etc/hosts. System sprawdza ten plik, zanim odpyta system nazw DNS przydziela dostawca internetu i wygląda zupełnie inaczej, na przykład83.24.x.x. Localhost jest u każdego identyczny - to zawsze127.0.0.1. Publiczny adres masz swój, unikalny w danym momencie.
Praktyczna konsekwencja: strona uruchomiona na localhost jest dostępna tylko dla Ciebie. Kolega z drugiego miasta nie otworzy Twojego http://localhost:3000 - u niego ta nazwa wskaże na jego własny komputer. Żeby pokazać komuś pracę z localhost, trzeba użyć tunelu (np. narzędzia typu localhost.run czy ngrok) albo wystawić aplikację na prawdziwy serwer.
Porty: localhost:8080, localhost:3000 i pozostałe
Zaraz obok localhost prawie zawsze zobaczysz dwukropek i liczbę: localhost:8080, localhost:3000, localhost:8000. To numer portu.
W skrócie: port to numerowane "drzwi" na komputerze. Jeden adres (127.0.0.1) może obsługiwać wiele aplikacji naraz, bo każda siedzi na swoim porcie. Przeglądarka domyślnie puka na port 80 dla zwykłego http, albo 443 dla https i w PHP.
localhost/phpmyadmin- to nie osobny port, tylko ścieżka. Pod tym adresem pakiety typu XAMPP udostępniają phpMyAdmin, czyli panel do zarządzania bazą danych MySQL na Twoim komputerze.
Konkret: http://localhost:8080 i http://127.0.0.1:8080 to dokładnie to samo miejsce. Pierwsze używa nazwy, drugie adresu, na który ta nazwa prowadzi. Różnica bywa istotna tylko w rzadkich przypadkach konfiguracji IPv6 kontra IPv4 - o czym za chwilę w sekcji o problemach.
Do czego używa się localhost - testy lokalne
Najważniejsze zastosowanie: bezpieczne środowisko do pracy, które nikogo nie widzi i niczego nie psuje w sieci.
Typowe scenariusze, w których localhost jest podstawą:
- Tworzenie stron i aplikacji. Zanim strona trafi na hosting, powstaje i jest testowana na localhost. Możesz wielokrotnie ją łamać, poprawiać i odświeżać - klienci ani Google tego nie widzą.
- Lokalny WordPress. Instalacja WordPressa na localhost (przez XAMPP albo Docker) to standardowy sposób nauki i budowania motywów czy wtyczek bez ryzyka na żywej stronie. Adres wygląda wtedy zwykle jak
http://localhost/wordpress. - Bazy danych. MySQL, PostgreSQL czy Redis w środowisku deweloperskim najczęściej nasłuchują właśnie na
127.0.0.1, przez co są dostępne tylko lokalnie i nie są wystawione na atak z sieci. - Testowanie API i usług. Zanim integracja przez API najłatwiej przetestować właśnie na localhost, zanim wgra się je na maszynę produkcyjną.
Trade-off jest oczywisty i działa na Twoją korzyść: to, co uruchomisz na localhost, jest szybkie (dane nie krążą po sieci), prywatne (nikt tego nie widzi) i darmowe (nie potrzebujesz hostingu, żeby zacząć). Dlatego każda nauka programowania webowego zaczyna się właśnie tutaj.
Jak otworzyć localhost - krok po kroku
Sam wpis http://localhost w przeglądarce nic nie pokaże, dopóki na komputerze nie działa żaden serwer lokalny. Localhost to adres, a nie gotowa strona - musisz najpierw coś pod nim uruchomić.
Krok po kroku, najprostsza ścieżka dla początkującego:
- Zainstaluj lokalne środowisko. Dla stron PHP i WordPressa najprostszy jest XAMPP (Windows, Linux, macOS) albo MAMP (macOS, Windows). Dla projektów w kontenerach - Docker. Dla nauki JavaScriptu wystarczy Node.js z wbudowanym serwerem deweloperskim.
- Uruchom serwer. W XAMPP wciskasz Start przy module Apache (i MySQL, jeśli potrzebujesz bazy). W projekcie Node zwykle wpisujesz w terminalu
npm run dev. Serwer poinformuje Cię, na jakim porcie wystartował. - Wejdź pod właściwy adres. Otwórz przeglądarkę i wpisz adres podany przez serwer, na przykład
http://localhost(XAMPP),http://localhost:3000(typowy dev-serwer) albohttp://localhost/phpmyadmindla panelu bazy danych.
Sprawdź: jeśli strona się załadowała, localhost działa. Jeśli zobaczysz komunikat o odmowie połączenia, przejdź do sekcji niżej - to prawie zawsze jeden z trzech typowych powodów.
Częste problemy z localhost
"Localhost odmawia połączenia" (ERR_CONNECTION_REFUSED) to najczęstszy komunikat, na jaki trafisz. Objaw wygląda groźniej niż przyczyna.
Krok po kroku, co sprawdzam w takiej sytuacji:
- Serwer w ogóle nie działa. Odmowa połączenia zwykle znaczy, że pod danym portem nic nie nasłuchuje. Sprawdź, czy uruchomiłeś Apache, Node albo inny serwer i czy się nie wysypał przy starcie. To przyczyna numer jeden.
- Zły port. Wpisujesz
localhost:3000, a serwer wystartował na8080. Zajrzyj do komunikatu startowego serwera - tam jest właściwy numer. - Port jest zajęty. Jeśli dwa programy chcą ten sam port, drugi nie wystartuje. Na Windowsie sprawdzisz to komendą
netstat -ano | findstr :3000, na Linuksie i macOSlsof -i :3000. Wtedy albo zamykasz proces blokujący port, albo uruchamiasz aplikację na innym. - localhost kontra 127.0.0.1 przy IPv6. Czasem
localhostrozwiązuje się na::1(IPv6), a serwer nasłuchuje tylko na127.0.0.1(IPv4) - i połączenie leci na darmo. Sprawdź: wpisz ręczniehttp://127.0.0.1:PORT. Jeśli teraz działa, przyczyna leży w rozjeździe IPv4 kontra IPv6.
Osobny, częsty przypadek to localhost/phpmyadmin kończący się błędem. Tu prawie zawsze chodzi o to, że moduł bazy danych (MySQL/MariaDB w XAMPP) nie został uruchomiony razem z Apache. Wystarczy wystartować oba i odświeżyć stronę.
Pro tip admina: zanim zaczniesz grzebać w konfiguracji, zawsze najpierw sprawdź najprostsze rzeczy - czy serwer chodzi i czy pukasz na właściwy port. Nie liczę, ile razy "zepsuty localhost" okazywał się po prostu niewłączonym serwerem.
Najczęstsze pytania (FAQ)
Czy 127.0.0.1 to to samo co localhost?
Praktycznie tak. Localhost to nazwa hosta, a 127.0.0.1 to adres IP, na który ta nazwa domyślnie prowadzi. W standardowej konfiguracji http://localhost i http://127.0.0.1 otwierają to samo miejsce. Różnica pojawia się tylko, gdy w grę wchodzi IPv6, gdzie localhost może wskazywać na adres ::1.
Do czego służy localhost?
Localhost służy do lokalnego uruchamiania i testowania stron oraz aplikacji na własnym komputerze, bez wystawiania ich do internetu. Programiści budują na nim strony, instalują lokalnego WordPressa, testują bazy danych i API. Wszystko działa szybko, prywatnie i bez potrzeby płacenia za hosting - to standardowy pierwszy krok każdego projektu webowego.
Co oznacza localhost:8080 albo localhost:3000?
Liczba po dwukropku to numer portu, czyli "drzwi", na których nasłuchuje konkretna aplikacja. 8080 to popularny zamiennik portu 80, używany, bo nie wymaga uprawnień administratora. 3000 to domyślny port wielu narzędzi deweloperskich, jak Node.js, React czy Rails. Jeden komputer może obsługiwać wiele aplikacji naraz, każdą na innym porcie.
Jak otworzyć stronę na localhost?
Najpierw uruchom na komputerze serwer lokalny - na przykład przez XAMPP (Apache), Docker albo dev-serwer Node.js. Serwer poda numer portu, na którym wystartował. Następnie w przeglądarce wpisz adres w rodzaju http://localhost lub http://localhost:3000. Bez uruchomionego serwera localhost pokaże tylko błąd - to adres, a nie gotowa strona.
Czy localhost działa bez internetu?
Tak, i to jest jego istota. Ruch do localhost nigdy nie opuszcza komputera - obsługuje go wewnętrzna pętla zwrotna, a nie karta sieciowa czy router. Możesz uruchomić i testować całą stronę na localhost z całkowicie odłączonym internetem. Połączenie z siecią potrzebne jest dopiero, gdy chcesz wystawić projekt na zewnętrzny serwer.
Czym różni się localhost od mojego adresu IP?
Localhost (127.0.0.1) to adres wewnętrzny, u każdego identyczny, widoczny tylko dla własnego komputera. Twój publiczny adres IP przydziela dostawca internetu i to jego widzi świat, gdy wchodzisz na stronę. Strona na localhost jest dostępna wyłącznie dla Ciebie - nikt z zewnątrz nie otworzy Twojego http://localhost bez tunelu albo prawdziwego hostingu.