[CS] web - 주소창 검색 이후 과정
주소창에 naver.com을 검색을 때 일어나는 일
대기열, 캐싱, DNS, 라우팅, ARP, 초기연결을 거쳐 컨텐츠를 다운받게 되고 이후 브라우저렌더링 과정을 거쳐 네이버라는 화면이 나타나게 된다. 또한 이러한 과정이 비캡슐화, 캡슐화과정을 거쳐 이뤄진다. ex) 브라우저 주소창에
www.naver.com
검색
- 브라우저는 주소창 입력에 대한 요청을 대기열에 넣는다.
- 이때 HTTP/1.0 및 HTTP/1.1의 경우 오리진당 6개의 병렬적인 TCP연결만을 허용하며 HTTP/2의 경우 스트림 등을 통해 HTTP1.x의 헤드라인차단 등을 해결
- 캐싱: 요청된 값의 결과값을 저장하고 그 값을 다시 요청하면 다시 제공하는 기술
- 공유프록시 캐시: 요청한 서버에서 프록시서버가 캐싱을 하는 것. (Node.js로 서버 구축 시 앞단의 프록시서버로 nginx서버를 캐싱서버로 사용)
- 브라우저 캐시: 쿠키로, 로컬스토리지 등을 포함한 캐시, 브라우저 자체가 사용자가 HTTP를 통해 다운로드하는 모든 문서를 보유하는 것.
- DNS: 도메인 이름과 요청의 IP주소를 매핑.
www.naver.com
에 DNS쿼리가 오면 [Root DNS] -> [.com DNS] -> [.naver DNS] -> [www. DNS] 과정을 거쳐 완벽한 주소를 찾아 IP 매핑- 바로 DNS로 요청을 전달하지 않고 메모리에 있는 호스트 파일 등 캐시를 확인한 후 캐시미스가 일어나면 DNS로 요청
- 라우팅(hop by hop통신): IP주소를 찾아가는 과정으로, DNS에서 받은 IP주소를 기반으로 해당 목적지까지 라우팅 테이블, 서브네트워크 등을 고쳐 IP주소를 찾아가야 함
- 라우팅 테이블: 송신지에서 수신지까지 도달하기 위해 사용, 라우터에 들어가 있는 목적지 정보들과 그 목적지로 가기 위한 방법이 들어있는 리스트.
- 게이트웨이와 모든 목적지에 대해 해당 목적지에 도달하기 위해 거쳐야 할 다음 라우터의 정보를 가지고 있음
- 게이트웨이: 서로 다른 통신망, 프로토콜을 사용하는 네트워크 간 통신을 가능하게 하는 관문 역할을 하는 컴퓨터나 SW
- 라우팅 테이블: 송신지에서 수신지까지 도달하기 위해 사용, 라우터에 들어가 있는 목적지 정보들과 그 목적지로 가기 위한 방법이 들어있는 리스트.
- 찾은 IP주소를 바탕으로 ARP를 통해 물리적인 서버 주소를 찾는다.
- ARP: Address Resolution Protocol) IP주소로부터 MAC주소를 구하는 IP와 MAC주소의 다리 역할을 하는 프로토콜
- RARP: 실제 주소인 MAC주소를 가상 주소인 IP주소로 변환
- ARP Request 브로드캐스트로 IP주소에 해당하는 MAC주소 요청
- 해당 장치가 ARP Reply 유니캐스트를 통해 MAC주소 반환
- Naver 서버에 도달. 초기 연결
- 브라우저가 TCP 3way-handshake 및 SSL 연결 등을 통해 연결 설정하고, 요청을 보낸 후 해당 요청한 서버로부터 응답
- 콘텐츠 다운로드: 브라우저는 서버로부터의 응답 수신
- 브라우저 렌더링: 받은 콘텐츠로부터 브라우저 렌더링
캡슐화 비캡슐화
요청과 응답의 과정에서 비캡슐화, 캡슐화 과정을 거친다.
캡슐화 과정
-. 상위 계청의 헤더와 데이터를 하위 계층의 데이터 부분에 포함시키고 해당 계층의 헤더를 삽입하는 과정
비캡슐화 과정
-. 하위 계층에서 상위 계층으로 가며 각 계층의 헤더 부분을 제거하는 과정
댓글남기기