본문 바로가기

CS/네트워크

주소창에 www.naver.com을 치면 어떻게 될까 ?

대기열, 캐싱, DNS, 라우팅, ARP, 초기연결을 거쳐 컨텐츠를 다운받게 되고 이 후 브라우저렌더링
과정을 거쳐 네이버라는 화면이 나타나게 됩니다. 또한 이러한 과정이 캡슐화, 비캡슐화과정을
거쳐서 이뤄지게 됩니다.

 

대기열
브라우저는 주소창입력에 대한 요청을 대기열에 넣습니다.

 

캐싱

캐싱은 요청된 값의 결과값을 저장하고 그 값을 다시 요청하면 다시 제공하는 기술인데요. 이는
공유프록시캐시와 브라우저 캐시로 나눠집니다.

 

1. 브라우저 캐시
브라우저캐시는 쿠키, 로컬스토리지 등을 포함한 캐시입니다. 브라우저 자체가 사용자가 HTTP 를 통해 다운로드하는 모든 문서를 보유하는 것을 말합니다. 예를 들어 어떤 사이트를 갔다가 다시 방문하면 굉장히 빠르게 컨텐츠가 나타나죠? 그것이 바로 브라우저캐시입니다. 인터넷 사용기록을 삭제하고 싶어서 누르려고 하면 쿠키 및 기타 사이트 데이터, 캐시라고 있죠? 바로 이부분입니다.

 

2. 공유 프록시 캐시
공유 프록시 캐시는 요청한 서버에서 프록시서버가 캐싱을 하는 것을 말합니다. 예를 들어 Node.js로 서버를 구축한다면 앞단의 프록시서버로 nginx서버를 둬서 이 서버를 캐싱 서버로도 사용할 수 있는 것이죠.

 

DNS
브라우저가 요청의 IP 주소를 확인하는 단계입니다.
DNS는 도메인 이름과 IP 주소를 매핑해주는 서버입니다. 예를 들어 www.naver.com에 DNS 쿼리가
오면 오른쪽부터 역순으로 [Root DNS]→ [.com DNS] → [.naver DNS] → [.www DNS] 과정을
거쳐 완벽한 주소를 찾아 IP 주소를 매핑합니다.

참고로 바로 DNS서버로 요청을 전달하는 것은 아니고 먼저 컴퓨터 메모리에 있는 호스트 파일 등
캐시를 확인한 후 캐시미스가 일어나면 DNS서버로 요청합니다.

 

IP 라우팅
IP라우팅, 그리고 ARP 과정을 거쳐 실제 서버를 찾음.

 

초기 연결
자 이제 브라우저가 TCP 3웨이 - 핸드셰이및 및 SSL 연결등을 통해 연결을 설정합니다. 이 후 요청을
보낸 후 드디어 해당 요청한 서버로부터 응답을 받습니다. (여기선 네이버라는 서버가 되겠죠?)

 

콘텐츠 다운로드
브라우저는 서버로부터의 응답을 수신합니다.

 

브라우저 렌더링
받은 데이터를 바탕으로 브라우저 엔진이 브라우저렌더링 과정을 거쳐 화면을 만듭니다.

 

출처:https://blog.naver.com/jhc9639/222700552159

 

[CS전공지식면접] www.naver.com을 주소창에 치면 어떻게 될까요?

안녕하세요. "면접을 위한 CS전공지식노트" 저자 큰돌입니다. 오늘은 "www.naver.com을 ...

blog.naver.com