1일 1CS(Computer Science)

사용자가 웹사이트에 처음 접근했을 때 발생하는 일련의 과정에 대해 설명해 주세요.

표자 2025. 4. 24. 09:10

웹사이트 접속의 숨겨진 여정: 백엔드 관점에서 🌐

웹사이트에 접속할 때 백엔드에서 일어나는 일련의 과정을 간단하게 설명해 드리겠습니다.

1. URL 입력과 DNS 조회 🔍

사용자가 브라우저에 www.google.com을 입력하면 가장 먼저 일어나는 일은 DNS 조회입니다. 이것은 도메인 이름을 실제 IP 주소로 변환하는 과정입니다.

2. TCP 연결 수립 🤝

IP 주소를 알아낸 후, 브라우저는 서버와 TCP 연결을 수립합니다. 이것은 '3-Way Handshake'라고 불리는 과정을 통해 이루어집니다:

  1. 클라이언트 → 서버: SYN (연결 요청)
  2. 서버 → 클라이언트: SYN-ACK (요청 수락)
  3. 클라이언트 → 서버: ACK (확인)

3. HTTP 요청 전송 📤

연결이 수립되면, 브라우저는 HTTP 요청을 서버에 전송합니다.

// Node.js에서 HTTP 요청 예시
const https = require('https');
const options = {
  hostname: 'www.google.com',
  port: 443,
  path: '/',
  method: 'GET'
};
const req = https.request(options, res => {
  console.log(`상태 코드: ${res.statusCode}`);
});
req.end();

4. 서버의 요청 처리 ⚙️

구글 서버는 이 요청을 받아 처리합니다. Next.js와 같은 프레임워크를 사용한다면 다음과 같은 로직으로 처리될 수 있습니다:

// Next.js API 라우트 예시
export default function handler(req, res) {
  if (req.method === 'GET') {
    // 데이터 처리 로직
    res.status(200).json({ message: '요청 처리 완료' });
  }
}

5. HTTP 응답 반환 📥

서버는 요청을 처리한 후 HTTP 응답을 클라이언트에게 반환합니다. 응답에는 상태 코드, 헤더, 본문 등이 포함됩니다.

6. 데이터 전송과 렌더링 🖥️

응답이 브라우저에 도착하면, HTML, CSS, JavaScript 등의 데이터가 해석되어 화면에 렌더링됩니다.

7. TCP 연결 종료 👋

모든 데이터 전송이 완료되면 4-Way Handshake 과정을 통해 TCP 연결이 종료됩니다.

  1. 클라이언트 → 서버: FIN (연결 종료 요청)
  2. 서버 → 클라이언트: ACK (요청 확인)
  3. 서버 → 클라이언트: FIN (서버 측 종료)
  4. 클라이언트 → 서버: ACK (확인)

OSI 7계층과의 관계 📚

이 모든 과정은 OSI 7계층의 다양한 계층에서 일어납니다.

  • 애플리케이션 계층(7): HTTP 요청/응답, DNS 쿼리
  • 전송 계층(4): TCP 연결 관리
  • 네트워크 계층(3): IP 주소를 이용한 라우팅
  • 데이터 링크 계층(2): MAC 주소를 통한 프레임 전송

 


 

 

사용자가 웹사이트에 처음 접근했을 때 발생하는 일련의 과정에 대해 설명해 주세요.

사용자가 www.google.com을 입력하면, 브라우저는 HTTP 프로토콜을 사용해 구글 웹 서버와 통신하려고 합니다.

HTTP는 OSI 7계층  애플리케이션 계층에서 동작하는 프로토콜입니다.

 

이때 브라우저는 요청한 도메인 이름(www.google.com)에 대한 IP 주소를 알아야 하기 때문에 DNS(Domain Name System) 서버에 질의합니다. 이 질의 과정 또한 애플리케이션 계층에서 이루어지며, DNS 서버는 해당 도메인에 대한 IP 주소(예를 들어, 142.250.190.78)를 응답합니다.

 

IP 주소를 얻은 후, 브라우저는 구글 서버와 통신을 시작합니다. HTTP는 TCP/IP를 기반으로 작동하므로, 데이터를 주고받기 전에 TCP 3-Way Handshake 과정이 필요합니다. 이 단계는 전송 계층(4계층) 에서 이루어집니다.

 

TCP 연결이 성립된 후, 브라우저는 HTTP Request 메시지를 생성하여 구글 서버에 보냅니다. 예를 들어, 브라우저는 “GET / HTTP/1.1”이라는 요청을 TCP 프로토콜을 통해 80번 포트로 전송합니다. 이때 데이터는 패킷(Packet) 형태로 네트워크를 통해 전달됩니다. 네트워크를 통해 데이터를 전송하기 위해서는 네트워크 계층(3계층) 에서 IP 주소를 사용하고, 데이터 링크 계층(2계층) 에서 MAC 주소를 사용하여 패킷이 전송됩니다.

 

구글 서버는 클라이언트의 요청을 수신하고 이를 처리한 후, HTTP Response 메시지를 생성하여 응답합니다. 서버는 요청이 성공했음을 알리는 200 OK 상태 코드와 함께 웹 페이지 데이터를 전송합니다. 브라우저는 이 응답을 받아 HTML, CSS, 자바스크립트 등의 데이터를 해석하여 화면에 페이지를 렌더링합니다.

 

모든 데이터 전송이 완료되면 클라이언트와 서버는 4-Way Handshake 과정을 거쳐 TCP 연결을 종료합니다.

728x90