FeelingXD

[Network] 웹에서 검색하면 어떤일이 일어날까?(인프라 관점) 본문

CS/Network

[Network] 웹에서 검색하면 어떤일이 일어날까?(인프라 관점)

FeelingXD 2024. 2. 25. 15:23

웹을 통해 검색하면 어떤일이 일어날까?

면접 단골질문 중 하나인 웹에 검색하면 컴퓨터 내부에서 일어나는 일들에 대해서 인프라 관점으로 작성하는 글입니다. 🤔

www.naver.com 을 입력하면 ..

도메인 주소를이용해서 접속하려는 ip 를 얻는 방법

우선 사용자가 웹브라우저 를 통해 주소창에 www.naver.com 을 검색한다.

기본적 으로 통신을 하려면 통신 하고자하는 주소의 ip주소를 알아야한다. 위에 언급한
사용자가 www.naver.com 은 주소 로 통신하기전에 주소를 ip로 변환하는 과정을 거쳐야한다.

그럼 주소를 ip 로 변환하는 과정은 어떻게 일어날까?

  1. 우선 호스트의 hosts 파일을 참고 한다. 만약 검색 하려는 주소가 hosts 파일에서 찾을 수 있다면 해당 파일을 참고하여 ip주소로 변환 후 통신한다.
  2. 1번에 실패 할 경우 호스트의 DNS cache에서 정보를 조회한다.
  3. 2번까지 실패 할 경우 DNS server에 주소에대한 ip를 질의 하여 접속 하려는 ip를 얻게된다.

🤔 - 호스트가 DNS 를 통해 ip를 알려면 DNS서버에 연결 해야하지 않나요 ?

✨ - (일반적으로) 호스트는 DNS 에 질의시 UDP프로토콜로 질의하여 ip주소를 받아 온다.

드디어 접속하려는 www.naver.com 에 대한 ip 주소를 알게 되었다.

브라우저가 하는 http 통신

이제 www.naver.com 에 대한 ip 주소를 획득했고 호스트는 해당 ip 주소와 tcp연결 을 시도 한다. http(1~2) 는 tcp 기반의 통신이기에 tcp 연결을 하기위한 handshake 이후에 통신을 연결한다.

tcp 연결 수립 이후 다음과 같은 과정이 일어난다.

  1. 호스트는 www.naver.com 으로 get 요청을 보낸다. (HTTP REQUEST)
  2. 서버는 호스트로 부터 온 리퀘스트를 확인하고 응답을 보낸다. (HTTP RESPONSE)

요약

infra 관점에서 url 을 검색할때 어떻게 원하는 도메인 주소에 대한 ip를 얻는지 또 어떻게 더 빨리 제공할지의 관점이 필요하다.

infra 에 따라 요청ip 를 빨리 얻기

  1. 사용자의 컴퓨터의 hosts의 파일을 참고함
  2. 공유기, ISP(internet service provider) 캐시들을 참고하여 요청주소에대한 ip가 있는지 확인함
  3. 그래도 없다면 DNS 서버 질의를 통해 요청주소에대한 ip를 얻음

항상 DNS 에 요청하는건 DNS 에게도 사용자에게도 효율성 측면에서 좋지않다 그러면서 DNS, 공유기 환경에서 다양한 방법으로 Cache 해둠으로 써 속도를 높인다.

참조