1) 브라우저 검색창에 www.google.com  을 입력 후 엔터를 친다

특정 웹사이트에 접속하기 위해서는 'www.google.com' 과 같은

도메인(Domain)이 아닌 '127.0.0.1'과 같은 IP 주소가 필요하다

하지만 IP 주소는 외우기가 힘들고, 가독성이 떨어지기 때문에

도메인 명으로 웹페이지에 접속할 수 있도록 DNS 서버를 이용한다

DNS는 Doman Name System의 약자로 URL의 이름과 IP주소를 저장하고 있는 데이터베이스이다

 

2) 브라우저는 캐싱된 DNS 기록을 체크한다

브라우저는 4가지 캐시를 확인한다

Browser캐시 >OS 캐시 (systemcall) > router 캐시 > ISP 캐시

 

브라우저 캐시확인

브라우저는 일정기간 유저가 방문한 사이트의 DNS 정보들을 기록하고 있다

 

OS 캐시확인

브라우저 캐시에도 없다면 브라우저에서는 운영체제에 systemcall을 통해서

OS에 기록되어있는 DNS 기록들의 캐시에 접근한다

 

라우터 캐시확인

OSI 7계층중 데이터 통신계층에 있는 라우터에 들어있는 DNS 캐시를 조회한다

라우터 안에는 DNS 서버의 주소가 저장되어 있습니다. 라우터를 거치게 되어

DNS 주소가 없으면 ISP까지 올라가 확인하게 된다

 

ISP 캐시

ISP는 DNS 서버를 구축하고 있다

따라서 마지막으로 DNS 정보를 찾을 수 있는 마지막 단계다

 

3) 없으면 ISP에서 제공하는 DNS 서버에서 다른 DNS 서버들로

해당 DNS 정보를 찾으려 DNS query를 보낸다

ip 주소를 찾을 때까지 계속 다른 DNS 서버들을 오가며 찾고 없으면 에러를 낸다

 

4) 찾으면 브라우저와 서버가 TCP 연결을 한다

http면 tcp 3 way handshake를 통해 연결이 된다

https면 ssl 프로토콜 기반으로 된다

 

5) 연결 되었으면 브라우저가 서버에 HTTP 요청을 한다

TCP 연결이 되면 데이터 전송을 하면된다

클라이언트는 GET 요청을 통해 서버에게 www.google.com  웹페이지를 요구한다

요청에 따라 부가적인 정보들이 함께 전송된다

 

6) 서버가 요청을 처리하고 response를 생성한다

request에서는 http 요청을 통해 받아온 다양한 헤더 정보와

데이터들로 요청을 처리하고 response를 생성한다

 

7) 서버가 HTTP response를 보낸다

요청한 웹페이지와 상태코드, 개인정보 등이 담겨 보내진다

 

8) 브라우저가 HTML content를 보여준다

브라우저는 html content를 단계적으로 렌더링하여 노출한다

해당 contents 들은 브라우저에 의해 캐싱되어

나중에 해당 페이지 재방문시 서버에 재요청하지 않도록 한다

'CS' 카테고리의 다른 글

[CS] JWT를 이용한 인증 과정  (0) 2023.04.29
[CS] 애자일 12가지 원칙  (0) 2023.03.03
[CS] 운영체제 CPU 스케줄링 알고리즘  (0) 2022.12.16
[CS] 운영체제 스레드  (0) 2022.12.15
[CS] 운영체제 멀티프로세싱  (0) 2022.12.14