2011-03-15 5 views
6

웹 사이트 용 RSS 피드를 구현 중이며 피드 용 XML 파일의 형식/크기/내용에 대해 이해할 수 없습니다.RSS 피드 XML 파일의 크기가 너무 큽니까?

나는 1999 년으로 돌아가는 과거의 데이터로 사이트를 초기화하고있다. (지금까지는 아무런 피드도 없었다.) 1 년에 몇 백개의 아이템 만 추가 될 것이다.

보관 용 프로토콜이 있습니까? 아니면 하나의 파일 만 보관하고 계속 추가 할 수 있습니까? 나는 aggregator가 전체를 다운로드해야하기 때문에 비효율적이라고 생각한다.

그렇다면 일반적인 맞춤 설정은 무엇입니까? 지난 달로 제한 하시겠습니까? 900 개 이상의 항목이있는 현재 파일은 1.5MB이며, 1 년치는 크기가 1/10 이하로 작습니다.

어떤 원리를 사용하고 구현하는 방법에 대한 지침이 있습니까? PHP를 사용하고 있지만 데이터가 충분히 복잡하여 파일을 작성하기 위해 자체 스크립트를 굴려서 (그리고 유효성을 검사해도 괜찮습니다.) 따라서 통조림 솔루션을 사용할 수 없습니다 - 직접 구현할 내용을 이해해야합니다. 스크립트.

+1

답을 얻기 위해 어떤 마법을 사용 했습니까? 3 달 전에 나에게 훨씬 도움이되었을 것이다! –

+0

저는 신디케이션 괴짜였습니다. 문제는 본질적으로 기술적 인 것보다 더 건축 적이었습니다. 제가 언급하지 못한 유일한 것은 http://validator.w3.org/feed/를 통해 최종 피드를 실행해야합니다. 그러면 귀하와 귀하의 고객이 많은 고민을 덜 수 있습니다! – Oppositional

+0

@ david 사용자를 불쾌하게하지 않도록 문법을 약간 편집 했으므로 질문을 편집 할 때 질문의 순위가 높아지고 가시성이 향상됩니다. –

답변

5

신디케이션 피드의 대부분의 소비자는 피드에 비교적 최근의 콘텐츠가 포함될 것이며 피드에 이전에 게시 된 콘텐츠가 포함될 것으로 예상합니다. 피드에서 유지 관리하는 콘텐츠의 양은 게시하는 콘텐츠 유형에 따라 다르지만 피드 크기가 커지면 정보를 검색하고 구문 분석 할 수있는 피드 클라이언트 기능에 영향을 줄 수 있습니다.

  1. 구현 : 당신이 진정으로 지속적으로 추가되는 역사적 피드를 게시 할하지만 컨텐트 항목이 제거가되지 않을 경우

    , 당신은 (당신의 소비자의 요구에 따라) 다음과 같은 옵션을 고려할 수 있습니다 Feed Paging and Archiving, per RFC 5005 Section 3은 항목 수가 매우 많거나 무한하거나 불확정 할 때 유용 할 수 있습니다. 클라이언트는 피드를 통해 "페이지"할 수 있으며 필요에 따라 피드 항목의 하위 집합에만 액세스 할 수 있습니다.

  2. 콘텐츠를 논리적으로 여러 피드로 나누고 웹 사이트의 피드에 auto-discovery을 제공하십시오.
  3. 소비자가 Atom 또는 RSS 형식의 피드로 콘텐츠를 검색하고 필터링 할 수있는 REST 기반 서비스 인터페이스를 구현합니다. 적절한 기본 기본값을 사용하여 기본 표현으로 표시합니다.

옵션 1는 모든 공급 클라이언트가 페이지 매김을 지원하기로 피드를 소모됩니다 피드 고객의 유형을 알고있는 경우에만 합리적인 접근 방식입니다.

옵션 2은 대부분의 브라우저와 클라이언트가 자동 검색을 지원하므로 공개 된 웹 사이트에서 가장 많이 볼 수있는 옵션이며 전체 역사 피드와 작은 최신 컨텐츠 피드 (또는 귀하의 콘텐츠에 적합한 방식).

옵션 3 잠재적으로 사용자는 처음 두 옵션 모두의 이점을 제공 할 수 있으며 여러 피드 형식과 풍부한 콘텐츠 필터링을 제공 할 수 있습니다. 이는 피드 콘텐츠를 노출하는 매우 강력한 방법이지만, 소비자가 소비하고자하는 피드 콘텐츠를 맞춤화하려는 욕구를 나타내는 경우 일반적으로 그만한 가치가 있습니다.

대부분의 리치 피드 클라이언트는 피드 콘텐츠를 비동기 적으로 검색하지만 동기식 (자주 잠재적 인) 요청을하는 클라이언트는 피드 크기가 증가함에 따라 시간 초과 문제가 발생할 수 있습니다.

방향에 관계없이 피드에 Conditional GET을 구현하는 것이 좋습니다. 가장 적합한 전략을 선택하기 위해 신디케이트 컨텐츠의 잠재 고객을 이해해야합니다. 제공하려는 신디케이션 피드 형식을 고려할 때 this answer을 참조하십시오.

+0

실제로 스크립트로 피드를 구현하지 못했기 때문에 다중 서브 피드를 제공 할 수있었습니다. 또한 데이터를 검색하는 SQL에 LIMIT를 두었습니다. 나는 결국 전체 피드를 제공하는 것이 처음에는 나에게 중요하다는 것을 알았지 만 구독하는 사람들에게는 아무런 문제가되지 않을 것입니다. 훌륭한 답변 주셔서 감사합니다. 추가 조사를 위해 귀하의 인용문 중 일부를 삭제했습니다. 특히 마지막으로 업데이트 된 헤더를 제공하는 문제와 관련하여 특히 그렇습니다. –

0

어 그리 게이터는 파일을 반복적으로 다운로드하므로 크기를 제한하는 것이 중요합니다. 피드에 GET 매개 변수로 겹쳐 쓰지 않는 한, 항목에 10 개 항목이 포함되거나 피드가 가장 오래된 항목이있는 항목 중 가장 오래된 항목을 보유하게합니다. 물론 이것은 피드 자체의 활동은 물론 클라이언트에서 보는 실제 사용량에 따라 다릅니다.