**Localhost** adalah nama host yang mengacu pada komputer saat ini yang digunakan untuk mengaksesnya. Ini digunakan untuk mengakses layanan jaringan yang berjalan di host melalui antarmuka jaringan loopback. Menggunakan antarmuka loopback mem-bypass perangkat keras antarmuka jaringan lokal apa pun.

Loopback
--------

Mekanisme loopback lokal dapat digunakan untuk menjalankan layanan jaringan pada host tanpa memerlukan antarmuka jaringan fisik, atau tanpa membuat layanan dapat diakses dari jaringan yang terhubung dengan komputer. Misalnya, situs web yang diinstal secara lokal dapat diakses dari browser Web dengan URL *http://localhost* untuk menampilkan berandanya.

Nama *localhost* biasanya ditetapkan ke IPv4 loopback alamat *127.0.0.1*, dan ke alamat loopback IPv6 *: :1*.

Resolusi nama
-------------

 
IPv4 standar jaringan cadangan seluruh blok alamat 127.0.0.0/8 (lebih dari 16 juta alamat) untuk tujuan loopback. Itu berarti setiap paket yang dikirim ke salah satu alamat tersebut akan diulang kembali. Alamat *127.0.0.1* adalah alamat standar untuk lalu lintas loopback IPv4; sisanya tidak didukung oleh semua sistem operasi. Namun, mereka dapat digunakan untuk menyiapkan beberapa aplikasi server di host, semuanya mendengarkan pada nomor port yang sama. Standar IPv6 hanya menetapkan satu alamat untuk loopback: *::1*.

Resolusi nama *localhost* ke satu atau lebih alamat IP biasanya dikonfigurasi oleh baris berikut di file host sistem operasi:

```
127.0.0.1    localhost
::1          localhost

```

Nama juga dapat diselesaikan oleh server Sistem Nama Domain (DNS), tetapi kueri untuk nama ini harus diselesaikan secara lokal, dan tidak boleh diteruskan ke server nama jarak jauh.

Selain pemetaan *localhost* ke alamat loopback (*127.0.0.1* dan *::1*), *localhost* juga dapat dipetakan ke IPv4 lain ( loopback) dan juga memungkinkan untuk menetapkan nama lain, atau tambahan, ke alamat loopback apa pun. Pemetaan *localhost* ke alamat selain rentang alamat loopback yang ditunjuk di file host atau di DNS tidak dijamin memiliki efek yang diinginkan, karena aplikasi dapat memetakan nama secara internal.

Dalam Sistem Nama Domain, nama *localhost* dicadangkan sebagai tingkat atas nama domain, awalnya disisihkan untuk menghindari kebingungan dengan nama host yang digunakan untuk tujuan loopback. Standar IETF melarang pendaftar nama domain menetapkan nama *localhost*.

standar IETF
------------

Nama *localhost* dicadangkan untuk tujuan loopback oleh RFC 6761 (*Nama Domain Penggunaan Khusus*), yang mencapai tingkat kematangan Proposed Standard pada bulan Februari 2013. Standar menetapkan sebagainya sejumlah pertimbangan khusus yang mengatur penggunaan nama di Sistem Nama Domain:

* Kueri alamat IPv4 atau IPv6 untuk nama localhost harus selalu diselesaikan ke alamat loopback masing-masing, yang ditentukan dalam standar terpisah.
* Aplikasi dapat menyelesaikan sendiri nama ke alamat loopback, atau meneruskannya ke mekanisme penyelesai nama lokal.
* Ketika penyelesai nama menerima kueri alamat (A atau AAAA) untuk *localhost*, itu harus mengembalikan alamat loopback yang sesuai, dan respons negatif untuk jenis rekaman lain yang diminta. Permintaan untuk 'localhost *tidak boleh dikirim ke server nama caching.*
* Untuk menghindari membebani root server Sistem Nama Domain dengan lalu lintas, server nama caching tidak boleh meminta catatan server nama untuk *localhost*, atau meneruskan resolusi ke server nama otoritatif.
* Pencatat DNS dilarang mendelegasikan nama domain di domain tingkat atas *localhost*.
* Ketika server nama otoritatif menerima kueri untuk 'localhost' terlepas dari ketentuan yang disebutkan di atas, mereka harus menyelesaikannya dengan tepat.

