반응형
들어가기에 앞서
개발자로서 동작의 원리를 이해함으로써 문제가 발생할 경우, 문제가 발생한 지점을 유추해 해결할 수 있어야 하기 때문입니다.
순서는 용어 정리
-> 동작 순서
에 대해 알아보겠습니다.
용어 정리
- 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는 라우팅 과정을 통해 데이터가 최적의 경로로 전달되게 한다.
- 각 컴퓨터는 IP주소라는 고유한
- HTTP
- 클라이언트 <-> 서버 통신을 위해 정의한 언어
- 브라우저에 웹사이트의 구조와 내용을 정의하는데 사용됨
동작 순서
- 브라우저 검색창에 www.naver.com 입력
- redirect 있으면 redirect, 없으면 request에 대한 과정 수행
- 캐시 체크
- DNS -> OS -> router -> ISP순서대로 캐시 체크
- 브라우저의 캐시를 참조, 브라우저는 일정 기간 동안 DNS기록을 저장하고 있기 때문
- 브라우저 캐시 : 로컬 스토리지 등을 포함한 캐시
- 브라우저 자체가 사용자가 HTTP를 통해 다운로드하는 모든 문서를 보유하는 것을 의미
- 공유 캐시 : 클라이언트와 서버 사이의 응답을 저장할 수 있는 것
- 프록시 서버 등(Node.js -> Nginx, AWS -> clout front, cloudflare
- DNS
- [Root DNS] -> [.com DNS] -> [.naver DNS] -> [.www DNS]를 거쳐 완벽한 주소를 찾아 IP 주소 매핑
FQDN(fully qualified domain name)
: 호스트와 도메인이 합처진ㅁ ㅗ델
- IP라우팅
- 해당 IP를 기반으로 라우팅 혹은 APR 과정을 거쳐 실제 서버 발견
- TCP 연결 구축
- TTFB(Time to First Byte)
- 3Way handshake, SSL 연걸 결등을 통해 서버로 설정
- 컨텐츠 다운로드
- 브라우저 렌더링
- 받은 데이터(HTML, CSS, JS 등)를 브라우저 엔진이 브라우저 렌더링 과정을 통해 화면 구성
출처
https://www.youtube.com/watch?v=YahjHM9UNCA
반응형