
HTTP(HyperText Transfer Protocol)는 웹에서 클라이언트와 서버 간의 통신을 가능하게 하는 프로토콜입니다. 이 프로토콜에서 사용되는 HTTP Method는 클라이언트가 서버에 요청할 작업의 종류를 나타냅니다. 각각의 메서드는 특정한 목적과 특징을 가지고 있으며, 올바른 메서드 사용은 RESTful API 설계에서 특히 중요합니다.
1. HTTP Method의 종류와 특징
1) GET
- 용도: 서버에서 데이터를 조회할 때 사용.
- 특징:
- 요청 데이터는 URL의 쿼리 스트링에 포함됨.
- 요청의 멱등성(Idempotent) 보장.
- 캐싱이 가능.
- 예시:
- GET /users?id=123 HTTP/1.1
2) POST
- 용도: 서버에 데이터를 전송하거나 리소스를 생성할 때 사용.
- 특징:
- 요청 데이터는 요청 본문(Body)에 포함됨.
- 멱등성이 보장되지 않음.
- 주로 새로운 리소스를 생성하거나 서버 상태를 변경할 때 사용.
- 예시:
- POST /users HTTP/1.1 Content-Type: application/json { "name": "John Doe", "email": "john@example.com" }
3) PUT
- 용도: 서버의 리소스를 생성하거나 완전히 대체할 때 사용.
- 특징:
- 요청 데이터가 전체 리소스를 나타냄.
- 멱등성이 보장됨.
- 예시:
- PUT /users/123 HTTP/1.1 Content-Type: application/json { "name": "John Doe", "email": "john@example.com" }
4) PATCH
- 용도: 서버의 리소스 일부를 수정할 때 사용.
- 특징:
- 요청 데이터는 수정할 부분만 포함.
- 멱등성이 설계에 따라 달라짐(호출할 때마다 +1 시키면 멱등성 보장안됨).
- 예시:
- PATCH /users/123 HTTP/1.1 Content-Type: application/json { "email": "newemail@example.com" }
5) DELETE
- 용도: 서버에서 리소스를 삭제할 때 사용.
- 특징:
- 멱등성이 보장됨.
- 예시:
- DELETE /users/123 HTTP/1.1
6) OPTIONS
- 용도: 특정 리소스가 지원하는 HTTP Method를 확인할 때 사용.
- 특징:
- 주로 클라이언트가 서버의 기능을 탐색할 때 사용.
- 예시:
- OPTIONS /users HTTP/1.1
7) HEAD
- 용도: GET 요청과 동일하지만, 응답 본문을 제외한 헤더 정보만 가져옴.
- 특징:
- 리소스의 존재 여부를 확인하거나 메타데이터를 조회할 때 유용.
- 예시:
- HEAD /users/123 HTTP/1.1
2. HTTP Method의 멱등성과 안전성
- 멱등성(Idempotent): 동일한 요청을 여러 번 수행해도 서버 상태가 변하지 않는 성질.
- 멱등한 메서드: GET, PUT, DELETE, HEAD, OPTIONS.
- 멱등하지 않은 메서드: POST
- 안전성(Safety): 서버의 상태를 변경하지 않는 성질.
- 안전한 메서드: GET, HEAD, OPTIONS.
- 안전하지 않은 메서드: POST, PUT, DELETE, PATCH.
3. RESTful API 설계에서의 HTTP Method
RESTful API는 HTTP Method를 적절히 활용하여 자원의 CRUD(Create, Read, Update, Delete) 작업을 표현합니다.
작업 | HTTP Method | 예시 URL |
생성(Create) | POST | /users |
조회(Read) | GET | /users, /users/{id} |
수정(Update) | PUT, PATCH | /users/{id} |
삭제(Delete) | DELETE | /users/{id} |
4. 추가적인 고려사항
- 캐싱:
- GET 요청은 캐싱 가능하며, POST 요청은 기본적으로 캐싱되지 않음.
- 보안:
- 민감한 데이터는 URL에 포함하지 말고 요청 본문에 포함할 것.
- 에러 처리:
- 각 HTTP Method에 적합한 상태 코드를 반환해야 함.
- 예: GET 요청 실패 시 404 Not Found, POST 요청 실패 시 400 Bad Request.
- 각 HTTP Method에 적합한 상태 코드를 반환해야 함.

각 메서드의 목적과 특징을 정확히 이해하고 사용하는 것이 중요합니다. 특히 RESTful API 설계 시, 적절한 HTTP Method와 상태 코드를 조합하여 클라이언트와 서버 간의 명확하고 효율적인 통신을 구현해야 합니다.

'Web' 카테고리의 다른 글
네이버(www.naver.com)을 검색하면 어떻게 동작할까? (2) | 2025.03.20 |
---|---|
웹 스토리지(Web Storage) 란? (0) | 2025.02.12 |
브라우저(Browser) 동작 방법 (2) | 2025.01.14 |
DNS(Domain Name System)란? (2) | 2025.01.08 |
HTTP와 HTTPS의 차이 (1) | 2025.01.08 |