웹 개발2009. 1. 30. 14:41

여러 사람이 공유하는 데이타일 경우 마지막으로 열람한 뒤 변경 여부를 어떻게 알 수 있을까?

이를 위해 HTTP/1.1 규격에선 ETag를 지원합니다.
http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.19

예)
ETag: "xyzzy"
ETag: W/"xyzzy"

위와 같이 임의의 글자로 만들어진 태그를 붙여서 변경할 때마다 그 값을 바꿔줍니다.

이걸 이용해서 소스관리에서 발생할 수 있는 충돌을 예방할 수 있을 것 같습니다.

Google Data API에서도 이를 이용해서 ETag가 맞지 않는 경우에는 변경을 못 시키게 하고 있는데,
이 경우 다시 Entry 정보를 가져와서 그때 얻은 ETag를 이용해서 고쳐야 합니다.

이것이 소스관리에서 먼저 업데이트를 하고 난 뒤 커밋을 해야 하는 것과 비슷하다는 느낌이 들었습니다.

(ETag가 어떻게 작동하는지 몰라서 잠시 동안 Match가 안 된다는 메시지가 떠서 좀 고생했는데,
이렇게 생각하니 고치기 전엔 먼저 Entry를 받는 것부터 시작해야 한다는 의미가 이해되었습니다^^;)
Posted by net4all