HTTP 메소드
웹 애플리케이션에서 클라이언트와 서버가 어떻게 소통하는지 이해하려면, HTTP 메소드(HTTP Method)에 대한 개념부터 정확히 알아야 합니다. GET, POST, PUT, DELETE 등 다양한 HTTP 메소드는 단순한 동작 이상의 의미를 가지며, RESTful API 설계에서 매우 중요한 역할을 합니다. 이 글에서는 HTTP 메소드의 개념과 각각의 사용 목적, 특징을 상세하게 알아봅니다.
1. HTTP 메소드란?
HTTP 메소드는 클라이언트가 서버에게 어떤 작업을 요청하는지 명시하는 방식입니다. HTTP 요청(Request)의 시작 부분에 포함되며, REST 아키텍처에서는 각각의 메소드가 리소스에 대한 CRUD (생성, 조회, 수정, 삭제) 작업을 의미합니다.
a. GET - 리소스 조회
- 리소스(데이터)를 서버로부터 가져오는 메소드
- URL에 쿼리 파라미터를 포함할 수 있음
- 서버의 상태나 데이터를 변경하지 않음
- 브라우저 캐시, 즐겨찾기와 궁합이 좋음
GET /users?id=1 HTTP/1.1
b. POST - 리소스 생성
- 서버에 새로운 리소스를 생성 요청
- 주로 요청 본문(body)에 데이터 포함
- 같은 요청을 여러 번 보내면 중복 생성될 수 있음 (비멱등성)
POST /users HTTP/1.1
Content-Type: application/json
{
"name": "Alice",
"email": "alice@example.com"
}
- 리소스를 통째로 덮어씌우는 메소드
- 전송하지 않은 필드는 제거됨
- 멱등성 보장 (동일한 요청을 여러 번 보내도 결과 동일, 중복된 요청으로 판단)
PUT /users/1 HTTP/1.1
Content-Type: application/json
{
"name": "Alice",
"email": "alice@example.com"
}
d. PATCH - 리소스 부분 수정
- 리소스의 일부 속성만 수정
- 필요한 데이터만 전송 가능 → 효율적
- 멱등성은 보장되지 않을 수도 있음
PATCH /users/1 HTTP/1.1
Content-Type: application/json
{
"email": "alice.new@example.com"
}
e. DELETE - 리소스 삭제
- 서버에서 지정한 리소스를 삭제하는 메소드
- 멱등성 있음 (삭제된 리소스는 재삭제해도 결과 같음)
DELETE /users/1 HTTP/1.1
f. 기타 메소드
- HEAD : GET과 같지만 본문을 받지 않음. 응답 헤더만 확인할 때 유용
- OPTIONS : 서버가 지원하는 메소드 목록을 조회할 때 사용 (CORS 사전 요청 등)
2. 표로 정리하는 HTTP 메소드 비교
메소드 | 주 용도 | 본문 사용 | 멱등성 | 상태 변경 | 사용 예시 |
GET | 리소스 조회 | ❌ | ✅ | ❌ | 페이지 로딩, 검색 등 |
POST | 리소스 생성 | ✅ | ❌ | ✅ | 회원가입, 글 작성 등 |
PUT | 리소스 전체 수정 | ✅ | ✅ | ✅ | 프로필 전체 수정 |
PATCH | 리소스 부분 수정 | ✅ | ❌/✅ | ✅ | 이메일 주소만 수정 |
DELETE | 리소스 삭제 | ❌/✅ | ✅ | ✅ | 게시글 삭제 |
3. RESTful API와의 관계
HTTP 메소드는 RESTful API 설계에서 핵심입니다. 각각의 메소드는 리소스의 상태 전이(State Transition)를 나타내며, 아래와 같은 규칙에 따라 URL과 메소드가 함께 사용됩니다:
- GET /users → 사용자 목록 조회
- POST /users → 새 사용자 생성
- GET /users/1 → 특정 사용자 조회
- PUT /users/1 → 사용자 정보 전체 수정
- PATCH /users/1 → 사용자 정보 일부 수정
- DELETE /users/1 → 사용자 삭제
4. 마무리
- HTTP 메소드는 웹에서 서버와 클라이언트의 의사소통 방식
- 각 메소드는 명확한 목적과 제약 조건을 가짐
- RESTful API 설계 시, 의미에 맞는 메소드를 적절히 선택해야 함
함께보면 좋은 자료
외부 사이트 :
블로그 글 :
[RESTful API] 웹 서비스를 설계하는 가장 보편적인 방식
RESTful API 웹 개발을 하다 보면 "REST API", "RESTful 설계", "HTTP 메서드" 같은 용어를 자주 접하게 됩니다. 이 글에서는 웹에서 데이터를 주고받는 표준적인 방식 중 하나인 RESTful API에 대해 자세히 알
dachaes-devlogs.tistory.com
[HTTP 상태 코드] 웹 통신의 응답 언어를 이해하기
HTTP 상태 코드 웹에서 클라이언트(예: 브라우저, 앱)와 서버가 통신할 때, 서버는 요청에 대한 응답으로 HTTP 상태 코드를 함께 반환합니다. 이 상태 코드는 요청이 성공했는지, 실패했는지, 왜 실
dachaes-devlogs.tistory.com
'컴퓨터 사이언스 > 네트워크' 카테고리의 다른 글
[ARP와 RARP] IP와 MAC 주소를 연결하는 숨은 조력자들 (0) | 2025.04.29 |
---|---|
[소셜 로그인] 프론트엔드 관점에서의 로그인 구현 (0) | 2025.04.18 |
[프록시 서버] 인터넷의 중간자, 프록시 서버란 무엇인가? (0) | 2025.04.15 |
[WebSocket과 WebRTC] 실시간 통신, 어떤 기술을 써야 할까? (0) | 2025.04.14 |
[WebRTC] 화상회의·음성채팅을 위한 웹 기반 실시간 기술 (0) | 2025.04.14 |