본문 바로가기

CS 스터디

웹 사이트 접속하는 과정

브라우저가 URL에 적힌 값을 파싱해서 HTTP Request Message를 만들고, OS에 전송 요청을 합니다. 이 때, Domain으로 요청을 보낼 수 없기 때문에 DNS Lookup을 수행합니다.

DNS 룩업 과정은 크롬의 경우 브라우저 → hosts 파일 → DNS Cache의 순서로 도메인에 매칭되는 ip를 찾습니다. 일반적으로 설명하는 DNS Lookup은 루트 도메인서버에서부터 서브도메인 서버순으로 찾게됩니다.

이 요청은 프로토콜 스택이라는 OS에 내장된 네트워크 제어용 소프트웨어에 의해 패킷에 담기고 패킷에 제어정보를 덧붙여 LAN 어댑터에 전송하고, LAN 어댑터는 이를 전기신호로 변환시켜 송출합니다.

패킷은 스위칭 허브 등을 경유하여 인터넷 접속용 라우터에서 ISP로 전달되고 인터넷으로 이동합니다.
액세스 회선에 의해 통신사용 라우터로 운반되고 인터넷의 핵심부로 전달됩니다. 고속 라우터들 사이로 목적지까지 패킷이 흘러들어가게 됩니다.

핵심부를 통과한 패킷은 목적지의 LAN에 도착하고, 방화벽이 패킷을 검사한 후 캐시 서버로 보내어 웹 서버에 갈 필요가 있는지 검사합니다.

웹 서버에 도착한 패킷은 프로토콜 스택이 패킷을 추출하여 메시지를 복원하고 웹 서버 애플리케이션에 넘깁니다. 애플리케이션은 요청에 대한 응답 데이터를 작성하여 클라이언트로 회송하고, 이는 전달된 방식 그대로 전송됩니다.

 

용어설명

  •  도메인 : URL의 일부로 외우기 힘든 IP주소를 naver.com같은 형태로 바꿔주는 이름을 뜻한다.
  •  DNS ( Domain Name Service ) : 도메인 주소  -> IP로 변환
  •  URL : 프로토콜 + 도메인
    1. 구조  / ex) https://search.naver.com
      1. 프로토콜 (https)
        • 데이터 통신을 원활하게 하기 위해 필요한 통신 규약
      2. 서브도메인 (search)
        1. 각각의 도메인이 서로 다른 서버를 가르키게 해준다
      3. 상위 도메인 (naver)
      4. 최상위 도메인 (com)
      5. 루트도메인 (. / 도메인에서는 일반적으로 생략)
    2. 계층관계
      • 루트 -> 최상위 -> 상위 -> 서브 
  • host 파일 : ip 주소와 hostname 을 매칭시켜놓은 텍스트 파일

 

면접 질문 참고 사이트

https://github.com/ksundong/backend-interview-question

 

GitHub - ksundong/backend-interview-question: 백엔드 개발자로 입사를 준비하며 받았던 질문, 예상했던 질

백엔드 개발자로 입사를 준비하며 받았던 질문, 예상했던 질문, 인터넷 참고한 질문(CC BY-NC) - ksundong/backend-interview-question

github.com

 

용어 설명 참고

https://blog.naver.com/ghdalswl77/222331240558

 

[ DNS 서버 ] DNS란? 도메인과 URL의 차이, URL의 구조, 도메인의 계층 관계, DNS 동작 방식

DNS가 뭔가요? 🔄 DNS 란? DNS 또는 Domain Name System은, 사람이 읽을 수 있는 '도메...

blog.naver.com

 

'CS 스터디' 카테고리의 다른 글

CS스터디용 이미지1  (0) 2024.10.31
싱글톤 (SingleTon Pattern)  (0) 2024.10.24
TCP와 UDP의 차이점  (0) 2024.04.15