[Network] URL 검색창에 네이버를 입력하면?

yongkini ·2021년 9월 24일
0

Network

목록 보기
4/5
post-custom-banner

브라우저 URL 입력창에 www.naver.com 을 입력했을 때를 예시로 웹 통신의 큰 흐름을 알아보고자 한다.

1) URL 창에 'www.naver.com'을 입력 후 엔터
2) 브라우저 URL 정보를 해석한다.
** URL의 구조 :

scheme:[//[user:password@]host[:port]][/]path[?query][#fragment]

3) URL이 문법에 맞으면, 퓨니코드(Punycode)를 이용해 url의 호스트 부분을 인코딩 한다.

퓨니코드(Punycode)는 유니코드 문자열을 호스트 이름에서 허용된 문자만으로 인코딩하는 방법

4) HSTS (HTTP Strict Transport Security)목록을 로드해서 HTTPS로 보낼지, HTTP로 보낼지 결정한다.

HTTP Strict Transport Security란?
: HTTP 대신 HTTPS만을 사용하여 통신해야 한다고 웹 사이트가 웹 브라우저에 알리는 보안기능

5) DNS를 조회한다. 이 때, 조회하기 전에 캐싱된 주소가 있는지를 먼저 확인한 다음에, 정보가 없으면 요청을 보낸다.

6) IP주소를 받은 다음에 브라우저는 운영체제의 프로토콜 스택(운영체제에 내장된 네트워크 제어용 소프트웨어)에 일종의 대리 송신 문의를 하게 된다. 프로토콜 스택을 택배 회사에 비유해보면, 브라우저가 직접 http request를 보낼 수 없기에 프로토콜 스택에 위탁해서 보내도록 하는 것이다.

7) 프로토콜 스택이 브라우저로부터 메시지를 받는다.
브라우저로부터 받은 메시지를 패킷 속에 저장한다.

8) 그리고 수신처 주소 등의 제어정보를 덧붙인다([*ARP(Address Resolution Protocol)로 대상의 IP와 MAC address를 알아낸다.]. 그런 다음, 패킷을 LAN 어댑터에 넘긴다.

9) LAN 어댑터는 다음 Hop의 MAC주소를 붙인 프레임을 전기신호로 변환시킨다. 마지막으로 해당 신호를 LAN 케이블에 송출시킨다.

10) 이 신호는 이제, 스위치, 허브, 라우터를 거쳐 프로바이더(skt 등의 통신사) 에게 전달되고, 인터넷으로 들어가게 된다.

11) 통신사의 라우터를 거쳐 패킷이 목적지를 향해 인터넷 핵심부로 들어가게 된다

12) 웹 서버측의 LAN에 도착하게 되면, 기다리고 있던 방화벽이 해당 패킷을 검사한다. 여기서 엑세스된 데이터가 캐시서버에 있는 데이터라면, 굳이 웹서버까지 갈 필요없이 읽을 수 있기에 캐시서버에 의해서 판단이 이뤄진다.

13) 마지막으로, 패킷이 물리적인 웹 서버에 도착하면 웹 서버의 프로토콜 스택은 패킷을 추출하여 메시지를 복원하고 웹 서버 애플리케이션에 넘긴다. 그다음에 메시지를 받은 웹 서버 애플리케이션은 요청 메시지에 따른 데이터를 응답 메시지에 넣어 클라이언트로 회송한다. 왔던 방식대로 응답 메시지가 클라이언트에게 전달된다.

마무리

: 나중에 좀 더 디테일하게 포스팅을 해야할 것 같은데, 일단 이 블로그를 참고해서 심화 공부를 하면 좋을 것 같다.

profile
완벽함 보다는 최선의 결과를 위해 끊임없이 노력하는 개발자
post-custom-banner

0개의 댓글