HTTP 메서드란, 클라이언트가 서버에게 요청할 때 기대하는 행동을 말한다.
HTTP 메서드 종류
주요메서드
- GET : 리소스 조회
- POST : 요청 데이터 처리, 주로 등록에 사용
- PUT : 리소스를 대체, 해당 리소스가 없으면 생성
- PATCH : 리소스 부분 변경
- DELETE : 리소스 삭제
기타 메서드
- HEAD : GET과 동일하지만 메시지 부분을 제외하고, 상태 줄과 헤더만 반환
- OPTIONS : 대상 리소스에 대한 통신 가능 옵션(메서드)을 설명(주로 CORS에서 사용)
- CONNECT : 대상 자원으로 식별되는 서버에 대한 터널을 설정
- TRACE : 대상 리소스에 대한 경로를 따라 메시지 루프백 테스트를 수행
GET
- 리소스 조회
- 서버에 전달하고 싶은 데이터는 query(쿼리 파라미터, 쿼리 스트링)를 통해서 전달
- 메시지 바디를 사용해서 데이터를 전달할 수 있지만, 지원하지 않는 곳이 많아서 권장하지 않음
POST
- 요청 데이터 처리
- 메시지 바디를 통해 서버로 요청 데이터 전달
- 서버는 요청 데이터를 처리
- 메시지 바디를 통해 들어온 데이터를 처리하는 모든 기능을 수행한다.
- 주로 전달된 데이터로 신규 리소스 등록, 프로세스 처리에 사용
PUT
- 리소스를 대체
- 리소스가 있으면 대체
- 리소스가 없으면 생성
- 데이터 자체를 덮어버림 (Replace)
- 클라이언트가 리소스를 식별
- 클라이언트가 리소스 위치를 알고 URI 지정
- POST와 차이점
주의!
PUT 메서드는, 리소스를 아예 대체 해버린다.
예를들어 아래의 데이터에
{
username : "kim",
age: 15
}
해당 바디를 담은 PUT 메서드를 전송하게되면
{
age: 20
}
결과는
{
age: 20
}
과 같이 username 필드가 아예 없어 지게된다. 해당 부분을 각별히 주의하자
PATCH
- 리소스 부분변경
위의 PUT과 다르게 아래의 데이터에
{
username : "kim",
age: 15
}
아래의 바디를 담은 PATCH 메서드를 전송하게 되면
{
age: 20
}
결과는 아래와 같이 수정한 값만 반영이 되고 나머지는 유지된다.(부분수정 가능)
{
username : "kim",
age: 20
}
DELETE
- 리소스를 삭제한다.
일부 HTTP에서는 PATCH를 지원하지 않는 경우가 있다.
이런 경우에는 POST로 대체하여 사용하면 된다.
'CS > Http' 카테고리의 다른 글
HTTP 상태코드 (0) | 2023.07.18 |
---|---|
HTTP 메서드의 속성 (0) | 2023.07.17 |
HTTP 특징 (0) | 2023.07.15 |
HTTP 기본 (0) | 2023.07.14 |
URI, URL, URN란 ? (0) | 2023.07.13 |