TIL/CS

[Network] www.naver.com를 주소창에 치면 무슨일이 일어날까?

Dev우키 2023. 6. 22. 01:39
반응형

들어가기에 앞서

개발자로서 동작의 원리를 이해함으로써 문제가 발생할 경우, 문제가 발생한 지점을 유추해 해결할 수 있어야 하기 때문입니다.
순서는 용어 정리 -> 동작 순서 에 대해 알아보겠습니다.

용어 정리

  • DNS(Domain Name System)
    • IP 네트워크에서 사용하는 시스템
    • 영문/한글 주소를 IP 네트워크에서 찾아갈 수 있는 IP로 변환해준다.
    • 예시 : IP주소가 123.123.123.123인 웹사이트의 DNS는 www.test.com이다.
      • 숫자로 된 IP 주소대신 사용자가 사용하기 편하게 됨
  • TCP/IP
    • IP주소 체계를 따르는 TCP방식의 데이터 전송 프로토콜 집합
    • TCP : 데이터 전송을 관리하고 보증하는 역할 수행.
      • 데이터를 패킷이라는 더 작은 단위로 나눔
      • 목적지에 도착한 패킷을 확인(잘 도착했는지, 전달 순서, 손상되었는지)
    • IP : 네트워크 상에서 컴퓨터를 식별하고, 데이터를 목적지까지 전달하는 역할 수행
      • 각 컴퓨터는 IP주소라는 고유한 식별자를 가짐
      • IP는 라우팅 과정을 통해 데이터가 최적의 경로로 전달되게 한다.
  • HTTP
    • 클라이언트 <-> 서버 통신을 위해 정의한 언어
    • 브라우저에 웹사이트의 구조와 내용을 정의하는데 사용됨

동작 순서

  1. 브라우저 검색창에 www.naver.com 입력
    • redirect 있으면 redirect, 없으면 request에 대한 과정 수행
  2. 캐시 체크
    • DNS -> OS -> router -> ISP순서대로 캐시 체크
    • 브라우저의 캐시를 참조, 브라우저는 일정 기간 동안 DNS기록을 저장하고 있기 때문
    • 브라우저 캐시 : 로컬 스토리지 등을 포함한 캐시
      • 브라우저 자체가 사용자가 HTTP를 통해 다운로드하는 모든 문서를 보유하는 것을 의미
    • 공유 캐시 : 클라이언트와 서버 사이의 응답을 저장할 수 있는 것
      • 프록시 서버 등(Node.js -> Nginx, AWS -> clout front, cloudflare
  3. DNS
    • [Root DNS] -> [.com DNS] -> [.naver DNS] -> [.www DNS]를 거쳐 완벽한 주소를 찾아 IP 주소 매핑
    • FQDN(fully qualified domain name) : 호스트와 도메인이 합처진ㅁ ㅗ델
  4. IP라우팅
    • 해당 IP를 기반으로 라우팅 혹은 APR 과정을 거쳐 실제 서버 발견
  5. TCP 연결 구축
    • TTFB(Time to First Byte)
    • 3Way handshake, SSL 연걸 결등을 통해 서버로 설정
  6. 컨텐츠 다운로드
  7. 브라우저 렌더링
    • 받은 데이터(HTML, CSS, JS 등)를 브라우저 엔진이 브라우저 렌더링 과정을 통해 화면 구성

출처

https://www.youtube.com/watch?v=YahjHM9UNCA

https://babycoder05.tistory.com/entry/wwwgooglecom-%EC%9D%84-%EC%A3%BC%EC%86%8C%EC%B0%BD%EC%97%90-%EC%B9%98%EB%A9%B4-%EC%9D%BC%EC%96%B4%EB%82%98%EB%8A%94-%EC%9D%BC-What-happens-when-type-wwwgooglecom

반응형