HTTP (HyperText Transfer Protocol)

기술노트

HTTP (HyperText Transfer Protocol)

비유로 쉽게 이해하기

HTTP는 **'웹 세상의 택배 시스템'**과 같습니다. 우리가 웹 브라우저(손님)에서 "이 웹페이지 보여줘"라고 요청(주문)하면, 웹 서버(가게)는 이 요청을 받고 HTTP라는 택배 시스템을 통해 웹페이지 데이터(상품)를 포장해서 우리에게 보내줍니다.

개요

HyperText Transfer Protocol (HTTP)는 월드 와이드 웹(WWW)에서 데이터를 주고받기 위한 가장 기본적인 애플리케이션 계층 프로토콜입니다. 웹 브라우저와 웹 서버가 서로 통신하기 위해 사용하는 언어 또는 규칙 체계라고 할 수 있습니다.

상세 설명

HTTP는 클라이언트-서버 모델을 기반으로 작동합니다. 사용자의 웹 브라우저와 같은 클라이언트가 특정 정보를 요청(Request)하면, 서버는 해당 요청을 처리하고 그에 대한 응답(Response)을 돌려줍니다. 예를 들어, 주소창에 `www.google.com`을 입력하면, 브라우저는 구글 서버에 "메인 페이지를 보여달라"는 HTTP 요청을 보내고, 구글 서버는 웹페이지의 HTML, CSS, 이미지 파일들을 HTTP 응답으로 보내주는 식입니다.

중요한 특징 중 하나는 상태 비저장(Stateless)이라는 점입니다. 각 요청은 이전 요청과 독립적으로 처리되어, 서버는 과거의 요청 내용을 기억하지 않습니다. 이는 시스템을 단순하게 만들지만, 로그인을 유지하는 등의 기능에는 쿠키나 세션 같은 별도의 기술이 필요합니다.

왜 중요할까요?

  • 웹의 기반: 우리가 매일 사용하는 인터넷 브라우징, 온라인 쇼핑, 뉴스 읽기 등 모든 웹 활동의 기초가 되는 통신 규칙입니다.
  • API의 표준: 많은 최신 애플리케이션들은 내부적으로 또는 외부 서비스와 통신할 때 HTTP 기반의 REST API를 사용합니다.

주요 특징

  • 클라이언트-서버 구조: 요청하는 쪽(클라이언트)과 응답하는 쪽(서버)이 명확히 구분됩니다.
  • 상태 비저장(Stateless): 서버가 클라이언트의 이전 상태를 기억하지 않아 각 요청이 독립적입니다.
  • 텍스트 기반 프로토콜: 사람이 읽을 수 있는 텍스트 형식으로 메시지가 구성되어 디버깅이 비교적 쉽습니다.
  • 확장성: 커스텀 헤더를 통해 필요한 정보를 추가하여 기능을 확장할 수 있습니다.
  • 다양한 메서드: GET(정보 요청), POST(정보 제출), PUT(정보 수정), DELETE(정보 삭제) 등 다양한 요청 방식을 지원합니다.

사용 사례

  • 웹 브라우저를 통한 웹 페이지 요청
  • RESTful API 통신
  • 파일 다운로드 및 업로드
  • 웹 서비스 간의 데이터 교환

관련 서비스/용어

참고 자료