브라우저에 naver.com, google.com을 입력후 일어나는일
대기열, 캐싱, DNS, 라우팅, ARP, 초기연결을 거쳐 컨텐츠를 다운받게 되고 이 후 브라우저 렌더링 과정을 거쳐 네이버(구글)라는 화면이 나타나게 된다. 또한 이러한 과정이 캡슐화, 비캡슐화 과정을 거쳐서 이뤄지게 된다.
- 대기열
브라우저는 주소창입력에 대한 요청을 대기열에 넣는다
- 캐싱
캐싱은 요청된 값의 결과값을 저장하고 그 값을 다시 요청하면 다시 제공하는 기술
이는 공유프록시캐시와 브라우저 캐시로 나눠진다.
- 브라우저 캐시
브라우저캐시는 쿠키, 로컬스토리지 등을 포함한 캐시이다. 브라우저 자체가 사용자가 HTTP를 통해 다운로드하는 모든 문서를 보유하는것을 말한다.
어떤 사이트를 갔다가 다시 방문하면 빠르게 컨텐츠가 나타나는것이 브라우저 캐시의 역할이다. 인터넷 사용기록을 삭제하고 싶어 눌렀던것 쿠키, 기타사이트 데이터, 캐시가 브라우저 캐시를 말한다.
- 공유 프록시 캐시
요청한 서버에서 프록시서버가 캐싱을 하는것을 말한다. Node.js로 서버를 구축한다면 앞단의 프록시서버로 nginx서버를 둬서 이 서버를 캐싱서버로 사용할 수 있다.
- DNS
브라우저가 요청한 IP주소를 확인하는 단계
DNS는 도메인 이름과 IP주소를 매핑해주는 서버다 'www.naver.com'에 DNS 쿼리가 오면 Root DNS -> .com DNS ->
.naver DNS -> www DNS 과정을 거쳐 완벽한 주소를 찾아 IP주소를 매핑한다.
바로 DNS서버로 요청을 전달하는것은 아니고 먼저 컴퓨터 메모리에 있는 호스트 파일 등 캐시를 확인한 후
캐시미스가 일어나면 DNS서버로 요청한다.
- IP라우팅 -> APR: 서버를 찾음
- 초기 연결
브라우저가 TCP 3웨이 - 핸드셰이크 및 SSL연결등을 통해 연결을 설정한다. 이후 요청을 보낸 후 해당 요청한 서버로부터 응답을 받는다. (네이버)
- 콘텐츠 다운로드
브라우저는 서버로부터의 응답을 수신한다.