본문 바로가기
Computer Science/네트워크

웹 통신의 흐름

by eunnnn 2023. 3. 13.

웹이란?

WWW (world wide web) 의 약자이며 인터넷으로 연결된 컴퓨터를 통해 정보를 공유할 수 있는 공간을 뜻한다.

흔히들 웹과 인터넷을 통용하여 사용하는데 엄연히 다른 개념이다.

기본적으로 웹 통신은 HTTP 프로토콜을 사용하여 통신하는데, 클라이언트와 서버가 Request Response 를 주고받으며 통신이 일어난다.

 

IP주소와 도메인, 그리고 DNS의 관계

IP주소란, 서버의 고유 식별번호다. I127.0.0.1과 같은 형태의 숫자로 나타난다.

그러나  ip 주소는 숫자로 이루어진 조합이라 인간이 기억하기엔 무리가 있어, 우리는 기억하기 편한 언어 체계의 도메인 이름을 통해 웹 서버에 접속합니다.즉 도메인 이름은 사람이 쉽게 외울 수 있도록 IP주소를 어떠한 문자로 표현한 것이다.

 

이러한 도메인과 ip 주소를 매핑하는 역할을 하는 것이 DNS 서버다.

DNS 서버는 ip 주소와 도메인 간의 변환 작업을 수행하며, 사용자가 도메인 이름을 웹 브라우저에 입력하면 해당 사용자를 어떤 서버에 연결할 것인지를 제어하는 역할을 한다.

 

웹 브라우저의 렌더링 과정

 

 

웹 통신 동작의 전체적인 과정은 다음과 같다.

1. www.google.com을 브라우저 검색창에 친다

2. 브라우저는 캐싱된 DNS 기록들에서 www.google.com 에 대응되는 IP 주소가 있는지 확인한다.

  • 브라우저 캐시 -> OS 캐시 (DNS Cache Table 확인 - ipconfig/displaydns로 확인 가능) -> router 캐시( ex. 공유기) -> ISP 캐시 확인
  • 캐시는 네트워크 트랙픽 조절과 데이터 전송 시간을 줄여준다.

 

3. 요청한 URL이 캐시에 없으면, IP 주소를 찾기 위해 DNS query를 날린다.

 

4. 브라우저는 받은 IP 주소에 해당하는 서버와 인터넷 프로토콜 중 TCP를 사용하여 연결

 

5. Browser가 웹 서버에 HTTP 프로토콜에 따른 요청을 한다. (데이터 전송)

  • 클라이언트의 브라우저는 GET 방식으로 서버에 www.google.com 웹페이지를 요청한다.
  • 요청 시 다른 부가적인 정보들도 함께 전달된다.
    • Accept 헤더 : 받아들이 요청의 종류
    • User-Agent 헤더 : browser identification
    • Connection 헤더 : 추가적 요청을 위해 TCP connection 유지를 요청
    • 브라우저에서 얻은 쿠키 정보 등

 

6. 프로토콜 스택, LAN 어댑터를 이용해 필요한 정보를 송출하는 준비 과정을 거친다.

  • 프로토콜 스택(운영체제에 내장된 네트워크 제어용 소프트웨어)이 브라우저로부터 메시지를 받는다.
  • 브라우저로부터 받은 메시지를 패킷 속에 저장한다.
  • 그리고 수신처 주소 등의 제어정보를 덧붙인다.
  • 그런 다음, 패킷을 LAN 어댑터에 넘긴다
  • LAN 어댑터는 다음 Hop의 MAC주소를 붙인 프레임을 전기신호로 변환시킨다.
  • 신호를 LAN 케이블에 송출시킨다.

 

7. 인터넷에 접속하여 응답 목적지를 찾는다.

  • LAN 어댑터가 송신한 프레임은 스위칭 허브를 경유하여 인터넷 접속용 라우터에 도착한다.
  • 라우터는 패킷을 프로바이더(통신사)에게 전달한다.
  • 패킷은 인터넷의 입구에 있는 액세스 회선(통신 회선)에 의해 POP(Point Of Presence, 통신사용 라우터)까지 운반된다.
  • 패킷은 POP 를 거쳐 인터넷의 핵심부로 들어가게 되고, 수 많은 고속 라우터들 사이로 패킷이 목적지를 향해 흘러가게 된다.

 

8. 방화벽, 캐시 서버를 통해 전달된 패킷을 검사한다.

  • 패킷은 인터넷 핵심부를 통과하여 웹 서버측의 LAN 에 도착한다.
  • 기다리고 있던 방화벽이 도착한 패킷을 검사한다.
  • 패킷이 웹 서버까지 가야하는지 가지 않아도 되는지를 판단하는 캐시서버가 존재한다.

굳이 서버까지 가지 않아도 되는 경우를 골라낸다. 액세스한 페이지의 데이터가 캐시서버에 있으면 웹 서버에 의뢰하지 않고 바로 그 값을 읽을 수 있다. 페이지의 데이터 중에 다시 이용할 수 있는 것이 있으면 캐시 서버에 저장된다.

 

9. 서버가 요청을 처리하고 Response를 생성한 후 응답한다

  • 패킷이 물리적인 웹 서버에 도착하면 웹 서버의 프로토콜 스택은 패킷을 추출하여 메시지를 복원하고 웹 서버 애플리케이션에 넘긴다.
  • 웹서버는 브라우저로부터 Request 받고 Request Handler에게 전달하여 Request를 읽고 Response를(http response) 생성하게 한다.

10. 브라우저가 HTML content를 보여준다

 

 

 

'Computer Science > 네트워크' 카테고리의 다른 글

Cookie vs Session vs JWT  (0) 2023.06.18
TCP와 UDP  (1) 2023.03.12
네트워크 계층 구조  (0) 2023.03.12
REST의 정의와 HTTP 메소드  (0) 2023.03.10
CORS 에러 해결하기  (0) 2023.03.09