자바와 스프링 부트로 생애 최초 서버 만들기

#6 HTTP란 무엇인가? 24.12.18

박태정 입니다. 2025. 2. 12. 15:34
반응형

HTTP란 무엇인가? 🌐

인터넷의 세계에서 정보를 주고받는 과정을 이해하려면 HTTP를 알아야 합니다. 이를 쉽게 설명하기 위해 택배 시스템에 비유해 보겠습니다. 이 글에서는 HTTP의 개념과 구성 요소를 알아보고, 일상적인 요청 방식(GET, POST)에 대해 설명해 드립니다.


1. 택배 시스템으로 이해하는 HTTP 🚛

현실 세계에서 택배를 보낼 때는 운송장이라는 표준을 사용합니다. 이 운송장은 택배의 목적지, 받을 사람, 내용물을 상세히 적는 규칙을 가지고 있죠.

이세계의 예시

  1. A 부족이 B 부족에게 요청하는 상황:

    • "내놓아라! 파란집 둘째에게, 포션 빨강색 2개."
      • 행위: "내놓아라" (GET)
      • 주소: "파란집"
      • 대상: "둘째"
      • 항목: "포션"
      • 세부 조건: "빨강색 2개"
  2. 물건을 창고에 넣는 상황:

    • "창고에 넣어라! 빨간집, 오크가죽."
      • 행위: "창고에 넣어라" (POST)
      • 대상: "빨간집"
      • 항목: "오크가죽"

이처럼 각 행위와 자원은 운송 전에 약속된 규칙을 따라야 합니다. 인터넷 세계에서도 데이터 전송을 위한 표준 규칙이 있는데, 바로 이것이 HTTP입니다.


2. HTTP 요청이란? 📨

HTTP는 컴퓨터 간 데이터를 주고받는 약속입니다. 예를 들어, 서울의 컴퓨터에서 대전의 컴퓨터로 데이터를 요청한다고 가정해 봅시다.

HTTP 요청의 구성 요소

  1. 메소드: 무엇을 할 것인지 지정 (예: GET, POST 등)
  2. 경로(Path): 어떤 자원에 접근할 것인지 명시 (예: /portion)
  3. 조건(Query): 요청의 세부 조건 추가 (예: color=red&count=2)
  4. Host: 요청을 보낼 대상 서버 정보

GET 요청 예시

GET /portion?color=red&count=2
Host: spring.com:3000
  • GET: "내놓아라!"
  • Path: "/portion"
  • Query: "color=red&count=2"
  • Host: 요청을 받을 서버 주소

3. POST 요청이란? 📦

POST 요청은 데이터를 서버에 저장할 때 사용됩니다. 이를 위해 추가 정보를 Body에 담아 전달합니다.

POST 요청 예시

POST /oak/leather
Host: spring.com:3000

오크 가죽 정보
  • POST: "저장하라!"
  • Path: "/oak/leather"
  • Host: spring.com:3000
  • Body: 오크 가죽 정보

서버는 Body에 담긴 정보를 기반으로 데이터를 저장합니다. POST 요청은 GET과 달리 Body를 사용한다는 점이 특징입니다.


4. Query와 Body의 차이 💡

HTTP 요청에서 데이터를 전달하는 방식은 크게 두 가지로 나뉩니다:

  1. Query: GET 요청에서 사용하며, URL에 포함됩니다.
  2. Body: POST 요청에서 사용하며, 요청의 하단에 별도로 작성됩니다.

추가로 PUT(수정 요청)과 DELETE(삭제 요청)도 존재합니다:

  • PUT: Body를 사용해 데이터를 수정합니다.
  • DELETE: Query를 사용해 데이터를 삭제합니다.

5. 마무리: HTTP를 이해하는 첫걸음 ✅

오늘은 HTTP의 기본 개념과 요청 방식(GET, POST)을 쉽게 설명해 보았습니다. 핵심 내용을 정리하자면:

  • HTTP는 인터넷 데이터 전송의 표준 약속입니다.
  • GET 요청은 데이터를 요청할 때, POST 요청은 데이터를 저장할 때 사용합니다.
  • 데이터를 전달하는 방식은 Query(GET)Body(POST)로 나뉩니다.
반응형