Co to jest loacalhost? Czym jest adres IP 127.0.0.1? Jak i do czego wykorzystać localhost w pracy webmastera, web developera czy twórcy online?
Spis treściCzym jest localhost i do czego możesz go wykorzystać? Często kojarzony jest z adresem IP 127.0.0.1 lub podobnym. Część osób jednak nie wie, co łączy te dwa elementy. Są one natomiast szczególnie przydatne dla twórców internetowych.
Termin „localhost” z pewnością nie jest obcy programistom czy właścicielom stron internetowych. Możesz go kojarzyć i bardzo możliwe, że wielokrotnie gdzieś wpadł Ci w oko. Wiele osób jednak mimo to nie wie, co on dokładnie oznacza i jakie jest jego zadanie. Co więcej, ściśle związany jest z adresem IP 127.0.0.1 lub podobnym. To natomiast nie rozjaśnia sytuacji, choć samo wyjaśnienie jest wyjątkowo interesujące.
W kontekście sieci komputerowych „host” oznacza po prostu „serwer„. Jak więc zapewne już się domyślasz, „localhost” to nic innego, jak tylko „lokalny serwer”. Jest to więc rozwiązanie przydatne przede wszystkim:
- administratorom sieci,
- programistom,
- do wykonywania testów.
Pozwala na przeprowadzanie działań i sprawdzanie wielu specyfikacji istotnych z punktu widzenia administratora. Jednocześnie pozwala na realizację operacji bez konieczności połączenia z siecią internet. To główne powody, przez które warto wiedzieć, czym dokładnie jest localhost i w jaki sposób z niego korzystać.
Co to jest adres IP?
Aby dobrze zrozumieć znaczenie i rolę localhost, najpierw przyjrzyjmy się kwestii adresu IP. Jest on z nim bowiem ściśle połączony. Jak zapewne wiesz, wywołanie obcego adresu IP na swoim komputerze jest próbą kontaktu z innym urządzeniem za pośrednictwem internetu. Adres IP to bowiem unikatowy identyfikator, przydzielony do konkretnej sieci komputerowej. W ten sposób możesz zażądać wyświetlenia zawartości znajdującej się w konkretnym miejscu na określonym serwerze.
Czy natomiast da się z poziomu własnego komputera wywołać adres IP tego właśnie urządzenia? Choć brzmi to dość zawile, to właśnie w ten sposób działa localhost. Mamy tu do czynienia ze sprzężeniem zwrotnym, które omówimy w dalszej części tekstu. Co więcej – podobnie jak każda zwyczajna domena internetowa – localhost ma swój adres IP. Jest nim najczęściej wspominany już wcześniej 127.0.0.1. W praktyce natomiast może to być konfiguracja z zakresu od 127.0.0.0 do 127.255.255.255.
Charakterystyczną cechą adresu IP localhost jest jego pierwsza część, czyli liczba 127. To fragment zarezerwowany tylko i wyłącznie dla sprzężenia zwrotnego. Dzięki temu protokoły TCP/IP wiedzą, że chcesz skontaktować się ze swoim komputerem. Żadna inna, publiczna strona, nie może mieć adresu rozpoczynającego się od 127.
Co to jest localhost (127.0.0.1)? Definicja
Zgodnie z definicją localhost to nazwa hosta (serwera) oraz adres komputera lokalnego. W połączeniu IPv4 przybiera postać adresu 127.0.0.0/8, a przy IPv6 jest to ::1. Komunikacja z tym adresem IP inicjuje wymianę informacji wewnątrz danego serwera, często z poziomu jednego urządzenia. Można więc powiedzieć, że samo określenie „host lokalny” czy „serwer lokalny” oznaczają adres komputera lokalnego w sieci komputerowej.
Localhost w praktyce jest nazwą wykorzystywaną do nawiązywania połączenia określanego jako sprzężenie zwrotne. Najłatwiej mówiąc, jest to sytuacja, gdy łączysz się z oprogramowaniem na komputerze, z którego wychodzi transmisja.
Pozornie może wydawać się, że localhost nie ma większego sensu. Po co bowiem nawiązywać połączenie z siecią komputerową urządzenia, z którego i tak korzystasz? W praktyce jednak sytuacji, w których takie rozwiązanie jest potrzebne, da się wyróżnić co najmniej kilka. Przede wszystkim służą one do testowania różnych rozwiązań w środowisku niedostępnym dla osób trzecich, choć nie tylko. Więcej szczegółów na ten temat znajdziesz w dalszej części tekstu.
Localhost a 127.0.0.1 – czy oznaczają to samo?
Przy okazji tematu localhost niemalże zawsze pojawia się adres IP 127.0.0.1. Co więcej, zdarza się, że te dwa określenia używane są zamiennie. Wyjaśnijmy więc, na czym polega ich „bliskość” i połączenie, którego trudno nie zauważyć.
Można powiedzieć, że „localhost” i „127.0.0.1″ to niemalże to samo. Oba warianty wskazują na serwer lokalny i umożliwiają jego połączenie. Różnica jest taka, że „localhost” to nazwa „domeny”, a „127.0.0.1″ to odpowiadający jej adres IP.
Zwyczajne adresy IP są tłumaczone na czytelne dla ludzi nazwy, dzięki czemu nie musimy wpisywać w przeglądarce ciągów cyfr. Serwer DNS dopasowuje domenę do jej numerycznego odpowiednika. Tak samo działa to w przypadku pętli zwrotnej. Do wywołania zawartości serwera lokalnego możemy użyć zrozumiałego słowa zamiast trudnej do zapamiętania liczby. Wpisanie każdego z rozwiązań natomiast przyniesie taki sam efekt.
Jak działa sprzężenie zwrotne/pętla zwrotna/loopback?
„Sprzężenie zwrotne”, „pętla zwrotna” i „loopback” to trzy określenia na jedno zjawisko. Są one używane naprzemiennie, zależnie od publikacji. W praktyce natomiast oznaczają sytuację, w której:
- użytkownik wywołuje localhost/127.0.0.1,
- urządzenie szuka zawartości znajdującej się pod daną „domeną” lub adresem,
- następuje próba otwarcia adresu,
- system odsyła użytkownika z powrotem do własnego serwera WWW, pokazując jego zawartość.
W ten sposób nawiązujesz połączenie ze swoją siecią wewnętrzną. Przekazywane w jej obrębie informacje nie są udostępniane w internecie. Nie ma do nich dostępu żaden zewnętrzny użytkownik. W ten sposób możesz publikować i zarządzać danymi, bez wprowadzania ich do publicznej sieci.
Funkcjonalności localhost. Do czego służy?
Jak wspominaliśmy, localhost ma kilka funkcjonalności. Wykorzystać go możesz przede wszystkim do:
- testowania stron, aplikacji i programów,
- testowania połączenia,
- blokowania witryn,
- lokalnego hostowania.
Oczywiście nie każde z tych rozwiązań będzie dla Ciebie przydatne. Jeśli jednak pracujesz nad wdrożeniem własnej strony internetowej, localhost może okazać się potrzebny. Podobnie wygląda to w przypadku osób nadzorujących sieć i zarządzających urządzeniem będącym serwerem. Poniżej opisaliśmy zastosowanie każdej z funkcji.
Przeprowadzanie testów aplikacji, strony WWW i oprogramowania Web
Rozwiązanie powszechnie stosowane przez programistów. Pozwala na przetestowanie wszelkich programów czy aplikacji wymagających połączenia z internetem. Uruchamiając je przez localhost możesz szybko sprawdzić, jak wyglądają i czy działają poprawnie. Jednocześnie nie udostępniasz ich w publicznej sieci internet. Osoby z zewnątrz nie mają więc do nich dostępu, przez co zachowujesz prywatność swojego projektu.
W praktyce sprawdzasz swoje oprogramowanie „wewnątrz” swojego komputera. Korzystasz do tego z sieci lokalnej, a Twój system operacyjny zamienia się w symulowany serwer WWW. Pozwala na to wspominane wcześniej sprzężenie zwrotne. Nic więc nie stoi na przeszkodzie, aby wgrać pliki oprogramowania czy aplikacji na serwer i je wywołać.
Przeprowadzanie testów połączenia i jego prędkości
Rozwiązanie przydatne szczególnie dla administratorów sieci. Pozwala na sprawdzenie, czy TCP/IP i wszystkie urządzenia działają poprawnie. Przy użyciu localhost przeprowadzisz test i szybko przyjrzysz się liczbom:
- pakietów odebranych,
- pakietów wysłanych,
- pakietów utraconych,
- czas transmisji danych.
Najłatwiej jest przeprowadzić takie testy przy użyciu wysłania żądania ping (Co to jest Ping? Jak sprawdzić Ping?). Wystarczy tylko, że uruchomisz Terminal lub wiersz poleceń. W pierwszej linijce wpisz jedną z komend:
ping localhost
ping 127.0.0.1
Po naciśnięciu przycisku „Enter” system zacznie wysyłać sygnał. Poprawne odpowiedzi powinny wyglądać podobnie do tych na poniższym screenie.
Lokalne hostowanie
Przy użyciu localhost możesz stworzyć prywatny serwer. W ten sposób możesz uniknąć wykupowania miejsca na komercyjnym serwerze czy korzystania z usług hostingodawców. W ten sposób uruchomisz stronę napisaną np. w języku PHP na własnym komputerze.
Uruchomienie serwera na „localhost” (czyli na lokalnym komputerze) zależy od technologii i języka programowania, której chcesz użyć. Poniżej przedstawiam kilka popularnych technologii i jak w nich uruchomić serwer na localhost:
Node.js z Express.js:
- Zainstaluj Node.js z oficjalnej strony: Node.js
- Utwórz nowy folder dla projektu i otwórz terminal w tym folderze.
- Zainstaluj Express.js używając npm (Node Package Manager):
npm install express
- Utwórz plik, np.
server.js
i dodaj następujący kod:const express = require('express'); const app = express(); const PORT = 3000; app.get('/', (req, res) => { res.send('Witaj na serwerze localhost!'); }); app.listen(PORT, () => { console.log(`Serwer uruchomiony na http://localhost:${PORT}`); });
- Uruchom serwer używając komendy:
node server.js
Python z Flask:
- Zainstaluj Python z oficjalnej strony: Python
- Zainstaluj Flask używając pip (Python Package Installer):
pip install Flask
- Utwórz plik, np.
app.py
i dodaj następujący kod:from flask import Flask app = Flask(__name__) @app.route('/') def hello(): return "Witaj na serwerze localhost!" if __name__ == '__main__': app.run()
- Uruchom serwer używając komendy:
python app.py
Apache:
- Pobierz i zainstaluj serwer Apache, np. za pomocą pakietu XAMPP: XAMPP
- Po instalacji uruchom panel kontrolny XAMPP i włącz moduł Apache.
- Domyślnie serwer będzie dostępny pod adresem:
http://localhost
PHP z wbudowanym serwerem:
- Zainstaluj PHP z oficjalnej strony: PHP
- W terminalu przejdź do folderu z plikami PHP.
- Uruchom wbudowany serwer PHP używając komendy:
php -S localhost:8000
To tylko kilka przykładów. Istnieje wiele innych technologii i języków programowania, które pozwalają na uruchomienie serwera na localhost.
Blokada witryn sieci Web
Możesz wykorzystać sprzężenie zwrotne do blokowania witryn, które uznajesz za szkodliwe. Zależnie do Twojej motywacji, mogą to być strony zawierające np. wirusy lub nieodpowiednie treści. Ich zawartość właściwie nie ma znaczenia, bo zablokujesz w ten sposób każde miejsce w sieci, które zechcesz. To praktyka często wykorzystywana w sprzętach firmowych. Wiele przedsiębiorstw uniemożliwia pracownikom wchodzenie na określone strony. Jak jednak stworzyć tego typu „blokadę”?
Zacznijmy od wyjaśnienia, że system nazw domen wyszukuje adresy IP, odpowiednie dla danej nazwy. Komputery natomiast usprawniają cały proces przy użyciu pliku hosts. To właśnie tam bowiem zbierane są nazwy domen stron internetowych i odpowiadające im adresy IP. Zapewne już się domyślasz, jak wykorzystać to w praktyce.
Oczywiście „sztuczka” polega na zmianie adresu IP danej witryny na adres hosta lokalnego, czyli 127.0.0.1. Dzięki temu otwarcie domeny przy użyciu zmodyfikowanego pliku skończy się uruchomieniem localhosta.
Jak uzyskać dostęp do localhost na swoim komputerze?
Uzyskanie dostępu do localhost nie jest skomplikowane. Wspominaliśmy już zresztą o tej kwestii nieco wcześniej. Wystarczy więc tylko, że uruchomisz przeglądarkę internetową. Następnie wpisz w pasku wyszukiwarki „localhost” lub 127.0.0.1 i gotowe!
Co istotne, aby metoda ta była skuteczna, najpierw musisz skonfigurować serwer testowy na swoim urządzeniu. Mowa o działaniu opisanym w sekcji „lokalne hostowanie”. Co się stanie, jeśli w przeglądarce adres wpisze osoba, która nie ma skonfigurowanego serwera? Nic groźnego, ale na ekranie zapewne pojawi się komunikat o błędzie, podobny do tego poniżej.