2014-03-07 2 views
2

RFC2616 Sec 14는 "14.26 IF-없음 - 일치"경우 - 없음 - 경기 : *

은의 의미는 "경우 - 없음 - 경기 : *"방법은 표현하는 경우 수행해서는 안된다 오리진 서버에 의해 선택된 ... 존재하며, 표현이 존재하지 않으면 수행되어야합니다 (SHOULD). 이 기능은 PUT 작업 사이의 레이스를 방지하는 데 유용합니다.

이 기능으로 인해 경쟁 조건이 어떻게 방지되는지 이해할 수 없습니다. 이것은 "If-Match"헤더를 단순히 생략하는 것과 다른 것입니까?

답변

2

클라이언트가 서버에 리소스가 없다고 생각하고이 경우 서버에 하나의 리소스 만 넣으 려한다고 가정 해 보겠습니다.

두 개의 클라이언트가 작동 중이면 둘 다 자원이 존재하지 않는다고 생각하고 해당 put을 동시에 수행 할 수 있습니다. If-None-Match: * 헤더가 없으면 둘 다 PUT 요청을 수행합니다. 이 헤더를 사용하면 클라이언트 하나가 실패합니다 (304 - Not Modified 참조).

+0

아, 고마워. "** [any] ** 표현이 존재하는 경우 메서드가 수행되어서는 안됩니다."라고 읽으면 사양이 명확 해집니다. –