보안 전공생의 공부

주소창에 URL검색 시 발생하는 일련의 과정들 본문

WEB

주소창에 URL검색 시 발생하는 일련의 과정들

수잉 2021. 8. 17. 13:51

클라이언트가 주소창에 www.naver.com 입력하면 어떤 과정을 통해 네이버 홈페이지가 화면에 뜨게 되는 걸까 ?

 

1.  www.naver.com IP주소 찾기

1) 로컬 DNS 캐시 검색

웹 브라우저는 로컬 DNS 캐시를 통해 www.naver.com 해당하는 도메인네임을 찾고, 이에 매칭되는 IP주소를 반환한다.

2) DNS 서버에 요청

만약 DNS 캐시에 www.naver.com 해당하는 도메인네임이 없다면, DNS서버에 해당 주소에 매칭되는 IP주소를 요청하여 반환받는다.

 

* DNS : 도메인네임과 IP주소를 매칭한 전화번호부 역할의 서버

  DNS 캐시 : 전화번호부의 로컬 사본.

                 최근 방문한 기록을 토대로 도메인네임과 해당 IP주소를 캐싱함.

                 매번 DNS 서버에 요청하는 것보다 프로세스 속도를 높일 수 있음

 

2. 획득한 IP주소로 네이버 서버에 접속

웹 브라우저는 IP주소를 통해 인터넷상에서 네이버 서버(웹서버)의 위치를 찾아낸다.

(컴퓨터네트워크 수업때 들은 내용을 토대로 ,, 여러 라우터를 거쳐서, mac주소를 이용해서 등등)

그리고 TCP를 기반으로 하는 HTTP를 이용하여 웹브라우저와 웹서버가 통신(request, response)을 하게 된다.

 

웹 브라우저가 네이버 서버에 http://www.naver.com요청하면,

네이버 서버는 이에 해당하는 웹페이지를 응답한다.

 

클라이언트는 화면에 네이버 홈페이지를 출력한다(웹서버의 응답을 출력한 것).

이떄 DB와 연결되어 데이터를 주고 받거나 프로그램으로 데이터의 조작이 필요한 경우 WAS가 활용된다.

 

* 웹페이지는 정적 컨텐츠+동적컨텐츠를 함께 노출한다.

* 웹서버(web server) : 정적 컨텐츠(ex 변화하는 내용이없는 html 문서, css, imgae 등)를 처리함.

                              대표적은 웹 서버 : Nginx

 WAS(Web Application Server) : 동적 컨텐츠를 처리함.(때문에 DB와 연결되어 필요한 데이터를 받음)

                                            대표적인 WAS : Tomcat

 

WAS는 정적 컨텐츠도 처리할 수 있기 때문에 웹서버의 역할도 수행 가능하다.

하지만 정적 컨텐츠도 처리하게 되면 동적 컨텐츠의 처리가 지연되게 된다.

따라서 정적 컨텐츠는 웹서버가, 동적 컨텐츠는 WAS가 처리한다.

 

출처 : https://sehun-kim.github.io/sehun/spring-short-story

WAS는 여러 servlet을 담을 수 있는 servlet container라고 할 수 있다.

 

* servlet : 자바에서 만든 CGI 

  CGI(Common Gateway Interface) : 정보를 주고 받는 방법이나 규약이다.

 

사용자의 요청에 따른 각각의 처리를 servlet들이 수행하는데, 

WAS는 받은 요청에 따라 적용되는 servlet을 routing해준다고 할 수 있다.

 

WAS에 servlet을 등록하는 것은 번거롭고 제한적이기 때문에 

그냥 Spring MVC 하나를 등록하여 (하나의 servlet이라고 칠 수 있다)

그 안에서 요청에 대한 응답을 줄 수 있는 handler(서버의 application)들을 만든다.

 

handler(서버의 application)는 클라이언트(브라우저의 html)의 요청(http request)에 따라 응답(html 문서)를 만들어 돌려준다.

 

 

◆참조한 글, 더 자세한 설명에 적힌 글

https://aws.amazon.com/ko/route53/what-is-dns/

 

DNS란 무엇입니까? – DNS 소개 - AWS

12개월 동안 AWS 프리 티어에 액세스하여 연중무휴 24시간 고객 서비스, 지원 포럼 등을 비롯한 AWS Basic Support 기능을 사용해 보십시오. 현재 Amazon Route 53은 AWS 프리 티어에서 제공되지 않는다는 점

aws.amazon.com

https://sehun-kim.github.io/sehun/spring-short-story/

 

[Spring] Request 흐름과 WAS에 대한 아주 짧은 이야기

Spring은 Servlet이다? Tomcat은 WAS다?, JDBC와 ORM은?

sehun-kim.github.io

https://velog.io/@khsi12345/client-and-server-communication

 

클라이언트와 서버 통신

클라이언트는 화면에 보이고 사용자와 상호작용을 하는 브라우저(애플리케이션도 될 수 있다.)를 말하며, 서버는 클라이언트에서 필요한 데이터를 요청하면 최종적으로 도달하는 추상적인 공

velog.io

https://velog.io/@koseungbin/Web-Server-Web-Application-Server

 

Web Server, Web Application Server

Wiki에 따르면, 서버는 클라이언트에게 네트워크를 통해 정보나 서비스를 제공하는 컴퓨터 프로그램이다.Web에서는 목적에 따라 Web Server, Web Application Server 두 가지 Server로 구분된다.Web Server는 정

velog.io

https://helloworld-88.tistory.com/71

 

[기본] WEB 과 WAS 차이

 WEB, WAS 란? ■ 웹서버(WEB)란? 웹서버는 말그래도 작성된 html페이지 등을 네트워크망에 종속되지 않고, 웹서비스를 할 수 있도록 어플리케이션 - 웹 서버(소프트웨어): 웹 브라우저 클라이언트로

helloworld-88.tistory.com

 

'WEB' 카테고리의 다른 글

SSR vs CSR  (0) 2021.08.17
Comments