-
인터넷 주소창에 URL을 입력 후 화면에 출력되는 과정Backend 2024. 2. 11. 14:23
"https://www.naver.com 을 주소창에 입력하면 어떻게 될까요?"
"리다이렉트, 캐싱, DNS, IP라우팅, TCP연결 구축을 거쳐 요청 응답이 일어나는 TTFB(Time to First Byte)가 시작되고 이후 컨텐츠를 다운받게 되고 이후 브라우저 렌더링 과정을 거쳐 네이버라는 화면이 나타나게 됩니다."
리다이렉트
리다이렉트가 있다면 리다이렉트를 진행하고, 없다면 그대로 해당 요청에 대한 과정이 진행된다.
캐싱
해당요청이 캐싱이 가능한지 가능하지 않은지를 파악합니다. 캐싱이 이미된 요청이라면 캐싱된 값을 반환하며 캐싱이 되지 않은 새로운 요청이라면 그 다음 단계로 넘어갑니다. 캐싱은 요청된 값의 결과값을 저장하고 그 값을 다시 요청하면 다시 제공하는 기술입니다. 이는 브라우저캐시와 공유캐시로 나눠집니다.
브라우저캐시
브라우저캐시는 쿠키, 로컬스토리지 등을 포함한 캐시.
개인캐시(private cahche)라고도 한다.
브라우저 자체가 사용자가 HTTP를 통해 다운로드하는 모든 문서를 보유하는 것을 말한다.
예를 들어 어떤 사이트를 갔다가 다시 방문하면 굉장히 빠르게 컨텐츠가 나타난다. 그것이 ⮕ 브라우저캐시
인터넷 사용기록을 삭제하고 싶어서 누르려고 하면 쿠키 및 기타 사이트 데이터, 캐시 ⮕ 이부분
공유캐시
공유 캐시는 클라이언트와 서버 사이에 있으며 사용자간에 공유할 수 있는 응답을 저장할 수 있다.
공유할 수 있는 응답을 저장할 수 있다.
대표적인 예로 요청한 서버 앞단에 프록시 서버가 캐싱을하는 것을 말한다.
이를 리버스 프록시를 둬서 내부서버로 포워드 한다고도 말한다.
예로 Nginx는 보통 node.js앞에 있는 캐싱서버이다.
캐싱서버로 많이 쓰이는 것 : AWS의 cloud front, cloudflare
DNS
DNS(Domain Name System) : 계층적인 도메인 구조와 분산된 데이터베이스를 이용한 시스템으로 FQDN을 인터넷 프로토콜인 IP로 바꿔주는 시스템
이는 DNS관련 요청을 네임서버로 전달하고 해당 응답값을 클라이언트에게 전달하는 리졸버, 도메인을 IP로 변환하는 네임서버 등으로 이루어져있다.
✱ FQDN(Fully Qualified Domain Name) : 호스트와 도메인이 합쳐진 완전한 도메인 이름
eg. www 등은 호스트 부분이며, naver.com은 도메인이라고 한다.
www : host 주소 또는 Third level 도메인, sub 도메인이라고 불림.
naver : second level 도메인
com : top level 도메인
컴퓨터와 컴퓨터는 IP주소를 기반으로 통신하기 때문에 IP로 바꿔주어야 한다.
www.naver.com ⮕ IP
예를들어 www.naver.com에 DNS 쿼리가 오면 오른쪽부터 역순으로 [Root DNS] ⭢ [.com DNS] ⭢ [.naver DNS] ⭢ [.www DNS] 과정을 거쳐 완벽한 주소를 찾아 IP주소를 매핑한다. (eg. www.naver.com = 127.121.1221.121
IP 라우팅
해당 IP를 기반으로 라우팅, ARP 과정을 거쳐 실제 서버를 찾는다.
TCP 연결 구축
브라우저가 TCP 3way - 핸드셰이 및 SSL 연결 등을 통해 연결을 설정한다. 이 후 요청을 보낸 수 드디어 해당 요청한 서버로부터 응답을 받는다.
콘텐츠 다운로드
요청한 컨텐츠를 서버로부터의 다운받는다.
브라우저렌더링
받은 데이터를 바당으로 브라우저 엔진이 브라우저렌더링 과정을 거쳐 화면을 만든다.
'Backend' 카테고리의 다른 글
CRUD 개념 (0) 2024.05.26 [XML] 데이터포맷 XML (구성/HTML,JSON과 차이/활용) (1) 2024.02.11