2011-12-16 3 views
0

나는 엔드 포인트 등을 통해 검색 할 자원을 가지고 RESTful 서비스가있는 경우 :REST : 좋은 하이퍼 미디어 및 리소스 캐싱 전략이란 무엇입니까?

요청 :

GET http://acme.org/someInfo 

응답 :

HTTP/1.1 200 OK 
Content-Length: ... 
Content-Type: application/vnd.acme+xml 
Date: Fri, 16 Dec 2012 12:40:00 GMT 
Last-Modified: Tue, 1 Mar 2012 11:45:00 GMT 

<someInfo xmlns="http://schemas.acme.org/someInfo" xmlns:dap="http://schemas.acme.org/dap"> 
    <dap:link rel="http://relations.acme.org/someInfo" uri="htp://acme.org/someInfo/foo" /> 
    <dap:link rel="http://relations.acme.org/someInfo" uri="htp://acme.org/someInfo/bar" /> 
    <dap:link rel="http://relations.acme.org/someInfo" uri="htp://acme.org/someInfo/baz" /> 
</someInfo> 

그리고이 응답으로, 클라이언트가 다음 할 수있다 하이퍼 미디어 링크 중 하나를 따르십시오.

요청 :

GET http://acme.org/someInfo/foo 

응답 :

HTTP/1.1 200 OK 
Content-Length: ... 
Content-Type: application/vnd.acme+xml 
Date: Fri, 16 Dec 2012 12:45:00 GMT 
Last-Modified: Wed, 28 Sep 2012 11:45:00 GMT 

<fooInfo xmlns="http://schemas.acme.org/fooInfo"> 
... 
</fooInfo> 

첫 번째 응답은 자주 (예 : 몇 달)을 변경할 수 있으며, 두 번째는 약간 더 자주 변경 될 수 있습니다 (예를 : 매월 정도). 이러한 종류의 시나리오에 적합한 HTTP 캐싱 전략은 무엇입니까? 날짜별로, 클라이언트 ETag 비교, 다른 거?

편집 : 데이터가 하루 정도 지나면 부실합니다. 괜찮습니다. 더 이상 문제가 될 수는 없습니다.

답변

0

이것은 비즈니스에서만 실제로 응답 할 수있는 성능 대 일관성 문제입니다. 당신은 두 가지 질문 요청해야하는 각 자원에 대한

: 자원의 변화와 사용자가 X 시간 동안 그 변화가 표시되지 않는 경우

  1. 을, 비즈니스에 미치는 영향은 무엇인가? 사용자가 온도 변화를 보지 못하면 원자로가 폭발합니까?
  2. 해당 리소스의 새 버전을 보려면 얼마나 걸립니까? 1Gbps 로컬 네트워크 ( )에 있거나 시베리아의 휴대 전화에서 액세스합니까?

데이터를 최신으로 유지하는 것이 얼마나 중요한지 알면 데이터를 가져 오는 데 드는 비용을 파악하여 최상의 캐싱 전략을 결정할 수 있습니다.

+0

좋은 지적입니다. 나는 stalleness의 문제를 반영하기 위해 원래의 질문을 편집했다. – Bullines