DNS 조회(DNS Lookup): 웹 브라우저는 입력한 주소를 가지고 DNS(Domain Name System) 서버에 해당 도메인의 IP 주소를 요청합니다. DNS는 도메인 이름을 해당 도메인의 IP 주소로 변환해주는 역할을 합니다.
서버 연결(Connect to Server): DNS 조회를 통해 얻은 IP 주소를 기반으로 웹 브라우저는 해당 서버에 TCP/IP 연결을 시도합니다. 이를 통해 클라이언트(브라우저)와 서버 간의 안정적인 연결이 수립됩니다.
HTTP 요청 전송(Send HTTP Request): 클라이언트는 HTTP(Hypertext Transfer Protocol) 요청을 서버로 전송합니다. 일반적으로는 GET 요청을 사용하여 웹 페이지의 내용을 요청합니다.
서버 응답(Receive Server Response): 서버는 클라이언트의 요청을 받고 해당 요청에 대한 응답을 생성합니다. 이 응답은 일반적으로 HTML, CSS, JavaScript 등으로 구성된 웹 페이지의 내용을 포함하며, 웹 사이트의 기능에 따라 다양한 데이터와 리소스를 포함할 수도 있습니다.
웹 페이지 렌더링(Render Web Page): 클라이언트(브라우저)는 서버로부터 받은 응답을 해석하여 웹 페이지를 렌더링합니다. 이 과정에서 HTML 문서를 파싱하고, CSS 스타일을 적용하며, JavaScript 코드를 실행하여 동적인 기능을 추가합니다.
웹 페이지 표시(Display Web Page): 최종적으로 웹 페이지가 사용자의 화면에 표시됩니다. 브라우저는 렌더링된 콘텐츠를 사용자에게 시각적으로 보여주고, 사용자가 웹 페이지와 상호작용할 수 있는 기능을 제공합니다.
DNS 조회: 웹 브라우저가 입력한 주소를 DNS 서버에 보내서 도메인 이름('www.google.com')을 해당 도메인의 IP 주소로 변환합니다.
서버 연결: 웹 브라우저가 DNS에서 얻은 IP 주소로 해당 서버에 연결을 시도합니다.
HTTP 요청 전송: 웹 브라우저가 서버에게 해당 도메인의 웹 페이지를 요청합니다.
서버 응답: 서버가 클라이언트의 요청을 받고 해당 웹 페이지의 내용을 포함한 응답을 생성합니다.
웹 페이지 렌더링: 웹 브라우저가 서버에서 받은 응답을 해석하여 웹 페이지를 렌더링합니다. HTML, CSS, JavaScript 등을 처리하여 사용자가 볼 수 있는 형태로 웹 페이지를 구성합니다.
웹 페이지 표시: 최종적으로 브라우저는 렌더링된 웹 페이지를 사용자에게 보여줍니다.
이 과정을 거치면 'www.google.com'에 해당하는 Google의 검색 화면이 사용자에게 표시됩니다.
대기열, 캐싱, DNS, 라우팅, ARP, 초기 연결을 거쳐 컨텐츠를 다운받게 되고 브라우저 렌더링 과정을 거쳐 해당 웹사이트의 화면이 나타나게 됩니다.
또한 이런 과정이 비캡슐화, 캡슐화 과정을 거쳐 이루어지게됩니다.