해당 글은 VSFe 깃허브 레포를 참고하여 작성한 글입니다. (아래 출처에 표기)
✅ www.github.com을 브라우저에 입력하고 엔터를 쳤을 때, 네트워크 상 어떤 일이 일어나는지 최대한 자세하게 설명해 주세요.
- 사용자 입력: 사용자가 웹 브라우저에 www.github.com을 입력하고 엔터를 누른다.
- 웹 페이지 URL 요청: 브라우저는 사용자가 입력한 URL을 분석한다.
- DNS 조회: 브라우저는 www.github.com에 해당하는 IP 주소를 얻기 위해 DNS 서버에 도메인 이름을 전송한다.
- 브라우저 캐시 확인: 브라우저는 로컬 캐시에 저장된 DNS 정보를 확인한다.
- OS 캐시 확인: 브라우저에 캐시 정보가 없으면, 운영체제(OS)의 DNS 캐시를 확인한다.
- 라우터 캐시 확인: OS에 캐시 정보가 없으면, 라우터에서 캐시를 확인한다.
- ISP의 DNS 서버 요청: 모든 캐시에서 찾지 못한 경우, 브라우저는 인터넷 서비스 제공자(ISP)의 DNS 서버에 쿼리를 보낸다.
- 최종 DNS 해석: ISP의 DNS 서버도 IP 주소를 모른다면, DNS 서버는 도메인에 대한 권한을 가진 최상위 DNS 서버에 요청을 전송하고, 최종적으로 www.github.com의 IP 주소를 얻어 낸다.
- IP 주소 반환: DNS 서버는 도메인 이름(www.github.com)에 해당하는 IP 주소를 브라우저에 반환한다.
- HTTP 요청 메시지 생성: 브라우저는 IP 주소를 사용하여 웹 서버에 연결하고, HTTP 프로토콜을 통해 웹 페이지를 요청하는 메시지를 생성한다.
- TCP 연결 설정: 이 HTTP 요청 메시지는 인터넷을 통해 TCP 연결을 설정하여 웹 서버로 전송된다. 이 과정은 3-way handshake로 이루어진다.
- 웹 페이지 URL 처리: 웹 서버는 클라이언트로부터 받은 요청을 처리하기 위해 URL을 분석한다.
- 웹 페이지 데이터 생성: 웹 서버는 요청된 페이지에 대한 데이터를 생성하거나 필요한 리소스를 준비한다. 이 단계에서 동적 콘텐츠가 생성될 수 있다.
- HTTP 응답 메시지 생성: 웹 서버는 생성된 웹 페이지 데이터를 HTTP 응답 메시지로 포장한다.
- HTTP 응답 메시지 전송: 이 HTTP 응답 메시지는 인터넷을 통해 다시 클라이언트(브라우저)로 전송된다.
- 웹페이지 데이터 수신: 브라우저는 서버로부터 받은 웹 페이지를 수신하여 분석한다.
- 사용자 출력: 브라우저는 받은 데이터를 기반으로 웹 페이지를 렌더링하여 화면에 출력한다.
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
📍 참고 자료
'Programming > Network' 카테고리의 다른 글
[Network] SOP, CORS (0) | 2024.08.18 |
---|---|
[Network] DNS (0) | 2024.08.18 |
[Network] 4-Way Handshake (0) | 2024.08.14 |
[Network] 3-way Handshake (0) | 2024.08.14 |
[Network] OSI 7계층 (0) | 2024.08.11 |