Programming/Network

[Network] www.github.com을 브라우저에 입력하면?

soeun2537 2024. 8. 18. 00:48
해당 글은 VSFe 깃허브 레포를 참고하여 작성한 글입니다. (아래 출처에 표기)

 

 www.github.com을 브라우저에 입력하고 엔터를 쳤을 때, 네트워크 상 어떤 일이 일어나는지 최대한 자세하게 설명해 주세요.

  1. 사용자 입력: 사용자가 웹 브라우저에 www.github.com을 입력하고 엔터를 누른다.
  2. 웹 페이지 URL 요청: 브라우저는 사용자가 입력한 URL을 분석한다.
  3. DNS 조회: 브라우저는 www.github.com에 해당하는 IP 주소를 얻기 위해 DNS 서버에 도메인 이름을 전송한다.
    1. 브라우저 캐시 확인: 브라우저는 로컬 캐시에 저장된 DNS 정보를 확인한다.
    2. OS 캐시 확인: 브라우저에 캐시 정보가 없으면, 운영체제(OS)의 DNS 캐시를 확인한다.
    3. 라우터 캐시 확인: OS에 캐시 정보가 없으면, 라우터에서 캐시를 확인한다.
    4. ISP의 DNS 서버 요청: 모든 캐시에서 찾지 못한 경우, 브라우저는 인터넷 서비스 제공자(ISP)의 DNS 서버에 쿼리를 보낸다.
    5. 최종 DNS 해석: ISP의 DNS 서버도 IP 주소를 모른다면, DNS 서버는 도메인에 대한 권한을 가진 최상위 DNS 서버에 요청을 전송하고, 최종적으로 www.github.com의 IP 주소를 얻어 낸다.
  4. IP 주소 반환: DNS 서버는 도메인 이름(www.github.com)에 해당하는 IP 주소를 브라우저에 반환한다.
  5. HTTP 요청 메시지 생성: 브라우저는 IP 주소를 사용하여 웹 서버에 연결하고, HTTP 프로토콜을 통해 웹 페이지를 요청하는 메시지를 생성한다.
  6. TCP 연결 설정: 이 HTTP 요청 메시지는 인터넷을 통해 TCP 연결을 설정하여 웹 서버로 전송된다. 이 과정은 3-way handshake로 이루어진다.
  7. 웹 페이지 URL 처리: 웹 서버는 클라이언트로부터 받은 요청을 처리하기 위해 URL을 분석한다.
  8. 웹 페이지 데이터 생성: 웹 서버는 요청된 페이지에 대한 데이터를 생성하거나 필요한 리소스를 준비한다. 이 단계에서 동적 콘텐츠가 생성될 수 있다.
  9. HTTP 응답 메시지 생성: 웹 서버는 생성된 웹 페이지 데이터를 HTTP 응답 메시지로 포장한다.
  10. HTTP 응답 메시지 전송: 이 HTTP 응답 메시지는 인터넷을 통해 다시 클라이언트(브라우저)로 전송된다.
  11. 웹페이지 데이터 수신: 브라우저는 서버로부터 받은 웹 페이지를 수신하여 분석한다.
  12. 사용자 출력: 브라우저는 받은 데이터를 기반으로 웹 페이지를 렌더링하여 화면에 출력한다.
ISP: 인터넷 서비스 제공자로, 개인이나 기업에 인터넷 접속 서비스를 제공하는 업체이다.

 

 

✅ DNS 쿼리를 통해 얻어진 IP는 어디를 가리키고 있나요?

DNS 쿼리를 통해 얻어진 IP 주소는 최종적으로 사용자가 요청한 도메인에 해당하는 서버의 실제 위치를 가리킨다. 

 

 

✅ Web Server와 Web Application Server의 차이에 대해 설명해 주세요.

 Web Server

Web Server(웹 서버): HTTP 프로토콜을 사용하여 클라이언트로부터 받은 요청에 대해 정적 콘텐츠(HTML, CSS, 이미지, JavaScript 파일 등)를 제공한다.

  • 예: Apache, Nginx, IIS(windows 전용 웹 서버)

 

 Web Application Server (WAS)

Web Application Server(웹 애플리케이션 서버): 동적인 웹 애플리케이션을 실행하는 데 사용된다. 이 서버는 클라이언트로부터 받은 요청에 대해 동적으로 생성된 콘텐츠(데이터베이스에서 가져온 데이터, 사용자 입력에 따라 생성된 HTML 등)를 제공한다.

  • 예: Tomcat, JBoss, Jeus, Web Sphere

 

 Web Server와 Web Application Server 비교

  Web Server (웹 서버) Web Application Server (WAS 서버)
정의 정적인 컨텐츠(HTML, CSS, 이미지 등)을 제공하는 서버 동적인 컨텐츠(웹 애플리케이션)을 처리하고 제공하는 서버
기능 HTTP 프로토콜을 이용해 클라이언트에게 웹 페이지 제공 웹 애플리케이션 실행 및 데이터 처리, 웹 서버와 클라이언트 간의 중계 역할
소프트웨어 Apache, Nginx, IIS Tomcat, JBoss, Jeus, Web Sphere
예시 회사 홈페이지, 블로그, 뉴스 사이트 등 온라인 쇼핑몰, 은행 인터넷 뱅킹, SNS 등

 

 

✅ URL, URI, URN은 어떤 차이가 있나요?

 URI (Uniform Resource Identifier)

URI (Uniform Resource Locator): 인터넷 리소스를 식별하기 위한 일관된 방법을 제공하는 고유 식별자이다. URL과 URN을 포함하는 상위 개념이다.

 

 URL (Uniform Resource Locator)

URL (Uniform Resource Identifier): URI의 한 유형으로, 인터넷 상의 리소스 위치를 가리키는 주소이다.

  • 예: https://www.example.com

 

 URN (Uniform Resource Name)

URN (Uniform Resource Name): URI의 한 유형으로, 리소스 위치와 관계없이 고유하게 식별할 수 있는 리소스 이름을 나타낸다.

  • 예: urn: isbn:0451450523 (특정 책의 ISBN)
리소스가 URN과 같은 이름으로만 식별될 경우, 해당 이름이 실제 위치에 매핑되어 있어야 리소스를 찾을 수 있다. 그러나 이렇게 이름만으로 리소스를 찾는 것은 어렵기 때문에, 대부분의 경우 URL을 사용한다.

 

 

📍 문제 출처

Tech-Interview / 03-NETWORK.md

 

📍 참고 자료