01·개념·8분

클릭하면 일어나는 일

주소를 입력하고 Enter를 누르면 페이지가 나타납니다. 그 두 순간 사이에 네 가지가 순서대로 일어납니다.

1. DNS: 이름에서 숫자로

컴퓨터는 이름이 아니라 IP 주소로 길을 찾습니다. 기기가 DNS 리졸버에게 "shop.example.com의 주소는?"이라고 물으면 숫자를 돌려받습니다. 답은 한동안 캐시되므로 바뀐 레코드가 모든 곳에서 보이기까지 시간이 걸립니다.

2. TLS: 사설 회선

페이지 데이터가 오가기 전에 브라우저와 서버가 암호화 키를 합의합니다. 서버는 브라우저가 신뢰하는 기관이 서명한 인증서로 자신을 증명합니다. 이 핸드셰이크가 자물쇠이며, 그 이후의 모든 것은 중간에 있는 누구도 읽을 수 없습니다.

3. 요청과 서버

브라우저가 요청을 보냅니다. 메서드(읽기는 GET, 보내기는 POST), 경로, 헤더(쿠키, 언어, 기기), 때로는 본문. 서버는 이를 읽고, 필요하면 데이터베이스에 묻고, 응답을 돌려줍니다. 상태 코드(200 정상, 404 없음, 500 서버 오류), 헤더, 그리고 페이지나 데이터.

4. 렌더링

브라우저가 HTML을 페이지로 바꾼 뒤 페이지가 참조하는 것들을 가져옵니다. 이미지, 폰트, 스크립트. 각각이 같은 단계를 거치는 또 하나의 요청이라, 이미지가 50개인 페이지가 5개인 페이지보다 느리게 느껴집니다.

그래도 빠르게 느껴지는 이유

정적 파일은 CDN에서 제공됩니다. 전 세계에 흩어져 방문자 가까이에 사본을 두는 서버들입니다. 재방문은 캐시된 사본을 씁니다. 그리고 좋은 서버는 수십 밀리초 안에 답하므로 보통 작업이 아니라 왕복이 비용입니다.

DontCode에서는

모든 배포는 정적 파일과 서버 코드로 빌드되어 CDN 뒤에 공개되고, https 인증서는 대신 발급하고 갱신합니다. 여러분의 일은 도메인 이름에서 끝납니다. 커스텀 도메인의 DNS 레코드가 직접 붙여 넣는 유일한 것입니다.

더 알아보기

이해도 확인

  1. 1.새 주소를 입력하고 Enter를 누르면 가장 먼저 일어나는 일은?

  2. 2.TLS 핸드셰이크의 인증서는 무엇을 증명할까요?

  3. 3.상태 코드 500이 돌아왔습니다. 문제가 생긴 쪽은?

  4. 4.CDN은 왜 사이트를 빠르게 만들까요?