IT지식/Computer Science

사용자가 요청한 데이터가 서버에 갔다 렌더링 되는 과정

맨땅에헤딩개발자 2025. 5. 11. 12:16

1. 사용자가 브라우저 주소창에 URL을 입력합니다.

 

2. 브라우저의 DNS조회( 사용자가 입력한 주소를 IP로 바꾸는 과정 )

  컴퓨터는 기본적으로 IP주소를 기반으로 요청을 보내게 됩니다.
  하지만 사용자 입장에선 IP를 일일이 외우기 힘드니 편리한 주소(도메인)를 입력하면
  DNS서버에서 주소를 IP로 변환해줍니다.

 

  * 브라우저 캐시 확인( 과거에 접속한 기록이 남아있으면 주소를 변환과정없이 바로 IP 반환)

  * 기록이 없으면 DNS서버 계층적 탐색 후 IP 주소 반환

 

3. TCP/IP 커넥션 생성

   기본적으로 모든 HTTP/HTTPS 통신은 패킷 교환 네트워크 프로토콜들의 계층화 된 집합인 TCP/IP를 통해 이루어진다.

   이 커넥션은 데이터의 손실을 방지하고 순서를 보장한다.

 

   3-Way 핸드셰이크 과정:

   1. 클라이언트가 서버에 연결 요청 SYN(Sunchronize) 패킷을 전송합니다.(SYN에는 초기 시퀀스 번호가 포함)

   2. 서버가 클라이언트의 요청을 수락하고 클라이언트의 시퀀스번호+1을 한  SYN-ACK(Synchronize + Acknowledgment) 패킷         으로 응답합니다. (자신의 초기 시퀀스 번호 포함)

   3. 클라이언트는 서버의 SYN-ACK를 수신하고, 연결을 확인하기 위해 서버의 시퀀스 번호에 1을 더한 ACK 패킷을 전송합니다.

 

   위 과정을 통해 클라이언트와 서버 간의 신뢰성 있는 연결이 성립됩니다.

      

 

4. HTTP/HTTPS 요청 생성(브라우저 -> 웹서버)

     입력된 IP주소와 프로토콜 종류 그리고 내용을 기반으로 요청메시지를 전달합니다.

     * 프로토콜은 웹 서버의 요청이므로 HTTP/HTTPS로 고정합니다.

 

     브라우저는 HTTPS 요청이 들어오면 터널을 통해 TLS/SSL 핸드셰이크를 시작합니다.

 

  * 터널이란 브라우저와 Reverse Proxy(프록시) 사이에 위치하며 주로 데이터 보호를 위해 암호화 통신 채널을 생성합니다.

    HTTPS로 들어온 요청을 TLS/SSL터널이 데이터를 암호화 합니다.

 

     TTL/SSL 핸드셰이크 과정:

     1. ClientHello: 클라이언트가 서버에 암호화 방식 제안

     2. ServerHello: 서버가 사용할 암호화 방식 제안

     3. Certificate(SSL 인증서): 서버가 SSL 인증서 전송

     4. Key Exchange(대칭키 생성): 클라이언트가 세션 키 생성

     5. Encrypted Data: 대칭키로 암호화된 데이터 통신 시작

 

4.Proxy의 유무

   Proxy에서 각 종 웹 필터링, 캐싱, 로드 밸런싱을 거쳐 웹 서버로 데이터가 흐르게 됩니다.

   이 때 사용자가 요청한 데이터가 프록시 서버에 캐싱이 되어있을 경우 서버를 거치지 않고 데이터를

   반환하기에 성능이 크게 향상됩니다. 또한 로드밸런싱을 통해 트래픽을 각 서버에 분산시켜줍니다.

 

   *Proxy란?

   브라우저와 서버 사이에 위치하여 보안, 성능, 접근 제어, IP 보호 등을 담당하는 중계서버입니다.

   위치에 따라 브라우저 - 웹 서버 사이는 Forward Proxy, 웹 서버 - WAS사이는 Reverse Proxy라 칭합니다.

  

5. 웹 서버에서 정적 파일 반환

    웹 서버에서 요청한 내용을 읽어 정적 파일을 제공하고 동적 파일은 WAS서버로 요청을 전달합니다.

 

6. WAS는 웹 서버에서 요청한 전달 값을 읽어 동적 파일을 반환합니다.

 

1번부터 6번까지의 과정을 통해 사용자가 요청한 정보를 서버에서 들고와 화면에 보여줍니다.

(우선 기본 바탕은 이 정도로만 이해하고 넘어가고 추후 좀 더 자세한 내용을 기록하겠습니다.)