문자열 형식이 아닌 웹 사이트의 IP를 입력하면 로컬 DNS 서버가이를 이해하고 DNS 프로세스를 무시합니까? [복제]


12

이것은 순전히 호기심이 아닙니다. 그러나 웹 사이트의 IP를 입력하는 경우 요청이 여전히 정방향 조회 프로세스를 거치게됩니까? 그렇지 않다면, 어느 시점에서 어떤 단계에서 이것이 호스트 이름이 아닌 IP의 위치라는 것을 깨달았습니까?

또한 이것이 내 호스트 파일에 어떻게 기록됩니까? 전체 조회 프로세스를 수행하는 경우 호스트 파일에 IP뿐만 아니라 문자열 호스트 이름이 포함되어 로컬로 채워 집니까?


1
도메인 이름 시스템, 이것은 URL (google.com)을 IP 주소로 변환하는 것이므로 IP 주소를 사용하는 경우 DNS 시스템을 우회하여 이름 조회를 수행 할 필요가 없습니다. en.wikipedia.org/wiki/Domain_Name_System
Moab

아래 답변은 정확하며 브라우저는 IP 주소를 정방향으로 조회 할 수 없을 정도로 똑똑합니다. IP 주소의 정방향 조회는 결코 좋은 생각이 아니며 DNS 서버가 이에 응답 할 수있는 3 가지 방법이 있습니다. 1) 대부분의 DNS 서버는 단순히 동일한 IP 주소를 반환합니다. 2) 다른 DNS 서버는 "dns 이름"을 IP로 확인할 수 없으므로 알려줍니다. 3) 일부 (무료) DNS 서버는 "dns 이름"을 확인할 수 없으며 자신을 검색 페이지 (일반적으로 광고로 가득 찬)로 리디렉션하는 IP를 제공합니다.
user1793963

1
웹 서버가 여러 사이트를 호스팅하는 경우 도메인 이름이 필요합니다. 단일 IP를 가지고 있으며 도메인 이름이 없으면 원하는 사이트를 이해할 수 없습니다. 웹 사이트가 하나 뿐인 경우 동일한 방식으로 IP와 작동합니다.
i486

1
호스트 이름은 번역을 위해 DNS로 전송 될뿐만 아니라 웹 서버 자체로도 전송됩니다. 즉, 여러 웹 사이트를 제공하는 웹 서버는 원하는 사이트를 알 수 없습니다. 이것은 물론 IPv4 문제입니다. IPv6을 사용하면 모든 웹 사이트에 고유 한 IP 주소가있을 수 있습니다.
MSalters

1
이제 다음 질문은 브라우저 2001:feed:face:dead::beef:8080가 형식이 잘못된 URL이 아니라 지정된 포트를 가진 IPv6 주소 임을 어떻게 알 수 있습니까 ?;)
Mark Henderson

답변:


15

IP 주소를 사용하는 경우 OS는 IP 주소를 즉시 알 수 있으며 정방향 조회를 수행하지 않습니다.

HTTP 요청을 수행 할 때 첫 번째 단계는 브라우저가 서버와 통신 할 수 있도록 대상의 IP 주소를 얻는 것입니다. 서버와의 통신을 위해 IP 주소에서 IP 주소까지 모든 것이 IP를 통해 이루어 지므로이 통신에 서버 이름이 필요하지 않습니다. 그러나 HTTP 헤더에 헤더로 전달되어 Host:여러 사이트를 호스팅하는 경우 웹 서버가 어떤 웹 사이트를 방문했는지 알려줍니다.

IP 주소로 액세스하는 경우에는 이것이 발생하지 않으며 기본 사이트가 표시됩니다.

귀하의 hosts파일은 당신을 직접 편집 그것 (또는 수정 스크립트 나 응용 프로그램이있는) 경우를 제외하고, 당신이 취할 조치에 의해 변경되지 않습니다, 정적 파일입니다.


2
또한 Chrome과 같은 브라우저에 IP 주소를 입력하면 사이트를로드하기 전에 Google 검색을 수행 할 수 있다는 점도 관련이 있습니다.
sventechie

1
페이지를 구성하는 개별 개체의 내부 연결은 FQDN에 의해 ​​수행 될 가능성이 있으므로 루트 요청은 DNS 조회없이 실행되지만 모든 이미지, 스타일 시트, 스크립트 파일 등은 DNS에 의해 거의 확실하게 해결됩니다. 브라우저가 루트 페이지를 렌더링하려고 시도하고 모든 하위 자원을 다운로드 할 때 요청하십시오.
Frank Thomas

2
@FrankThomas 대부분의 경우 자산이 동일한 서버에있는 경우 자산은 상대 URL로 참조되므로 원래 요청과 동일한 방법으로 IP를 통해 액세스됩니다. 이에 대한 예외는 헤더에서 base_href가 사용되는 위치이므로 상대 URL이 사용해야하는 호스트를 지정합니다. FQDN이 사용된다면, 게임 오버입니다.
Paul

In the case of accessing by IP address, this does not happen, and the default site is presented.오류 페이지가 훨씬 더 많이 나타납니다.
112638726

@sventechie 정말요? 왜 그렇게 될지 아십니까? 마찬가지로, 그 가치는 무엇입니까?
Athoxx

3

다른 사람들이 작성한 것처럼 IP 주소를 사용하면 실제로 호스트 이름없이 개발 사이트에 액세스 할 수있는 DNS를 건너 뜁니다.

/ etc / hosts에 IP-모의 호스트 이름을 추가하는 것은 개발 사이트에서 매우 일반적입니다. IP 주소를 직접 사용하는 것과 달리 a) 여전히 DNS를 건너 뜁니다. b) 예를 들어 브라우저가 Host요청 헤더를 HTTP 요청에 추가하여 로컬 서버의 가상 호스트를 허용합니다.


IP 주소가 어떤 이유로 든 업데이트되면 HOSTS 파일과 함께 HOSTS 파일이 업데이트되지 않아 예기치 않은 동작과 더 이상 작동하지 않는 사이트가 발생할 수 있습니다. hosts 파일을 보는 것은 사람들이 문제를 해결하는 데 마지막으로하는 일 중 하나이며 간과 될 수 있습니다.
LPChip

@LPChip fair이지만 다른 어떤 것보다 로컬 관행 인 개발자의 방법이 몇 번이나 강조되었습니다.
chx
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.