반응형
HTTP란 무엇인가? 🌐
인터넷의 세계에서 정보를 주고받는 과정을 이해하려면 HTTP를 알아야 합니다. 이를 쉽게 설명하기 위해 택배 시스템에 비유해 보겠습니다. 이 글에서는 HTTP의 개념과 구성 요소를 알아보고, 일상적인 요청 방식(GET, POST)에 대해 설명해 드립니다.
1. 택배 시스템으로 이해하는 HTTP 🚛
현실 세계에서 택배를 보낼 때는 운송장이라는 표준을 사용합니다. 이 운송장은 택배의 목적지, 받을 사람, 내용물을 상세히 적는 규칙을 가지고 있죠.
이세계의 예시
A 부족이 B 부족에게 요청하는 상황:
- "내놓아라! 파란집 둘째에게, 포션 빨강색 2개."
- 행위: "내놓아라" (GET)
- 주소: "파란집"
- 대상: "둘째"
- 항목: "포션"
- 세부 조건: "빨강색 2개"
- "내놓아라! 파란집 둘째에게, 포션 빨강색 2개."
물건을 창고에 넣는 상황:
- "창고에 넣어라! 빨간집, 오크가죽."
- 행위: "창고에 넣어라" (POST)
- 대상: "빨간집"
- 항목: "오크가죽"
- "창고에 넣어라! 빨간집, 오크가죽."
이처럼 각 행위와 자원은 운송 전에 약속된 규칙을 따라야 합니다. 인터넷 세계에서도 데이터 전송을 위한 표준 규칙이 있는데, 바로 이것이 HTTP입니다.
2. HTTP 요청이란? 📨
HTTP는 컴퓨터 간 데이터를 주고받는 약속입니다. 예를 들어, 서울의 컴퓨터에서 대전의 컴퓨터로 데이터를 요청한다고 가정해 봅시다.
HTTP 요청의 구성 요소
- 메소드: 무엇을 할 것인지 지정 (예: GET, POST 등)
- 경로(Path): 어떤 자원에 접근할 것인지 명시 (예: /portion)
- 조건(Query): 요청의 세부 조건 추가 (예: color=red&count=2)
- 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 요청에서 데이터를 전달하는 방식은 크게 두 가지로 나뉩니다:
- Query: GET 요청에서 사용하며, URL에 포함됩니다.
- Body: POST 요청에서 사용하며, 요청의 하단에 별도로 작성됩니다.
추가로 PUT(수정 요청)과 DELETE(삭제 요청)도 존재합니다:
- PUT: Body를 사용해 데이터를 수정합니다.
- DELETE: Query를 사용해 데이터를 삭제합니다.
5. 마무리: HTTP를 이해하는 첫걸음 ✅
오늘은 HTTP의 기본 개념과 요청 방식(GET, POST)을 쉽게 설명해 보았습니다. 핵심 내용을 정리하자면:
- HTTP는 인터넷 데이터 전송의 표준 약속입니다.
- GET 요청은 데이터를 요청할 때, POST 요청은 데이터를 저장할 때 사용합니다.
- 데이터를 전달하는 방식은 Query(GET)와 Body(POST)로 나뉩니다.
반응형
'자바와 스프링 부트로 생애 최초 서버 만들기' 카테고리의 다른 글
#8 Spring Boot로 GET API 24.12.18 (0) | 2025.02.12 |
---|---|
#7 API란 무엇인가? 24.12.18 (0) | 2025.02.12 |
#5 네트워크란 무엇인가? 24.12.18 (0) | 2025.02.12 |
#4 서버란 무엇인가? 24.12.18 (1) | 2025.02.12 |
#3 Spring 프로젝트를 시작하는 방법 24.12.18 (0) | 2025.02.12 |