HTTP는 두 가지 속성을 구분합니다.
Idempotency는 스펙에 의해 다음과 같이 정의됩니다.
또한 메소드는 " 오류나 만기 문제를 제외하고" N> 0 개의 동일한 요청의 부작용이 단일 요청의 부작용과 동일하다는 점에서 " 등식 성 " 의 속성을 가질 수 있습니다 . 방법은 , , 및 이 속성을 공유 할 수 있습니다. 또한, 상기 방법 및 SHOULD NOT들은 부작용을 가지고, 따라서 본질적 멱등된다.GET
HEAD
PUT
DELETE
OPTIONS
TRACE
그리고 안전 :
특히, 대회는 것을 설립되었습니다 GET
및 HEAD
방법은 해서는 안 검색 이외의 작업을 수행하는 의미를 가지고있다. 이 방법들은 " 안전한 " 것으로 간주되어야합니다 . 이것은 사용자 에이전트와 같은 다른 방법을 나타낼 수 있습니다 POST
, PUT
그리고 DELETE
사용자가 안전하지 못한 처리를 요구하고 있다는 사실을 알게되고 그래서, 특별한 방법으로.
당연히, GET
요청 을 수행 한 결과로 서버가 부작용을 일으키지 않도록 보장 할 수는 없습니다 . 실제로 일부 동적 자원은 해당 기능을 고려합니다. 여기서 중요한 차이점은 사용자가 부작용을 요청하지 않았으므로 책임을 질 수 없다는 것입니다.
안전성은 dem 등원을 의미한다는 점에 유의하십시오. 방법에 부작용이 없다면 여러 번 수행하면 한 번만 수행하는 것과 같은 부작용이 발생하지 않습니다.
이 방법은 세 가지 범주로 분류됩니다.
- 안전 (따라서도 및 나무 등) :
GET
, HEAD
, OPTION
,TRACE
- dem 등이지만 반드시 안전 할 필요는 없습니다 :
PUT
,DELETE
- dem 등하거나 안전하지 않습니다.
POST
PUT에는 부작용이 없어야합니다.
그건 잘못이야 PUT
dem 등이지만 안전하지는 않습니다. 요점 의은 PUT
즉 자원을 업데이트하는 부작용을 가지고있다. dem 등원의 의미는 동일한 내용으로 동일한 자원을 여러 번 업데이트하면 한 번만 업데이트하는 것과 동일한 효과를 가져야한다는 것입니다.
안전 [강조 광산]에 관한 섹션의 마지막 단락에 유의하십시오.
당연히, GET
요청 을 수행 한 결과로 서버가 부작용을 일으키지 않도록 보장 할 수는 없습니다 . 실제로 일부 동적 자원은 해당 기능을 고려합니다. 여기서 중요한 차이점은 사용자가 부작용을 요청하지 않았으므로 책임을 질 수 없다는 것 입니다.
이 문장은 GET
안전 에 대해 이야기하지만 저자는 동일한 추론 PUT
과 dem 등식 을 적용한다고 가정 할 수 있습니다 . IOW : PUT
하나의 사용자가 볼 수있는 부작용, 즉 명명 된 리소스를 업데이트해야합니다. 다른 부작용 이 있을 수 있지만 사용자는 이에 대해 책임을지지 않습니다.
예를 들어, PUT
dem 등원이라는 사실 은 내가 원하는만큼 자주 다시 시도 할 수 있음을 의미합니다. 스펙 은 여러 번 실행하면 한 번 실행하는 것과 정확히 동일하다는 것을 보장 합니다. 이러한 여러 PUT
요청 의 부작용으로 이전 개정의 백 로그를 작성하는 것이 완벽하게 유효 합니다. 그러나 여러 번의 재시도 결과로 데이터베이스가 이전 개정판의 백 로그로 가득 차게되면 문제가되지 않습니다.
IOW : 원하는만큼 부작용을 가질 수 있지만
- 요청이 dem 등인 것처럼 사용자에게 보여야합니다.
- 사용자가 아닌 부작용에 대한 책임