현수의 제 2의 뇌
article thumbnail
반응형
면접 단골 문제라고 합니다. 면접관 입장에서는 한 질문으로 많은 답변을 들을 수 있기 때문에 대부분의 면접자리에서 나오는 문제입니다. OSI 7 계층과 연관지어 설명하라는 질문도 나온다고 합니다.

 

URL 파싱과 HTTP Request Message 작성 ✏️

사용자가 웹 브라우저에 URL을 입력하면, 브라우저는 그 URL을 파싱하고 그 정보를 바탕으로 HTTP Request Message를 생성합니다.

HTTP Request Message

 

DNS Lookup 👀

서버에 요청을 보내기 위해 브라우저는 https://www.google.com 이라는 도메인 이름은 IP 주소로 변환해야 합니다.

이를 위해 브라우저는 DNS Lookup 을 하게 됩니다.

이 과정에서 브라우저 -> hosts 파일 -> DNS Cache의 순서대로 도메인에 매칭되는 IP를 찾습니다.

그래도 찾지 못하면 루트 도메인 서버에서부터 서브도메인 서버 순으로 찾게 됩니다.

hosts 파일

해당하는 도메인주소의 IP를 DNS 서버에 정보를 제공받지 않고도 서버의 IP를 찾게 해주는 파일입니다.

만약 hosts 파일 안에 google.com 의 IP주소가 존재한다면 해당 IP를 가지고 접속하게 됩니다. 

만약 hosts 파일 안에 원하는 도메인의 IP주소가 없을 경우 DNS 서버에 접근하여 IP주소를 찾게 됩니다.

OS별로 가지고 있으며, DNS 서버가 존재하기 이전에 IP주소를 매핑하는 테이블로 사용하였는제 현재는 그 역할을 DNS 서버가 잘 해주기 때문에 일반적인 상황에서는 거의 사용하지 않는다고 볼 수 있다.

 

OS로 요청 전송 🔒

HTTP Request Message 가 작성되면, 브라우저는 이 요청을 운영체제에 전송합니다.

운영체제 내의 프로토콜 스택이라는 네트워크 제어용 소프트웨어는 이 요청을 패킷으로 변환하고 이를 LAN 어댑터에 전송합니다.

LAN 어댑터는 이를 전기 신호로 변환하여 송출합니다.

프로토콜 스택 [ TCP/IP 프로토콜 스택 ]

통신을 가능하게 하는 여러 프로토콜의 집합입니다.

이 스택은 일반적으로 계층적 구조로 구성되며, 각 계층은 서로 다른 네트워크 기능을 처리하게 됩니다.

우리가 흔히 보는 OSI 7 계층입니다.

이 프로토콜 스택을 통해, 운영체제는 네트워크 통신을 위한 데이터 패키지의 생성, 수신, 전송 등의 작업을 처리할 수 있습니다.

또한 프로토콜 스택은 데이터를 네트워크를 통해 안전하게 전송할 수 있도록 데이터 패키지를 적절하게 분해하거나 적절하게 조립하는 역할도 하게됩니다.

 

패킷 이동 ✈️

프로토콜 스택이 만들어낸 패킷은 스위칭 허브 등을 통해 인터넷 접속용 라우터로 전달되고, 이후 ISP를 통해 인터넷으로 이동합니다. 고속 라우터들 사이로 목적지까지 패킷이 이동합니다.

스위칭 허브를 통해 인터넷 접속용 라우터로 전달된다..?

컴퓨터에서 요청을 하면 데이터는 스위칭 허브를 통해 네트워크 내의 다른 장치들로 전달됩니다.

스위칭 허브는 데이터를 받아 그것이 목표로 하는 장치를 확인하고 그 장치로 데이터를 전달합니다.

 

하지만 인터넷에 접속하려면 이 데이터는 인터넷 서비스 공급자(ISP) 로 전달되어야 하며, 이를 가능하게 하는 장치가 인터넷 접속용 라우터(Router) 입니다.

 

서버 도달 🛬

ISP를 통해 핵심부를 통과한 패킷은 LAN에 도착합니다. 대부분의 웹 서버는 보안을 위해 방화벽을 사용합니다. 따라서 방화벽이 패킷을 검사한 후 필요하다면 캐시 서버로 보냅니다.

 

요청 처리와 응답 📌

패킷이 최종적으로 웹 서버에 도달하면, 서버의 프로토콜 스택이 패킷을 추출하고 메시지를 복원하여 웹 서버 애플리케이션에 전달합니다.

웹 서버 애플리케이션은 요청을 처리하고, 응답 데이터를 작성하여 클라이언트로 회송합니다. 이 응답 또한 클라이언트가 요청을 보낸 과정을 거쳐 클라이언트브라우저로 전달됩니다.

 

웹 페이지 렌더링 🖥

응답을 받은 웹 브라우저는 HTML, CSS, JavaScript 등의 웹 자원을 처리하여 웹 페이지를 렌더링하고 사용자에게 보여줍니다.

 

 

profile

현수의 제 2의 뇌

@부현수

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!