본문 바로가기
CS/Web

HTTP 요청 흐름 이해하기

by 장장 2020. 8. 29.

 

면접장에서 받아 본 질문..

 

 

 

 

우리가 크롬 주소창에 URL 값을 입력시키면 요청이 어떤 식으로 처리될까?

 

 

 

→  IN  브라우저 

먼저, 브라우저 내부에서 URL에 적힌 값을 파싱하고, HTTP 요청 메시지를 만든다.

그리고 만들어진 요청 메시지를 웹 서버로 전송한다.

 

여기서, 브라우저는 메시지를 네트워크에 송출할 수 없으므로, OS에 의뢰하여 메시지를 전달한다! (OS는 택배시스템 같은 역할)

OS에 송신을 의뢰하기 위해서는 IP주소로 메시지를 받을 상대를 지정해야 하므로, DNS 서버를 조회해야 한다.

 

+ 참고) URL 문법

위키백과 - URL

 

→  IN  프로토콜 스택과 LAN 어댑터

프로토콜 스택(운영체제에 내장된 네트워크 제어용 소프트웨어, TCP/IP 계층)이 메시지를 받는다.

메시지를 패킷 속에 저장한 후 주소 등의 제어 정보를 덧붙인다.

패킷을 LAN 어댑터에게 넘긴다.

LAN 어댑터는 패킷을 전기신호로 변환시킨 후 신호를 LAN 케이블에 송출시킨다.

 

 

→  IN  허브, 스위치, 라우터

LAN 어댑터가 송신한 패킷이 스위칭 허브를 경유하여 인터넷 접속용 라우터에 도착한다.

라우터는 패킷을 프로바이더(ISP)에 전달하여 인터넷으로 들어가게 된다.

 

ISP (인터넷 서비스 제공자)란 인터넷 서비스를 제공하는 업체들을 칭한다.

우리나라의 경우 KT, LG유플러스, SK브로드밴드 등이 ISP 기업이다.

 

→  IN  액세스 회선,  프로바이더

패킷은 인터넷의 입구에 있는 액세스 회선(통신 회선)에 의해 POP (통신사용 라우터) 까지 운반된다.

POP를 거쳐 인터넷의 핵심부로 들어가게 된다.

고속 라우터들 사이로 패킷이 목적지까지 흘러가게 된다.

 

→  IN  방화벽,  캐시 서버

패킷이 인터넷의 핵심부를 통과하여 웹 서버측의 LAN에 도착한다.

방화벽이 도착한 패킷을 검사한 후, 웹 서버까지 가야하는 패킷인지 아닌지를 캐시 서버를 통해 조사한다.

 

액세스한 페이지의 데이터가 캐시서버에 있으면 웹 서버에 의뢰하지 않고 바로 값을 읽을 수 있다.

페이지의 데이터 중 다시 이용할 수 있는 것은 캐시 서버에 저장된다.

 

→  IN  웹 서버

패킷이 물리적인 웹 서버에 도착하면, 웹 서버의 프로토콜 스택은 패킷을 추출하여 메시지를 복원하고 웹 서버 애플리케이션에 넘긴다.

웹 서버 애플리케이션은 요청 메시지에 따른 데이터를 응답 메시지에 넣어 클라이언트로 회송한다.

왔던 방식대로 응답 메시지가 클라이언트에게 전달된다.

 

댓글