클라이언트(브라우저)가 서버와 통신할때 요청의 목적을 명확히 하기 위해 사용
주요 HTTP 메서드와 목적
메서드 | 설명 | 주요 목적 |
GET | 서버에서 데이터를 조회 | 데이터를 가져올 때 사용 |
POST | 서버에 데이터를 전송 및 생성 | 데이터를 생성하거나 제출할때 사용 |
PUT | 서버의 데이터를 전체 수정 | 데이터를 수정하거나 업데이트할때 사용 |
PATCH | 서버의 데이터를 부분 수정 | 데이터의 일부를 업데이트 할때 사용 |
DELETE | 서버의 데이터를 삭제 | 데이터를 삭제할때 사용 |
OPTIONS | 서버에서 허용하는 메서드 조회 | 요청 가능한 메서드 목록 확인 |
HEAD | 요청에 대한 헤더만 반환 | 응답 데이터 없이 헤더 정보만 확인 |
1. GET
목적 : 서버에서 데이터를 요청하고 받아오는데 사용
특징 :
- 데이터를 요청할때 URL에 쿼리 문자열로 전달
- 요청한 데이터만 서버가 반환하며, 서버 상태를 변경하지 않음
- 안전성 : 서버의 데이터를 변경하지 않으므로 안전함
- 캐싱 가능 : URL에 요청 내용이 명시되므로 캐싱이 가능함
GET /users?name=John&page=1 HTTP/1.1
Host: example.com
예시 :
- 웹페이지 로딩
- 검색 요청
2. POST
목적 : 서버에 데이터를 전송하거나 새로운 리소스를 생성
특징 :
- 데이터를 요청 본문(body)에 담아 전송
- 요청 데이터를 기반으로 서버 상태가 변경될수 있음
- 일반적으로 데이터베이스에 새로운 데이터를 추가하는데 사용
POST /users HTTP/1.1
Host: example.com
Content-Type: application/json
{
"name": "John",
"age": 30
}
예시 :
- 회원가입
- 로그인정보 전송
3. PUT
목적 : 서버의 리소스를 전체 수정하거나 새로 생성
특징 :
- 요청한 URL에 해당하는 리소스가 없으면 새로 생성
- 전체 리소스를 대체(기존 데이터는 사라지고 새 데이터로 덮어씀)
PUT /users/1 HTTP/1.1
Host: example.com
Content-Type: application/json
{
"name": "John Updated",
"age": 31
}
예시 :
- 기존 사용자 정보를 새 데이터로 대체
4. PATCH
목적 : 서버의 리소스를 부분적으로 수정
특징 :
- PUT은 전체 수정인 반면, PATCH는 필요한 필드만 수정 가능
PATCH /users/1 HTTP/1.1
Host: example.com
Content-Type: application/json
{
"age": 32
}
예시 :
- 사용자의 특정 필드만 업데이트 (나이 변경)
5. DELETE
목적 : 서버의 데이터를 삭제
특징 :
- 삭제 요청을 서버가 받아들여 데이터를 제거
DELETE /users/1 HTTP/1.1
Host: example.com
예시 :
- 게시물 삭제
- 사용자 계정 삭제
6. OPTIONS
목적 : 서버가 특정 URL에서 지원하는 메서드 확인
특징 :
- 주로 클라이언트가 서버와의 통신 가능성을 확인할때 사용
- CORS(Cross-Origin Resource Sharing)에서 많이 활용됨
OPTIONS /users HTTP/1.1
Host: example.com
7. HEAD
목적 : 응답 데이터 없이 헤더만 요청
특징 :
- 서버에 데이터를 요청하지 않고, 리소스의 존재 여부 등을 확인
- GET요청과 유사하지만, 본문(body)이 없음
HEAD /users/1 HTTP/1.1
Host: example.com
예시 :
- 파일 다운로드 전에 파일의 크기를 확인
정리
1. HTTP 메서드 사용 목적
- GET: 데이터를 가져오기
- POST: 데이터를 생성하거나 서버로 전송
- PUT: 데이터를 전체 수정하거나 새로 생성
- PATCH: 데이터를 부분 수정
- DELETE: 데이터를 삭제
2. 기타 메서드
- OPTIONS: 서버가 지원하는 메서드 확인
- HEAD: 데이터 없이 헤더만 요청
3. 선택 기준
- 데이터를 읽기만 한다면 GET
- 데이터를 생성하거나 서버 상태를 변경한다면 POST
- 데이터를 전체 교체하려면 PUT, 일부만 변경하려면 PATCH
- 데이터를 삭제하려면 DELETE
HTTP 메서드는 클라이언트와 서버 간의 통신에서 매우 중요한 역할을 한다. 각 메서드의 목적과 사용 방법을 이해하면 더 효율적인 API를 설계하거나 사용할 수 있다
출처 : ChatGPT