Câu trả lời:
Vâng, sự khác biệt rất có thể là bạn vẫn phải làm một thực tế tra cứu của localhost
nơi nào đó.
Nếu bạn sử dụng 127.0.0.1
, thì phần mềm (thông minh) sẽ biến trực tiếp thành địa chỉ IP và sử dụng nó. Một số triển khai gethostbyname
sẽ phát hiện định dạng chấm (và có lẽ là định dạng IPv6 tương đương) và hoàn toàn không tra cứu.
Nếu không, tên phải được giải quyết. Và không có gì đảm bảo rằng hosts
tệp của bạn sẽ thực sự được sử dụng cho độ phân giải đó (đầu tiên hoặc localhost
hoàn toàn ) vì vậy có thể trở thành một địa chỉ IP hoàn toàn khác .
Điều đó có nghĩa là, trên một số hệ thống, một hosts
tệp cục bộ có thể được bỏ qua. Các host.conf
điều khiển tập tin này trên Linux (và nhiều unices khác).
/etc/nsswitch.conf
chọn nếu hosts
hoặc DNS được sử dụng trước tiên để tra cứu máy chủ, nếu nss đang chạy.
Wikipedia tổng hợp điều này tốt:
Trên các hệ thống máy tính hiện đại, localhost với tư cách là tên máy chủ dịch sang địa chỉ IPv4 trong khối mạng 127.0.0.0/8 (loopback), thường là 127.0.0.1 hoặc :: 1 trong IPv6.
Sự khác biệt duy nhất là nó sẽ tìm kiếm trong DNS cho hệ thống những gì localhost
giải quyết. Tra cứu này là thực sự, thực sự nhanh chóng. Ví dụ, để nhận được stackoverflow.com
bạn đã nhập vào thanh địa chỉ (hoặc sử dụng bookmarklet được chỉ ở đây). Dù bằng cách nào, bạn đã đến đây thông qua một tên máy chủ. localhost
cung cấp một chức năng tương tự.
một số ứng dụng sẽ xử lý "localhost" đặc biệt. máy khách mysql sẽ coi localhost như một yêu cầu kết nối với ổ cắm miền unix cục bộ thay vì sử dụng tcp để kết nối với máy chủ trên 127.0.0.1. Điều này có thể nhanh hơn và có thể ở một khu vực xác thực khác.
Tôi không biết các ứng dụng khác đối xử với localhost khác với 127.0.0.1, nhưng có lẽ có một số ứng dụng.
Vâng, bởi IP là nhanh hơn.
Về cơ bản, khi bạn gọi bằng tên máy chủ, nó được chuyển đổi thành IP gốc.
Nhưng sẽ rất khó để ghi nhớ một IP, vì lý do này, tên miền đã được tạo.
Cá nhân tôi sử dụng http://localhost
thay vì http://127.0.0.1
hoặc http://username
.
localhost
trong một cách đặc biệt . Các ứng dụng khác có thể vẫn sẽ tra cứu localhost
.
Sự khác biệt chính là kết nối có thể được thực hiện thông qua Unix Domain Socket, như đã nêu ở đây: localhost so với 127.0.0.1
localhost
là giao thức độc lập, cả IPv4 và IPv6 sẽ hoạt động.