URL에 담긴 정보: 프로토콜 + 호스트명 + 리소스경로
- 예: https://comic.naver.com/index
- https 프로토콜
- : 파일의 장소
- // 파일의 장소로 호스트명이 올거야
- comic.naver.com 호스트명
- /index 리소스 위치
웹 브라우저에 www.naver.com을 입력하면 생기는 일
목적지 서버와 통신하려면, 목적지 IP/MAC주소를 알아야 함
- IP 주소는 뭐야? DNS 쿼리 요청을 보낸다
- 웹 브라우저 캐시 확인 → 있으면 쓴다.
- 없으면 DNS Resolver의 캐시 확인 → 있으면 쓴다.
- 없으면 DNS Resolver는 Root DNS 서버에게 물어본다.
- Root DNS 서버는 제일 뒤에 있는 com에 대한 네임 서버를 알려준다.
- DSN Resolver는 com 네임 서버에게 물어본다.
- com의 네임 서버는 naver.com에 대한 네임 서버를 알려준다.
- DSN Resolver는 naver.com 네임 서버에게 물어본다.
- naver.com의 네임 서버는 www.naver.com에 대한 IP 주소를 알려준다.
- DNS Resolver는 응답을 받고 DNS 캐시 테이블에 저장한다.
- 웹 브라우저도 응답을 받고 DNS 캐시 테이블에 저장한다.
- IP패킷의 목적지 주소로 응답 받은 IP를 설정한다.
- MAC 주소는 뭐야? ARP 요청을 보낸다.
- 로컬 PC의 ARP 캐시 테이블을 확인
- 없으면 로컬LAN에 목적지 IP에 대한 브로드캐스팅 ARP 요청을 보낸다.
- 로컬 LAN에 목적지 IP가 있으면 MAC주소를 보내준다.
- 없으면 로컬LAN의 디폴트 게이트웨이(라우터)에게 ARP를 보낸다.
- 로컬 PC의 ARP 캐시 테이블을 확인
- 없으면 디폴트 게이트웨이에 대한 브로드캐스팅 ARP 요청을 보낸다.
- 라우터는 MAC 주소를 보낸다.
- 로컬 PC는 도착지 MAC을 디폴트게이트웨이 주소로 하고 라우터로 프레임을 보낸다.
- 라우터는 출발지를 자신으로하는 브로드캐스팅 ARP 요청을 보낸다.
- 라우터는 ARP 응답을 받아 ARP 캐시 테이블에 저장하고 로컬 PC로 보낸다.
- 로컬 PC는 ARP 응답을 받으면 ARP 캐시테이블에 저장한다.
- * 참고: ARP는 L2레벨(로컬 LAN)에서만 가능해서 외부로 나가려면 라우터를 거쳐서 가야 한다.
목적지 서버에 TCP 커넥션 요청하여 TCP 커넥션 맺기
목적지 서버와 HTTP 통신하기
- 출발지에서 네이버로 요청을 보낸다: HTTP (요청) 메시지 > TCP 세그먼트 > IP 패킷(출발지IP:네이버IP) > 이더넷 프레임(출발지MAC:네이버MAC)
- 네이버에서 출발지로 응답을 보낸다: HTTP (응답) 메시지 > TCP 세그먼트 > IP 패킷(네이버IP:출발지라우터IP) > 이더넷 프레임(네이버MAC:네이버MAC)
- 내 로컬 PC에서 HTTP 응답을 받고 브라우저에 출력한다.
참고: 네이버 도메인 등록정보 - https://who.is/dns/naver.com | |
NS - 도메인명을 관리하는 서버 MX - 도메인명에 대응하는 메일 서버 A - 호스트명에 대응하는 IPv4 CNAME - 호스트명에 대응하는 Alias |
HTTP 쿠키
- 웹서버는 HTTP 응답으로 쿠키를 보낼 수 있다.
- 브라우저는 HTTP 응답을 받고, 쿠키가 있으면 브라우저에 저장한다.
- 브라우저가 똑같은 웹서버로 요청을 보낼 때, HTTP 요청에 쿠키가 자동으로 포함된다.
웹서버와 웹 애플리케이션 서버
- 웹 서버: 목적지 IP로서 동작하는 서버 (nginx)
- 정적 리소스는 바로 보내주고
- 동적 리소스는 웹 애플리케이션에 요청을 보낸다.
- 웹 애플리케이션 서버: (tomcat)
- 웹 서버의 요청을 받아 작업을 수행한다.
- 필요시 DB에 쿼리를 요청하기도 한다.
로드밸런서 있는 경우 | 로드밸런서 없는 경우 |
프록시 서버
- 프록시 서버를 디폴트게이트웨이 사이에 두면 어떤 웹페이지를 보는 지 추적하거나 특정 웹페이지에 접속을 막을 수 있다.
참고
책
- Gene. 『그림으로 배우는 네트워크 원리』. 서울: 영진닷컴 출판, 2020
DNS와 ARP
- https://www.youtube.com/watch?v=g6R9gRWIIK8 (강추)
- https://networkengineering.stackexchange.com/questions/6851/arp-request-outside-of-lan-target-machine-or-router-response
- https://www.futurelearn.com/info/courses/introduction-to-networking/0/steps/53452
HTTP 쿠키
웹 서버와 웹애플리케이션 서버
'CS기초 > 네트워크' 카테고리의 다른 글
[그림으로 배우는 네트워크 원리] 7장. 네트워크 보안 기술 (0) | 2022.08.28 |
---|---|
[그림으로 배우는 네트워크 원리] 6장. 라우팅 (0) | 2022.08.28 |
[그림으로 배우는 네트워크 원리] 5장. 이더넷과 무선 LAN (0) | 2022.08.28 |
[그림으로 배우는 네트워크 원리] 2장. 네트워크를 만드는 것 (0) | 2022.07.31 |
[그림으로 배우는 네트워크 원리] 1장. 네트워크의 기본 (0) | 2022.07.31 |