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