Alamat loopback IPv4 dicadangkan dalam ruang alamat IPv4 oleh standar IETF "Alamat IPv4 Penggunaan Khusus" (RFC 5735). Reservasi dapat ditelusuri kembali ke standar "Asigned Numbers" November 1986 (RFC 990).

Sebaliknya, standar IETF "IP Version 6 Addressing Architecture" (RFC 4291) mencadangkan satu alamat loopback IPv6 *::1* dalam ruang alamat IPv6. Standar tersebut menghalangi penugasan alamat itu ke antarmuka fisik apa pun, serta penggunaannya sebagai sumber atau alamat tujuan dalam paket apa pun yang dikirim ke host jarak jauh. Paket apa pun yang ditransmisikan secara keliru tidak seharusnya dirutekan, dan harus dibuang oleh semua router atau host yang menerimanya.

Pemrosesan paket
----------------

Pemrosesan paket apa pun yang dikirim ke alamat loopback, diimplementasikan di lapisan tautan tumpukan TCP/IP. Paket tersebut tidak pernah diteruskan ke pengontrol antarmuka jaringan (NIC) atau driver perangkat keras apa pun dan tidak boleh muncul di luar sistem komputasi, atau dirutekan oleh router mana pun. Ini memungkinkan pengujian perangkat lunak dan layanan lokal tanpa adanya antarmuka jaringan perangkat keras.

Paket looped-back dibedakan dari paket lain yang melintasi tumpukan TCP/IP hanya dengan alamat IP khusus yang dituju. Dengan demikian, layanan yang pada akhirnya menerimanya merespons sesuai dengan tujuan yang ditentukan. Misalnya, layanan HTTP dapat merutekan paket yang dialamatkan ke *127.0.0.99:80* dan *127.0.0.100:80* ke server Web yang berbeda, atau ke satu server yang mengembalikan halaman web yang berbeda. Untuk menyederhanakan pengujian tersebut, file host dapat dikonfigurasi untuk memberikan nama yang sesuai untuk setiap alamat.

Paket yang diterima pada antarmuka non-loopback dengan sumber loopback atau alamat tujuan harus dibuang. Paket semacam itu terkadang disebut sebagai paket Marss. Seperti halnya paket palsu lainnya, paket tersebut mungkin berbahaya dan masalah apa pun yang mungkin ditimbulkannya dapat dihindari dengan menerapkan pemfilteran bogon.

Kasus khusus
------------

Rilis basis data MySQL membedakan antara penggunaan nama host *localhost* dan penggunaan alamat *127.0.0.1* dan *::1*. Saat menggunakan *localhost* sebagai tujuan dalam antarmuka konektor klien dari suatu aplikasi, antarmuka pemrograman aplikasi MySQL terhubung ke database menggunakan soket domain Unix, sementara koneksi TCP melalui antarmuka loopback membutuhkan penggunaan langsung dari alamat eksplisit.

Satu pengecualian penting untuk penggunaan alamat *127.0.0.0/8* adalah penggunaannya dalam deteksi kesalahan traceroute Multiprotocol Label Switching (MPLS), di mana propertinya yang tidak dapat dirutekan menyediakan cara yang nyaman untuk menghindari pengiriman paket yang salah ke pengguna akhir.

Lihat juga
----------

* Jaringan pribadi
* Alamat IP yang dicadangkan
* 0.0.0.0

Referensi
---------

1. ↑  "RFC4291: Arsitektur Alamat IP Versi 6". IETF. Bagian 2.5.3.
2. ↑   *Registri Alamat IP Tujuan Khusus*. Internet Engineering Task Force. April 2013. doi:10.17487/RFC6890. BCP 153. RFC 6890. .  Diperbarui oleh RFC 8190.
3. ↑  "RFC2606: Nama DNS Tingkat Atas yang Dicadangkan". IETF. Section 2.
4. ↑  "RFC6761: Nama Domain Penggunaan Khusus". IETF. Section 6.3.
5. ↑  "RFC5735: Alamat IPv4 Penggunaan Khusus". IETF. Section 4.
6. ↑  Raymond, Eric S. "The Jargon File".
7. ↑  "MySQL :: Manual Referensi MySQL 5.5 :: 4.1 Ikhtisar Program MySQL".