POST와 PUT 메소드의 차이점

HTTP(Hypertext Transfer Protocol)는 클라이언트와 서버 간에 데이터를 전송하기 위한 프로토콜이다.

 

HTTP는 다양한 메서드(methods)를 제공하여 서버에 요청을 보내고, 응답을 받을 수 있는데

가장 널리 사용되는 HTTP 메서드는 아래와 같다.

 

1. GET : 리소스를 가져오기 위한 메서드로 주로 서버로부터 데이터를 요청하는 용도로 사용

2. POST : 서버에 데이터를 제출하는 메서드로 주로 데이터를 생성하거나 업데이트하는 용도로 사용

3. PUT : 서버에 리소스를 업로드하는 메서드로 주로 데이터를 생성하거나 업데이트하는 용도로 사용

4. DELETE : 서버에서 리소스를 삭제하는 메서드

5. PATCH : 리소스의 일부를 업데이트하는 메서드로 PUT과 유사하지만, 리소스 전체를 업데이트하는 PUT과는 달리,

                   리소스의 일부만을 업데이트

6. HEAD : GET 메서드와 유사하지만, 서버는 응답 본문(body)을 반환하지 않고, 헤더(header) 정보만 반환

7. OPTIONS : 서버에서 지원하는 메서드의 종류를 반환

8. TRACE : 서버로 보낸 요청에 대한 응답을 반환 이 메서드는 보안 상의 이유로 대부분의 서버에서 사용하지 않음.

 

 

POST와 PUT은 모두 서버에 데이터를 전송하는 HTTP 메서드이지만 이 둘은 목적과 사용 방법이 다르다.

POST는 주로 새로운 리소스를 생성하거나 기존 리소스를 변경하는 데 사용된다.
클라이언트가 POST 요청을 보내면 서버는 해당 요청을 수신하고, 요청 본문(body)에 담긴 데이터를 이용하여

새로운 리소스를 생성하거나 기존 리소스를 변경한다.

PUT은 주로 기존 리소스를 업데이트하는 데 사용된다. 클라이언트가 PUT 요청을 보내면

서버는 해당 요청을 수신하고, 요청 본문에 담긴 데이터를 기반으로 리소스를 업데이한다.
PUT 요청을 보내면, 해당 리소스의 전체 내용을 업데이트합니다.

따라서, POST와 PUT의 가장 큰 차이점은 리소스의 생성 및 변경 방법에 있다는 것이다.

 

POST는 여러 번 반복적으로 요청을 보낼 경우 동일한 리소스가 중복 생성될 수 있는 반면, 

PUT은 동일한 요청을 여러 번 보내더라도 리소스가 덮어씌워져서 항상 같은 결과를 반환한다.