Localhost
- Okunuşu
- lokıl houst
Kısaca
Localhost, kullandığınız bilgisayarı gösteren host adıdır; 127.0.0.1 loopback adresine (IPv6'da ::1) çözümlenir, bu yüzden ona giden trafik makineden çıkmaz.
Localhost nedir?
Localhost'a gönderilen trafik işletim sisteminin ağ yığınına girer ve sanal bir loopback arayüzünden doğrudan geri çıkar; ağ kartına ya da internete hiç ulaşmaz. IPv4'te bütün 127.0.0.0/8 aralığı loopback için ayrılmıştır ve standart adres 127.0.0.1'dir; IPv6'da loopback adresi ::1'dir.
Geliştiriciler onu sürekli kullanır. npm run dev ile başlatılan bir geliştirme sunucusu http://localhost:3000 adresinde açılır, yerel bir veritabanı localhost:5432'de dinler, araçlar da aynı makinedeki portlar üzerinden birbiriyle konuşur. Port numarası, işletim sistemine trafiği hangi programın alması gerektiğini söyler.
Tarayıcılar localhost'u düz HTTP üzerinden bile güvenli bir bağlam (secure context) olarak görür; bu yüzden service worker'lar ve pano (clipboard) API'si gibi normalde HTTPS gerektiren özellikler geliştirme sırasında çalışır. Birçok araç 127.0.0.1 ile 0.0.0.0'ı da ayırt eder: 127.0.0.1'e bağlanan bir sunucu yalnızca yerel bağlantıları kabul eder, 0.0.0.0'a bağlanan ise her ağ arayüzünde dinler.
Sık yapılan bir yanlış, bir Docker container'ının içindeki localhost'un sizin bilgisayarınız olduğunu düşünmektir. Her container'ın kendi ağ alanı (network namespace) vardır; bu yüzden oradaki localhost container'ın kendisidir. Host'taki bir servise ulaşmak için Docker'ın sağladığı host.docker.internal gibi bir adresi kullanın ya da iki servisi aynı Docker ağına koyun.
Önemli noktalar
- Localhost, kendi makinenizin adıdır, yani loopback adresi.
- IPv4'te 127.0.0.1'e, IPv6'da ::1'e çözümlenir.
- Loopback trafiği bilgisayardan hiç çıkmaz.
- Portlar programları ayırır; bir geliştirme sunucusu için localhost:3000 gibi.
- Bir container'ın içinde localhost, host değil container'ın kendisidir.
Örnek
import http from "node:http";
const handler = (req, res) => res.end("Hello from this machine\n");
// Only reachable from this computer
http.createServer(handler).listen(3000, "127.0.0.1");
// Reachable from other devices on the network too (e.g. a phone on the same Wi-Fi)
http.createServer(handler).listen(3001, "0.0.0.0");
// curl http://localhost:3000 → works
// curl http://<your-LAN-IP>:3000 → refused; :3001 worksSık sorulan sorular
Localhost ile 127.0.0.1 arasındaki fark nedir?
Localhost bir ad, 127.0.0.1 ise bir adrestir. Ad genellikle 127.0.0.1'e, birçok sistemde de IPv6 loopback'i olan ::1'e çözümlenir; yalnızca IPv4'te dinleyen bir sunucunun bazen farklı davranmasının nedeni budur.
Başkaları benim localhost'uma erişebilir mi?
Hayır. Loopback trafiği makinenizin içinde kalır. Başkalarının yerel bir sunucuya ulaşması için sunucunun bir ağ arayüzünde dinlemesi ve ağınız üzerinden erişilebilir olması ya da bir tünel aracıyla dışarı açılması gerekir.
localhost:3000 ne demek?
Kendi makinenizdeki 3000 numaralı port. Geliştirme sunucuları genellikle 3000, 5173 ya da 8080 gibi portlar kullanır; port da sisteme isteği hangi programın ele alacağını söyler.
İlgili sayfalar
- IP AdresiAğlar, s. 12IP adresi, ağdaki her cihaza verilen ve verinin o cihaza yönlendirilmesini sağlayan sayısal bir etikettir; bir evin posta adresine benzer.
- PortAğlar, s. 22Port, bir cihazdaki belirli bir programı ya da hizmeti tanımlayan, 0 ile 65535 arasında bir sayıdır; IP adresine gelen trafik böylece doğru uygulamaya ulaşır.
- IPv4Ağlar, s. 13IPv4, internetin ilk adresleme sistemidir; 192.168.1.10 gibi dört sayı olarak yazılan 32 bitlik adresler kullanır ve yaklaşık 4,3 milyar adrese izin verir.
- IPv6Ağlar, s. 14IPv6, her cihaza benzersiz bir adres verebilen 128 bitlik adresler kullanan ve tükenen IPv4 havuzunun yerini alan İnternet Protokolü'nün en yeni sürümüdür.
- Web SunucusuBackend ve API'ler, s. 46Web sunucusu, tarayıcılardan ve diğer istemcilerden gelen HTTP isteklerini alıp sayfa, dosya ya da veriyle yanıt veren yazılım veya onu çalıştıran makinedir.
- DockerDevOps ve Bulut, s. 15Docker, bir uygulamayı ve ihtiyaç duyduğu her şeyi, her makinede aynı şekilde çalışan bir konteyner içinde paketlemeye yarayan açık kaynaklı bir platformdur.
Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin