개요
HTTP 요청 메서드 종류 및 특징 알아보기
HTTP Request Method(HTTP 요청 메서드)
HTTP 요청 메서드는 인터넷을 통해 데이터를 전송하는 데 사용되는 기본 프로토콜인 HTTP(Hypertext Transfer Protocol)의 일부입니다. HTTP 요청 메서드는 클라이언트가 웹 서버에 정보를 요청하거나 작업을 수행하기 위해 보내는 명령입니다. 가장 일반적으로 사용되는 HTTP 요청 메서드는 사용자가 웹 브라우저의 주소 표시줄에 사이트 URL을 입력하고 Enter 키를 누를 때 트리거되는 GET 요청입니다.
HTTP 요청 메서드 종류는 GET, POST, PUT, DELETE 등 각각의 목적을 갖는 메서드들이 있습니다.
참고: https://developer.mozilla.org/ko/docs/Web/HTTP/Methods
이번 게시글에서는 가장 많이 사용되는 요청 메서드인
GET, POST, PUT, PATCH, DELETE 메서드에 대해 정리해봤습니다.
GET (read)
GET 요청은 서버의 정보를 검색, 조회하는 데 사용됩니다.
클라이언트가 GET 요청을 보낼 때 URL로 식별되는 특정 리소스(ex: 웹 페이지, 이미지 또는 비디오)를 반환하도록 서버에 요청합니다. 서버는 클라이언트가 표시하는 요청된 리소스로 요청에 응답합니다.
GET 요청은 멱등적입니다. 즉, 동일한 GET 요청을 여러번 실행해도 항상 동일한 응답(리소스)을 받을 수 있다는 것을 의미입니다.
POST (create)
POST 요청은 새로운 정보를 서버에 생성, 저장하는 데 사용됩니다.
클라이언트가 POST 요청을 보낼 때 요청 본문의 데이터를 서버로 보낸 다음 서버에서 데이터를 처리하고 새 리소스를 생성합니다. 예를 들어 사용자는 댓글 텍스트가 포함된 POST 요청을 서버에 전송하여 블로그 게시물에 대한 새 댓글을 작성할 수 있습니다.
POST 요청은 멱등하지 않습니다. 즉, 동일한 POST 요청을 여러번 수행하면 서버에 여러 리소스가 생성되는 것이 일반적입니다.
PUT (update)
PUT 요청은 서버의 기존 리소스를 업데이트하는 데 사용됩니다.
클라이언트가 PUT 요청을 보낼 때 요청 본문의 업데이트된 데이터를 서버로 보낸 다음 기존 리소스를 업데이트된 데이터로 대체합니다. 예를 들어 사용자는 업데이트된 정보가 포함된 PUT 요청을 서버에 전송하여 계정 정보를 업데이트할 수 있습니다.
주의점: 리소스의 모든 필드를 업데이트
아래와 같은 회원(member)에 대한 리소스가 있습니다.
나이를 업데이트 하기 위해 다음과 같은 요청 메세지를 서버에 전달합니다.
정상적으로 age가 25로 업데이트 된 것을 확인 가능합니다.
그러나 요청 메세지에 age만 넣게 되면 아래와 같은 일이 발생합니다.
요청 메세지의 작성하지 않은 필드들은 모두 빈 값(null)로 변경되었습니다.
이처럼 PUT 요청의 경우, 리소스에 해당하는 필드값을 명시하지 않는 경우에도 리소스에 해당하는 모든 데이터가 업데이트 되는 것을 확인 할 수 있습니다.
해당 내용에 대하여 주의하여 사용이 필요합니다.
PUT 요청은 멱등적입니다. 즉, 동일한 PUT 요청을 여러번 실행해도 동일한 리소스가 동일한 데이터로 업데이트됩니다.
PATCH (update(partial))
PATCH 요청은 기존 리소스를 업데이트하는 데 사용된다는 점에서 PUT 방식과 유사합니다.
그러나 PATCH 요청은 전체 리소스를 업데이트된 데이터로 대체하지 않고, 서버에 부분 업데이트를 보낸 다음 업데이트를 기존 리소스에 적용합니다. 예를 들어 사용자는 전체 프로필이 아닌 업데이트된 이미지 데이터만 포함하는 PATCH 요청을 전송하여 프로필 사진을 업데이트할 수 있습니다.
주의점: PATCH 요청은 부분 업데이트가 가능(PUT과의 차이점)
조금전 PUT 요청 설명에서 사용한 예제와 동일한 예제로 설명하겠습니다.
아래와 같은 회원(member)에 대한 리소스가 있습니다.
나이를 업데이트 하기 위해 다음과 같은 요청 메세지를 서버에 전달합니다.
정상적으로 age가 25로 업데이트 된 것을 확인 가능합니다.
나이만 업데이트하는 것이 목적이기 때문에, age 필드만 요청해보겠습니다.
PUT 요청과 다르게 PATCH 요청의 경우 업데이트 하고자하는 필드만 세팅하여 보낸 경우,
다른 필드는 업데이트 하지 않고 요청한 필드만 부분 업데이트 되는 것을 확인 가능합니다.
PUT과 PATCH 요청이 업데이트라는 동작을 하는 것은 동일하지만, 이러한 차이가 있다는 것을 인지하고 사용해야 합니다.
PATCH 요청은 반드시 멱등할 수도 있고 멱등하지 않을 수도 있습니다. 즉, 여러 개의 동일한 PATCH 요청을 생성해도 동일한 리소스가 동일한 방식으로 업데이트되지 않을 수 있다는것을 의미합니다.
DELETE (delete)
DELETE 요청은 서버에서 기존 리소스를 제거하는 데 사용됩니다.
클라이언트가 DELETE 요청을 보낼 때 URL로 식별되는 리소스를 삭제하도록 서버에 요청합니다. 예를 들어 사용자는 파일의 URL이 포함된 DELETE 요청을 전송하여 클라우드 스토리지 서비스에서 파일을 삭제할 수 있습니다.
DELETE 요청은 멱등적입니다. 즉, 여러 개의 동일한 DELETE 요청을 하면 동일한 리소스가 삭제됩니다.
'개발메모 > 간단정리' 카테고리의 다른 글
[간단정리] Domain, Host, URL, URI 용어 정리 (1) | 2024.06.29 |
---|---|
[간단정리] Java에서의 Hash(해시) 함수 (0) | 2024.03.14 |
[간단정리] JDK Dynamic Proxy vs CGLib Proxy (0) | 2023.01.04 |
[간단정리] Spring - Filter, Interceptor, AOP 특징 및 차이 (0) | 2022.10.25 |
[간단정리] MSA란?(등장배경, 특징, 장단점) (0) | 2022.08.28 |