HTTP 메소드
HTTP 메소드란 클라이언트와 서버 사이에 이루어지는 요청(Request)과 응답(Response) 데이터를 전송하는 방식을 일컫는다. 쉽게 말하면 클라이언트가 웹 서버에게 사용자 리퀘스트의 목적이나 종류를 알리는 수단이다.
주요 메소드
GET
데이터를 받기 위해 사용하는 메소드
- 리퀘스트 바디는 사용하지 않고, 쿼리 스트링을 사용
- 불필요한 리퀘스트를 제한하기 위해 리퀘스트가 캐시될 수 있음
- 서버의 데이터 변경이 일어나지 않음
- 멱등성을 가짐
(=GET으로 동일한 리퀘스트를 반복하여 전송하더라도 동일한 응답이 돌아옴)
POST
새로운 리소스를 생성하거나 기존 리소스를 수정하기 위해 서버에 데이터를 보내는 메소드
- 리퀘스트 바디 사용
- 일반적으로 캐시되지 않음
- 리소스 생성할 경우, 이미 리소스가 있더라도 새로운 리소스 생성
- 서버의 데이터 변경이 일어날 수 있음
- 멱등성을 가지지 않음
(=POST으로 동일한 리퀘스트를 반복하면 동일한 응답을 보장할 수 없음)
PUT
새로운 리소스를 생성하거나 기존 리소스를 수정하기 위해 서버에 데이터를 보내는 메소드
- 서버에 리소스가 없으면 생성하고, 있으면 클라이언트가 보낸 데이터로 대체하고 추가로 생성하진 않음
- 멱등성을 가짐
DELETE
기존 리소스의 부분적인 수정을 위한 메소드
- 서버의 데이터를 삭제하는 변경을 함
- 멱등성을 가짐
기타 메소드
PATCH
기존 리소스의 부분적인 수정을 위한 메소드
- PUT 리퀘스트는 데이터를 완전히 대체하는 것이라면, PATCH는 부분 수정을 위한 메소드
{
id: 'minyoung',
name: '민영',
email: 'minyoung@abcde.com',
password: '1234'
}
예를 들어, 위와 같은 데이터가 있다면 id, name, email, password 전체를 생성 또는 변경하는데는 PUT 사용, 기존에 있던 데이터에 name만 변경할 때는 PATCH 사용
HEAD
특정 리소스를 GET 메소드로 요청했을 때 돌아올 헤더를 받기 위한 메소드
- 리스폰스에 바디 부분은 제외하고, 헤드 부분만 받음
- 실제 데이터가 아니라 데이터에 관한 정보만 얻으려고 하는 상황에 활용
- 불필요한 리퀘스트를 제한하기 위해 리퀘스트가 캐시가 될 수 있음
- 멱등성을 가짐
OPTIONS
주어진 URL 또는 서버에 대해 허용된 통신 옵션을 받기 위한 메소드
- 허용된 리퀘스트 메소드를 확인하거나 리소스에 대해 지원하는 옵션을 확인할 때 사용
- 멱등성을 가짐
CONNECT
요청한 리소스에 대해 양방향 연결을 시작하는 메소드
- SSL을 사용하는 웹사이트(HTTPS)에 접속하는데 사용될 수 있음
TRACE
- 목적 리소스의 경로를 따라 메시지 loop-back 테스트 수행
참고