티스토리 뷰

IT/Network

HTTP 프로토콜 완전 정복 - OSI 7계층과 TCP 위에서의 동작 방식

Stv 2025. 4. 8. 19:57

목차


    1. HTTP란 무엇인가?

    : HTTP(HyperText Transfer Protocol)는 웹에서 데이터를 주고받는 애플리케이션 계층의 통신 규약이다. HTML, CSS, JS, 이미지, JSON 등 모든 웹 자원을 클라이언트와 서버 간에 전달할 때 사용된다.

     

    • 비연결성(Connectionless) : 요청-응답이 끝나면 연결을 끊음
    • 무상태성(Stateless) : 이전 요청 상태를 기억하지 않음
    • 텍스트 기반 프로토콜 : 사람이 읽을 수 있는 방식

    2. HTTP는 OSI 7계층에서 어디에 해당할까?

     

    • OSI 7계층 관점에서는 HTTP는 애플리케이션 계층에 위치 
    • OSI 7계층에 대한 내용은 아래 링크 참고 바람
     

    네트워크 기본 개념 및 OSI 7 Layer 완전 정복

    오늘은 네트워크의 기본 개념과 OSI 7계층을 살펴보고, HTTP 요청과 응답이 OSI 7계층을 통해 어떻게 처리되는지까지 자세히 알아보려고 한다. 1. 네트워크란 무엇인가?: 네트워크란 장치들이 서로

    glog-07.tistory.com

     

    3. HTTP의 구조

    :요청과 응답

     

    📤 클라이언트 -> 서버 : HTTP 요청 (Request)

     

    GET /index.html HTTP/1.1
    Host: www.example.com
    User-Agent: Mozilla/5.0
    Accept: text/html

     

    • 요청 라인 : 요청 방식(GET/POST), 경로, HTTP 버전
    • 헤더 : 클라이언트 정보, 요청 메타데이터
    • 본문(Body) : POST나 PUT일 때 데이터 포함

     

    📤 서버 -> 클라이언트 : HTTP 응답 (Response)

     

    HTTP/1.1 200 OK
    Content-Type: text/html
    Content-Length: 1256
    
    <html>...</html>

     

    • 상태 라인 : HTTP 버전, 상태 코드, 상태 메시지
    • 헤더 : 서버 정보, 콘첸츠 형식, 캐시 등
    • 본문(Body) : 실제 콘텐츠(HTML, JSON 등)

     

    4. HTTP와 TCP의 관계

    : HTTP는 TCP 위에서 동작한다. 즉, HTTP는 전송 계층(Transport Layer)에서 TCP의 도움을 받아 신뢰성 있는 통신을 수행한다.

     

    🌊 흐름 예시 (클라이언트 기준)

    1. 브라우저가 HTTP 요청을 만든다.
    2. OS는 요청을 TCP 세그먼트로 감싼다.
    3. TCP는 서버와 3-Way Handshake를 통해 연결
    4. IP 패킷으로 캡슐화 되어 네트워크 전송
    5. 서버가 응답 후 연결 종료 (4-Way Handshake)

    5. HTTP 상태 코드

    코드 의미 설명
    1xx Informational 처리 중
    2xx Success 요청 성공
    3xx Redirection 리다이렉션 필요
    4xx Client Error 요청 오류(예 : 404)
    5xx Server Error 서버 내부 오류 (예 : 500)

     

    실무에서 많이 보는 코드 : 200, 201, 301, 302, 400, 401, 403, 404, 500

     

    6. HTTP의 요청/응답 헤더

    : 헤더는 브라우저와 서버가 서로의 상태와 한경을 주고받는 중요한 요소이다.

     

    ✅ 요청 헤더 예시

    헤더 설명
    Host 요청 대상 도메인
    User-Agent 브라우저 정보
    Accpet 응답 받을 콘텐츠 타입
    Cookie 클라이언트의 저장 쿠키

     

    ✅ 응답 헤더 예시

    헤더 설명
    Content-Type 콘텐츠 형식 (예 : text/html)
    Content-Length 본문 길이
    Set-Cookie 클라이언트에 쿠키 저장 요청
    Cache-Control 캐시 정책

     

    7.실제 요청의 흐름을 OSI 7계층과 함께 살펴보자

     

    ✅ 예시 : 브라우저에서 https://www.exaple.com 요청

     

    1. Application (HTTP) : 요청 생성
    2. Transport (TCP) : 3-Way handshake로 연결, 데이터 세그먼트화
    3. Network (IP) : 서버 IP 주소로 라우팅
    4. Data Link/Physical : 실제 패킷 전송
    5. 서버 도착 후 역순으로 응답 전송

    8. HTTP/1.1 vs HTTP/2 vs HTTP/3 간략 비교

    버전 특징
    HTTP/1.1 순차적 요청 처리, 연결 재사용 지원
    HTTP/2 멀티플렉싱(병렬 처리), 헤더 압축
     HTTP/3 TCP 대신 QUIC(UPD 기반) 사용 -> 더 빠르고 안정적인 전송 가능

     

    9. HTTPS는 어떻게 동작할까?

    1. HTTP + SSL/TLS
    2. 실제 요청/응답은 암호화된 TCP 위에서 수행됨
    3. TCP 연결 -> TLS 핸드셰이크 -> 암호화된 HTTP 통신

    ✅ 정리

    • HTTP는 애플리케이션 계층에서 동작하며, TCP 위에서 신뢰성 있는 통신을 수행함
    • 요청/응답은 텍스트 기반이며, 헤더와 바디로 구성됨
    • OSI 7계층에서 보면 HTTP는 상위 계층에 있지만, TCP/IP와 밀접하게 연결
    • HTTP 상태 코드, 헤더의 의미를 명확히 이해하면 디버깅/최적화 시 큰 도움이 됨

    🔜 다음 포스팅에서는 "웹에서 사용자 상태를 유지하는 방법" 즉, 쿠키, 세션, JWT 토큰, 인증 방식의 흐름에 대해서 상세히 설명할 예정이다.