Nếu tôi nhập IP cho một trang web chứ không phải dạng chuỗi, máy chủ DNS cục bộ của tôi có hiểu điều này không và tôi có bỏ qua quy trình DNS không? [bản sao]


12

Điều này hoàn toàn ra khỏi sự tò mò. Nhưng nếu tôi nhập IP của một trang web, liệu yêu cầu có còn tiếp tục trong quá trình tra cứu không? Nếu không, tại điểm nào và ở bước nào thì nó nhận ra rằng đây là vị trí của IP và không phải là tên máy chủ dưới dạng chuỗi?

Ngoài ra, làm thế nào điều này sẽ được ghi lại trong hostfile của tôi? Nếu nó trải qua toàn bộ quá trình tra cứu, liệu hostfile có chứa tên máy chủ chuỗi cũng như IP và được điền cục bộ không?


1
Hệ thống tên miền, đây là thứ dịch một url (google.com) thành địa chỉ IP, vì vậy nếu bạn sử dụng địa chỉ IP thì không cần phải tra cứu tên, bỏ qua hệ thống DNS. vi.wikipedia.org/wiki/Domain_Name_System
Moab

Các câu trả lời dưới đây là chính xác, trình duyệt đủ thông minh để không tìm kiếm địa chỉ IP phía trước. Thực hiện tra cứu địa chỉ IP không bao giờ là một ý tưởng hay, có 3 cách mà máy chủ DNS có thể phản ứng với nó: 1) Hầu hết các máy chủ DNS sẽ chỉ trả về cùng một địa chỉ IP. 2) Các máy chủ DNS khác không thể phân giải "tên dns" thành IP và sẽ cho bạn biết như vậy. 3) Một số máy chủ DNS (miễn phí) không thể phân giải "tên dns" và cung cấp cho bạn một IP chuyển hướng bạn đến trang tìm kiếm của riêng họ (thường có đầy đủ quảng cáo).
dùng1793963

1
Tên miền là cần thiết nếu máy chủ web lưu trữ nhiều trang web. Nó có IP đơn và không có tên miền, nó không thể hiểu trang nào bạn muốn. Nếu chỉ có một trang web, thì nó sẽ hoạt động với IP theo cùng một cách.
i486

1
Lưu ý rằng tên máy chủ không chỉ được gửi tới DNS để dịch mà còn cho chính máy chủ web. Điều này có nghĩa là một máy chủ web phục vụ nhiều trang web không thể biết trang web nào bạn muốn. Tất nhiên đây là một vấn đề của IPv4; với IPv6 mỗi trang web có thể có địa chỉ IP riêng.
MSalters

1
Bây giờ câu hỏi tiếp theo là: Làm thế nào để trình duyệt của bạn biết đó 2001:feed:face:dead::beef:8080là một địa chỉ IPv6 có cổng được chỉ định và không chỉ là một URL được định dạng thực sự tồi tệ ...;)
Mark Henderson

Câu trả lời:


15

Nếu bạn sử dụng địa chỉ IP, HĐH sẽ biết rằng đó là địa chỉ IP ngay lập tức và sẽ không thực hiện tra cứu chuyển tiếp.

Khi bạn thực hiện một yêu cầu HTTP, bước đầu tiên là lấy địa chỉ IP của đích đến, để trình duyệt có thể giao tiếp với máy chủ. Để liên lạc với máy chủ, mọi thứ xảy ra qua IP, từ địa chỉ IP đến địa chỉ IP, và do đó tên của máy chủ không cần thiết cho giao tiếp này. Tuy nhiên, nó được thông qua trong các tiêu đề HTTP dưới dạng Host:tiêu đề để cho máy chủ web biết bạn đang theo dõi trang web nào, nếu nó đang lưu trữ nhiều trang web.

Trong trường hợp truy cập bằng địa chỉ IP, điều này không xảy ra và trang web mặc định được trình bày.

Tệp của bạn hostslà một tệp tĩnh, nó không thay đổi bởi bất kỳ hành động nào bạn thực hiện, ngoại trừ nếu bạn trực tiếp chỉnh sửa nó (hoặc có các tập lệnh hoặc ứng dụng sửa đổi nó).


2
Ngoài ra, điều đáng chú ý là nếu bạn nhập Địa chỉ IP trong trình duyệt như Chrome, nó có thể thực hiện tìm kiếm Google trước khi chỉ cần tải trang web.
sventechie

1
Lưu ý rằng liên kết bên trong của các đối tượng riêng lẻ tạo nên trang, có thể được thực hiện bởi FQDN, do đó, trong khi yêu cầu gốc sẽ chạy mà không cần tra cứu DNS, nhưng mọi hình ảnh, biểu định kiểu, tệp tập lệnh, v.v ... gần như chắc chắn sẽ được giải quyết bằng DNS yêu cầu khi trình duyệt của bạn cố gắng hiển thị trang gốc và tải xuống tất cả các tài nguyên con ..
Frank Thomas

2
@FrankThomas Trong hầu hết các trường hợp, trong đó tài sản nằm trên cùng một máy chủ, các tài sản được tham chiếu bởi các URL tương đối và do đó sẽ được truy cập qua cùng một phương thức như yêu cầu ban đầu - thông qua IP. Ngoại lệ cho điều này sẽ là nơi base_href được sử dụng trong các tiêu đề và do đó ra lệnh cho máy chủ mà các URL tương đối nên sử dụng. Nếu một FQDN được sử dụng thì có, trò chơi kết thúc.
Paul

In the case of accessing by IP address, this does not happen, and the default site is presented.Bạn sẽ có nhiều khả năng được cung cấp một trang lỗi.
Người dùng112638726

@sventechie Thật sao? Bất cứ ý tưởng tại sao nó sẽ làm điều đó? Giống như, giá trị của điều đó là gì?
Athoxx

3

Như những người khác đã viết, bằng cách sử dụng một địa chỉ IP, bạn thực sự bỏ qua DNS cho phép truy cập các trang web phát triển ví dụ mà không có tên máy chủ.

Thêm IP - tên máy chủ giả vào / etc / hosts là cực kỳ phổ biến một lần nữa cho các trang web phát triển. Không giống như sử dụng địa chỉ IP trực tiếp, điều này sẽ a) vẫn bỏ qua DNS b) làm cho trình duyệt thêm Hosttiêu đề yêu cầu vào yêu cầu HTTP cho phép máy chủ ảo trên máy chủ cục bộ chẳng hạn.


Đáng lưu ý, nếu vì bất kỳ lý do gì mà địa chỉ IP được cập nhật, tệp HOSTS không được cập nhật cùng với nó, điều này có thể dẫn đến hành vi không mong muốn và một trang web dường như không hoạt động nữa. Nhìn vào tệp máy chủ là một trong những điều cuối cùng mọi người làm trong việc khắc phục sự cố và có thể bị bỏ qua hoàn toàn.
LPChip

@LPChip công bằng nhưng xin lưu ý rằng tôi đã nhấn mạnh nhiều lần về việc đây là một nhà phát triển - thực tiễn địa phương hơn bất cứ điều gì khác.
chx
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.