[CS 기초] HTTP 프로토콜 핵심 정리

JiMin LEE·2026년 1월 22일

CS

목록 보기
4/4

오늘 공부한 네트워크 계층의 핵심, HTTP(HyperText Transfer Protocol)의 주요 개념을 정리합니다.


1. HTTP란?

  • 정의: 웹 브라우저(클라이언트)와 웹 서버 간에 데이터를 주고받기 위한 응용 계층(Application Layer) 프로토콜입니다.
  • 특징: 주로 TCP/IP 위에서 동작하며, 기본 포트는 80번을 사용합니다.

2. 핵심 특징 (면접 단골 질문 ⭐)

① 비연결성 (Connectionless)

  • 클라이언트가 요청을 보내고 서버가 응답을 마치면 즉시 연결을 끊는 방식입니다.
  • 장점: 서버 자원을 효율적으로 관리할 수 있습니다.
  • 단점: 매 요청마다 새로운 연결을 맺는 오버헤드가 발생합니다. (HTTP/1.1부터 Keep-Alive로 보완)

② 무상태 (Stateless)

  • 서버가 클라이언트의 이전 상태를 기억하지 않습니다.
  • 장점: 서버의 확장성이 높습니다 (어느 서버가 응답해도 상관없음).
  • 단점: 로그인을 유지하기 위해 쿠키(Cookie), 세션(Session), 토큰(JWT) 같은 추가 메커니즘이 필요합니다.

3. HTTP 메시지 구조

[Image of HTTP request and response message structure]

  1. 시작줄 (Start Line / Status Line)
    • 요청: 메소드 URL 버전 (예: GET /index.html HTTP/1.1)
    • 응답: 버전 상태코드 상태문구 (예: HTTP/1.1 200 OK)
  2. 헤더 (Header): 메시지 전송에 필요한 부가 정보 (Host, User-Agent, Content-Type 등)
  3. 본문 (Body): 실제 전송할 데이터 (HTML, JSON, 이미지 등)

4. HTTP 주요 메소드

메소드역할특징
GET리소스 조회URL에 데이터 노출, 캐싱 가능, 멱등성(O)
POST리소스 생성Body에 데이터 포함, 서버 상태 변경, 멱등성(X)
PUT리소스 전체 수정리소스를 완전히 교체, 멱등성(O)
PATCH리소스 부분 수정리소스의 일부만 변경, 멱등성(X)
DELETE리소스 삭제특정 리소스 삭제 요청, 멱등성(O)

5. 필수 응답 상태 코드 (Status Code)

  • 2xx (Success): 성공. 200(OK), 201(Created)
  • 3xx (Redirection): 요청 완료를 위해 추가 동작 필요. 301(영구 이동), 302(임시 이동)
  • 4xx (Client Error): 클라이언트 요청 오류. 400(Bad Request), 401(미인증), 404(Not Found)
  • 5xx (Server Error): 서버 처리 오류. 500(Internal Server Error), 503(서비스 이용 불가)

6. HTTP의 발전 요약

  • HTTP/1.1: 커넥션 재사용(Keep-Alive) 도입.
  • HTTP/2.0: 멀티플렉싱을 통한 속도 개선.
  • HTTP/3.0: UDP(QUIC) 기반으로 지연 시간 최소

0개의 댓글