在網絡通信中,localhost這個主機名指向了用於訪問其的當前計算機。這個名稱專門保留用於環迴 purposes。它使得我們能夠訪問在主機上運行的網絡服務,而無需依賴實際的本地網絡硬體。透過環迴網絡介面,我們可以輕鬆測試和運行服務,無論是在沒有任何物理網路介面的情況下還是想讓服務專供本機使用。
例如,通過網址 http://localhost,我們可以訪問本地安裝的網站,這使得開發者能在無任何外部互聯網干擾的情況下進行測試。
環迴機制可以讓用戶在本地運行網絡服務,這種情況下不需要物理網絡介面或不必公開服務於任何可能連接的網絡。根據IPv4網絡標準,整個地址塊127.0.0.0/8被保留用於環迴目的。這意味著發送到這些地址的任何數據包都會被循環回來。其中,127.0.0.1是IPv4環迴流量的標準地址,其餘地址不是所有操作系統都支持,但可用以在主機上設置多個伺服器應用程序,所有這些應用程序都可在相同的端口號上進行監聽。
localhost的名稱通常解析為IPv4環迴地址127.0.0.1和IPv6環迴地址::1。這種解析通常由操作系統的hosts文件中的以下內容配置:
127.0.0.1 localhost
::1 localhost
此外,這個名稱也可以通過域名系統(DNS)伺服器進行解析,但這其中有著特殊的考慮。無論是IPv4還是IPv6地址查詢,localhost的名稱必須始終解析為各自的環迴地址。負責任的名稱伺服器在接收到查詢時應該適當地解析localhost的請求。
早在1981年,127.0.0.0/8這一塊地址獲得了“保留”狀態,並不被用作一般用途的類A IP網路。1986年,該區塊正式被分配為環迴用途,並在1994年、2002年、2010年、以及2013年時確認其作為特殊用IPv4地址的用途。從1995年開始,單個IPv6環迴地址::1被定義並且其用途和定義至今未變。
任何發送到環迴地址的數據包,其處理是在TCP/IP堆棧的鏈路層中進行的。這些數據包從不會被傳送到任何網絡介面控制器(NIC)或硬件設備驅動,亦不會出現在計算系統之外。適用此規則,軟件測試與本地服務即便在沒有硬件網絡介面的情況下也能得以進行。數據包可依據指定的目標進行響應,例如,HTTP服務可根據127.0.0.99:80和127.0.0.100:80作為不同的Web伺服器進行路由。
例如,MySQL數據庫區別對待localhost與127.0.0.1和::1的使用。在使用localhost作為應用程序的客戶端連接器接口時,MySQL應用程序界面通過Unix域套接字連接數據庫,而TCP連接則要求顯式使用直接地址。此外,Multiprotocol Label Switching (MPLS) 的traceroute錯誤檢測中也適用於127.0.0.0/8,這一特性可避免將故障數據包發送到最終用戶相互作用。
總而言之,localhost無疑是網絡開發、測試和運行服務的重要工具。它使開發者能隨時隨地輕鬆進行實驗,並在安全的環境中開發應用。而在數據包不經過任何實體網路介面情況下進行的所有作業,是否使我們重新思考我們與科技的關係呢?