HTTP #2 HTTP METHOD

함형주·2022년 11월 3일
0

HTTP

목록 보기
3/5

질문, 피드백 등 모든 댓글 환영합니다.

HTTP METHOD

HTTP 메서드는 요청 시 서버의 행위를 구분하기 위해 사용합니다.

API URI 설계는 리소스 위주로 설계 됩니다. 리소스는 행위(동사)로 구분되는 것이 아닌 명사로의 의미를 가집니다.

회원 조회, 회원 추가, 회원 수정, 회원 삭제 에서 중복되는 회원이라는 개념이 바로 리소스 입니다.
그리고 CRUD의 개념이 행위 이며 이를 HTTP 메서드로 구분합니다.

HTTP 주요 메서드는 5가지 정도가 있습니다.

GET

GET은 리소스를 조회하는 메서드입니다. 서버에 데이터를 전달할 때는 주로 쿼리 파라미터를 이용합니다. 메시지 바디를 통해 데이터를 전달할 수도 있지만 일반적으론 메시지 바디는 사용하지 않습니다.

POST

POST는 HTTP 요청 데이터를 처리하는 메서드입니다. 쿼리 파라미터와 메시지 바디를 사용하여 데이터를 전달하고 서버는 이 데이터를 서버에서 지정된 로직으로 처리합니다. POST 요청이 발생하면 정해진 기준 없이 서버에서 리소스 마다 데이터를 어떻게 처리할 지 따로 구성해야 합니다.

PUT

PUT은 리소스를 대체하는 메서드 입니다. 리소스를 수정하는 데 사용되며 덮어쓰기와 유사합니다. 리소스가 없는 경우에는 신규 리소스를 생성합니다.
만약 name=name1age=20필드가 존재할 때 name=name2를 PUT 요청 시 name만 변경이 이루어지고 age필드는 null로 반영됩니다.

PATCH

PATCH는 리소스의 값을 변경하는 메서드입니다. PUT과 유사하지만 name=name3의 값만 전달해도 기존의 값(age=20)은 유지됩니다.

DELETE

DELETE는 리소스를 삭제하는 메서드입니다.


POST와 PUT, PATCH, DELETE의 차이는 PUT, PATCH, DELETE 메서드는 클라이언트가 리소스의 위치를 알고 있는 상태에서 실행한다는 점입니다.

이 외에도 HEAD, OPTIONS, CONNECT, TRACE 메서드가 있습니다.

HTTP METHOD 속성

위키피디아 출처

안전

안전 속성은 해당 메서드를 반복하여 호출해도 리소스의 변경이 없는 경우를 말합니다.

주요 메서드 중에선 GET 메서드가 안전 속성을 지닙니다.

멱등

멱등 속성은 해당 메서드를 여러 번 호출해도 값이 같은 경우를 말합니다.

주요 메서드 중에선 GET, PUT, DELETE 이 멱등 속성을 지닙니다.

PUT을 여러 번 호출해도 덮어쓰기이므로 PUT의 데이터로 값이 계속 같으며
DELETE를 여러 번 호출해도 리소스가 삭제된 상태는 같습니다.

멱등 속성은 자동 복구 매커니즘에 활용됩니다. 인터넷 환경이나 서버 등에서의 문제로 제대로 된 응답이 도착하지 않을 때 같은 요청을 다시 해도 되는 지 여부를 결정할 수 있습니다.

캐시 가능

캐시 가능 속성은 응답 결과를 캐시가 가능한 경우를 말합니다.

GET, HEAD, POST, PATCH 메서드가 캐시 가능하나 일반적으론 GET, HEAD만 캐시하여 사용합니다.

profile
평범한 대학생의 공부 일기?

0개의 댓글