2017-04-06 2 views
0

POST는 : - 만드는 데 사용됩니다 및 업데이트 자원 PUT
: -사용 POST 대신 PUT REST

내가 대신 PUT 방식의 POST를 사용할 수 기존의 자원을 업데이트하는 데 사용됩니다? PUT 메서드를 통해 POST 메서드를 사용하면 단점이 무엇입니까?

POST가 PUT 메소드 작업을 수행 할 수있는 경우 PUT 메소드가 필요한 이유는 무엇입니까?

+1

[PUT 대 REST의 POST] 가능한 복제본 (http://stackoverflow.com/questions/630453/put-vs-post-in-rest) – Dazak

답변

0

POST 및 PUT은 REST API의 사용자가 API에서 무슨 일이 일어나는지 이해할 수 있도록 도와줍니다. 예를 들어 PUT (업데이트라고도 함)에 일종의 토큰이 있어야 업데이트 된 엔터티를 읽은 후 변경되지 않았 음을 확인할 수 있습니다. 엔티티가 이미 존재하거나 PUT이 변경된 경우에만 실패하거나 존재하지 않는 경우 실패한 경우 POST가 다르게 실패 할 수 있습니다. 기존 REST API를보고 작동 원리를 알아야 할 필요가있는 것 같습니다.

-1

POST 요청은 "여기에 일부 데이터가 지정된 URL에서 핸들러를 사용하여 분석 한 다음에 유용한 일을 할 것입니다"라고

풋 요청은 여기에 몇 가지 데이터와 URL이다 "말했다. 경우 누구든지 해당 URL에 대해 GET 요청을하고이 데이터를 제공하십시오. "

그들은 분명히 다른 것들을합니다.

은 POST 요청을 사용하여 PUT 요청과 동일한 결과를 얻을 수 있지만 PUT 요청을 처리하는 방법에 대한 의미는 사전 정의되고 표준입니다.

1

PUT 방법 대신 POST를 사용할 수 있습니까?

예, 가능합니다. 예를 들어, HTML 양식은 모든 쓰기에 POST를 사용합니다.

POST가 PUT 메소드 작업을 수행 할 수있는 경우 PUT 메소드가 필요한 이유는 무엇입니까?

이전에는 사용되지 않았습니다. HTTP/1.0에서 지정된 메서드는 HEAD, GET 및 POST입니다. PUT은 Appendix D: Additional Features으로 강등되었습니다.

PUT 메서드를 통해 POST 메서드를 사용할 경우 어떤 단점이 있습니까?

PUT는 idempotent입니다. POST가 아닙니다. 요청 방법은 그 방법과 동일한 여러 요청을 서버에 의도 된 효과는 단일 그러한 요청에 대한 효과와 같은 경우 "멱등"간주

....

멱등 속성 사용자가 요청한 것에 만 적용됩니다. 서버는 각 요청을 개별적으로 기록하거나 개정 제어 기록을 유지하거나 각 멱등 원 요청에 대해 기타 멱등 원 (non-멱등 원) 부작용을 구현할 수 있습니다.

클라이언트가 서버의 응답을 읽을 수 있기 전에 통신 오류가 발생하면 요청이 자동으로 반복 될 수 있기 때문에 멱등 원 (isempotent) 방법이 구분됩니다. 예를 들어 클라이언트가 PUT 요청을 보내고 응답이 수신되기 전에 기본 연결이 닫히면 클라이언트는 새 연결을 설정하고 멱등 원 (Idempotent) 요청을 다시 시도 할 수 있습니다.응답이 다를 수도 있지만 요청을 반복하면 원래의 요청이 성공하더라도 동일한 의도 된 효과가 있음을 알 수 있습니다.

이것은 PUT의 경우 클라이언트가 요청을 한 번 이상 전달할 수 있다는 것을 의미합니다. 응답이 수신 될 때까지 신뢰할 수없는 네트워크를 통해 동일한 PUT 메시지를 반복적으로 전송하는 것.

는 (이 보증은 주어진 자원 메시지를 PUT 받아 들인다는 사실에 의해 전달, 서버에 의해 제공됩니다. 그것은 무료 아니에요, 서버가 올바르게 메시지를 처리하는 확인해야합니다.)

공지 그것을 그 이 보증을 알고있는 클라이언트 일뿐만 아니라 요청 메시지를 볼 수있는 모든 중간 구성 요소 (프록시)입니다. 프록시는 안전한지를 사용자에게 묻기 위해 브라우저로 돌아갈 필요가 없습니다. 메시지를 다시 시도하십시오 - PUT 메소드는 서버가 그 보증을 제공하고 있다고 말합니다.

-1

나는 그것을 사용하는 개발자에게 달려 있다고 믿습니다.

레코드를 생성한다고 가정 해 보겠습니다. ID 필드가 비어 있으면 이라는 메시지가 요청임을 의미합니다. ID이 제공되면 업데이트 요청입니다.

개발자가 구분할 수 있습니다. Idempotent 요청은 ID = 1을 보내는 경우 결과가 POST 메신저와 동일하지만 동일 함을 보장합니다.

동일한 요청을 1000 번 보내도 항상 레코드를 업데이트 할 수 있습니다.

post here도 읽을 수 있습니다.