네트워크

웹 브라우저에 URL을 입력하면 벌어지는 일

honey.kikiki 2023. 9. 21. 22:04
728x90

요즘 원티드 프리온보딩 및 개발자 스터디모임에 다니면서 최적화 이야기를 많이 듣게 되었습니다. 그중 많이 들리는 내용이 네트워크 최적화였습니다. 지금까지 대충은 알고 있었지만 자세히 알아보고 싶어 공부를 시작하게 되었다. 내용을 기록해 두면 공부가 잘되었던 기억이 있어서 내용을 정리해 기록하고 공유해보려고 합니다. 뒤로 갈수록 중요한 내용이니 끝까지 보길 권장드립니다.

 

 

 

웹 브라우저가 www.naver.com을 입력하면 발생하는 일련의 과정을 살펴보겠습니다.

 

  1. 브라우저 주소창에 주소 입력:
    • 사용자가 웹 브라우저의 주소창에 "www.naver.com"을 입력합니다.
  2. DNS 조회:
    • 브라우저는 입력한 도메인 이름인 "www.naver.com"을 IP 주소로 변환해야 합니다.
    • 브라우저는 먼저 자체 캐시에서 DNS 정보를 확인합니다. 이전에 방문한 도메인의 경우, 캐시에 DNS 결과가 저장되어 있을 수 있습니다.
  3. ISP DNS 서버 조회:
    • 브라우저의 캐시에 DNS 정보가 없거나 만료된 경우, 브라우저는 사용자의 인터넷 서비스 제공업체(ISP)의 DNS 서버에 DNS 쿼리를 보냅니다.
    • ISP DNS 서버는 "www.naver.com" 도메인의 IP 주소를 찾아내고 이를 브라우저에 반환합니다.
  4. TCP 연결:
    • 브라우저는 DNS 조회로 얻은 IP 주소를 사용하여 웹 서버(네이버 서버)에 TCP 연결을 시도합니다.
    • TCP 연결은 웹 서버와 브라우저 간에 안정적인 통신 경로를 확립하는 단계입니다.
  5. HTTP 요청:
    • TCP 연결에 성공하면, 브라우저는 HTTP 프로토콜을 사용하여 웹 서버에 요청을 보냅니다.
    • 이 요청에는 사용자가 요청한 웹 페이지 및 추가 정보가 포함됩니다.
  6. 서버 응답:
    • 웹 서버는 브라우저의 요청을 받고, 요청된 웹 페이지 및 기타 콘텐츠를 서버에서 가져와 응답합니다.
    • 응답은 HTTP 응답 헤더와 웹 페이지의 본문으로 구성됩니다.
  7. 웹 페이지 로드:
    • 브라우저는 받은 응답을 해석하고 웹 페이지를 렌더링 합니다.
    • 웹 페이지의 HTML, CSS, JavaScript 등의 콘텐츠가 브라우저에 표시되고 사용자에게 시각적으로 표현됩니다.

 

이제 위에서 말한 중요한 내용이 나옵니다. 위에 일렬의 과정중 프론트 개발자가 관심을 가져야 하는 부분은 CDN과 GSLB의 역할입니다. 이제 CDN과 GSLB에 대해 알아보겠습니다.

 

CDN과 GSLB는 무엇인가?

  1. CDN (Content Delivery Network):
    • CDN은 콘텐츠 전송 네트워크를 나타내며, 전 세계적으로 분산된 서버 네트워크로 구성됩니다.
    • 주로 정적 콘텐츠(이미지, 스타일 시트, 스크립트 파일 등)를 저장하고 제공하기 위해 사용됩니다.
    • 사용자가 웹 페이지를 요청하면, 가장 가까운 CDN 서버에서 해당 콘텐츠를 제공하므로 로딩 시간이 단축되고 성능이 향상됩니다.
    • 대규모 웹 트래픽을 처리하고 DDoS 공격으로부터 웹 서버를 보호하는 데 도움을 줍니다.
  2. GSLB (Global Server Load Balancing):
    • GSLB는 글로벌 서버 로드 밸런싱을 나타내며, 여러 지역 또는 데이터 센터에서 호스팅 되는 웹 서비스의 가용성과 신뢰성을 향상하는 데 사용됩니다.
    • 사용자 요청을 받으면 GSLB는 가장 적합한 서버로 트래픽을 분산합니다. 이를 통해 부하를 균형 있게 분산하고 장애 시에 다른 서버로 자동으로 트래픽을 전환할 수 있습니다.
    • 지리적으로 분산된 사용자 그룹에 대한 최적의 서버 선택을 지원하여 지역별 성능 최적화를 가능하게 합니다.

 

꼭 기억해야 할 내용은 CDN은 "콘텐츠 전송을 최적화"하는 데 중점을 두며, GSLB는 "서버 로드 밸런싱 및 가용성을 최적화"하는 데 중점을 둡니다. 이 두 기술은 웹 성능 향상과 안정성을 제공하는 데 중요한 역할을 합니다.

 

 

CDN과 GSLB는 현대 웹 및 네트워크 아키텍처에서 중요한 역할을 하는 두 가지 기술입니다.이러한 기술을 이해하는 이유에 대해 살펴보겠습니다.

CDN과 GSLB를 사용 하는 이유

  1. 웹 성능 향상:
    • CDN (Content Delivery Network): CDN은 웹 콘텐츠를 지리적으로 분산된 서버에 저장하고 제공함으로써 웹 사이트의 성능을 향상합니다. 이는 사용자가 웹 페이지에 빠르게 액세스 할 수 있게 하며 웹 사이트의 로딩 시간을 줄입니다. 빠른 웹 사이트는 방문자들의 만족도를 높이고 검색 엔진 순위를 향상하는 데 도움이 됩니다.
  2. 높은 가용성 및 신뢰성:
    • GSLB (Global Server Load Balancing): GSLB는 서버 로드 밸런싱을 통해 서비스의 가용성과 신뢰성을 향상합니다. 이 기술은 여러 데이터 센터 또는 서버 사이에서 트래픽을 분산하여 단일 서버 또는 데이터 센터의 장애 시에도 웹 애플리케이션을 계속 사용할 수 있도록 합니다.
  3. 지리적 내결함성:
    • GSLB는 다양한 지역 또는 국가에서 웹 서비스를 제공할 때 중요합니다. 이 기술을 사용하면 사용자가 지리적으로 가장 가까운 서버로 연결되므로 지역별로 최적화된 경험을 제공할 수 있습니다.
  4. 보안 및 DDoS 대응:
    • CDN은 웹 사이트를 DDoS 공격으로부터 보호하는 데 도움이 되며, 정적 및 동적 콘텐츠에 대한 보안 계층을 제공합니다. GSLB는 트래픽을 분산하여 DDoS 공격에 대비하고 서버의 부하를 분산시켜 공격을 완화합니다.
  5. 글로벌 확장성:
    • CDN 및 GSLB는 글로벌 비즈니스에 필요한 확장성을 제공합니다. 이러한 기술을 활용하면 글로벌 사용자 베이스에 대한 확장이 용이하며 새로운 지역으로의 진출 및 서비스 제공이 단순화됩니다.

 

 

"결론"

CDN과 GSLB는 웹 성능 최적화, 가용성 및 신뢰성 향상, 지리적 내결함성 제공, 보안 및 글로벌 확장성을 위한 중요한 기술입니다. 이러한 기술을 이해하고 활용하면 온라인 비즈니스 및 웹 서비스의 효율성과 경쟁력을 향상할 수 있습니다.