HTTP 메서드 종류와 기능
HTTP의 메서드의 종류와 그 종류들의 기능을 알아볼 것이다.
1. HTTP 메서드 종류
주요 메서드와 기타 메서드로 구분할 것이다.
주요 메서드는 많이 사용하고 기타 메서드는 그냥 이런 게 있구나라고 알고 있으면 된다.
@ 주요 메서드
GET | 리소스 조회 |
POST | 요청 데이터처리, 주로 등록에 사용 |
PUT | 리소스를 대체, 해당 리소스가 없으면 생성 |
PATCH | 리소스 부분을 변경 |
DELETE | 리소스를 삭제 |
@ 기타 메서드
HEAD | GET방식과 동일하지만 메시지 부분을 제외하고, 상태줄과 헤더만 반환 |
OPTIONS | 대상 리소스에 대한 통신 가능옵션을 설명(주로 CORS에서 사용) |
CONNECT | 대상 자원으로 식별되는 서버에 대한 터널을 설정 |
TRACE | 대상 리소스에 대한 경로를 따라 메시지 루프백 테스트를 수행 |
2. HTTP 메서드의 기능
1. GET
GET 방식은 리소스를 조회하고 서버에 전달하고 싶은 데이터를 query를 통해서 전달을 한다. 그리고 GET 방식에서도 메시지 바디를 사용해서 데이터를 전달할 수 있으나 지원하지 않는 곳이 많아서 권장하지는 않는다.
예) 회원 목록 조회, 회원 조회, 상품 목록 조회
2. POST
POST 방식은 요청 데이터를 처리하고 메시지 바디를 통해서 서버로 요청 데이터를 전달한다. 요청 데이터를 받은 서버는 메시지 바디를 통해 들어온 데이터를 처리하는 모든 기능을 수행한다.
주로 전달된 신규 리소스를 등록하거나 프로세스 처리에 사용이 되고 대상 리소스가 리소스의 고유 한 의미 체계에 따라 요청에 포함된 표현을 처리하도록 요청을 한다
예) 회원 가입
3. PUT
PUT 방식은 리소스를 대체한다. 리소스가 없으면 새로 생성을 하고 리소스가 있으면 기존에 있던 정보를 덮어쓴다.
덮어쓰는 예를 들어보면
{
name : "hoestory"
age : 24
}
위에 있는 JSON 형태로 서버에 name = "hoestory" age=24로 저장되어 있다.
{
age = 27
}
그런데 클라이언트 쪽에서 PUT 방식으로 age =27로 서버로 전달하게 되면
{
age = 27
}
name = "hoestory"가 사라지고 age = 27만 남게 된다.
그리고 PUT 방식은 POST 방식과 달리 클라이언트가 리소스의 위치를 알고 URI를 지정하고 리소스를 완전히 대체하고 싶을 때 사용한다.
만약 리소스를 완전히 대체하고 싶지 않으면 PATCH를 쓴다.
@ PATCH
PATCH 방식은 PUT 방식에서 설명한 거처럼 PATCH 방식은 리소스의 부분 변경을 해준다.
예를 들자면
{
name = "hoestory"
age = 24
}
서버에 name = "hoestory" age=24로 저장되어있다.
{
age = 27
}
클라이언트 쪽에서 age를 변경하고 싶어서 age = 27를 서버로 전달한다.
{
name = "hoestory"
age = 27
}
그러면 PUT 방식과 다르게 name부분은 그대로 남아있고 변경해준 age만 바뀌게 된다.
그런데 PATCH를 지원안해주는 곳이 있다. 그럴 경우는 POST방식을 사용하면 된다.
@ DELETE
DELETE 방식은 리소스를 제거하는 기능이다.
'HTTP' 카테고리의 다른 글
[HTTP]HTTP 메서드 속성 (1) | 2021.11.04 |
---|