2008-09-24 3 views
8

URL이 http://domain/image/⟨uuid⟩/42x42/some_name.png 인 URL이 있습니다. 웹 서버 (nginx)는 파일 /some/path/image/⟨uuid⟩/thumbnail_42x42.png을 찾도록 구성되어 있고, 존재하지 않으면 URL을 백엔드 (mod_wsgi를 통해 장고)로 전송 한 다음 축소판을 생성합니다. 그런 다음 백엔드는 클라이언트가 요청한 동일한 URL로 302 리디렉션을 내보내고 두 번째 요청시 서버가 미리보기 이미지 파일을 인식하여 직접 보냅니다.동일한 URL로 리디렉션하는 것이 안전합니까?

질문은 모든 브라우저에서 사용할 수 있습니까? 지금까지 테스트는 아무런 문제도 보이지 않았지만, 모든 사용자 에이전트가 이것을 의도 한대로 해석 할 수 있습니까?

업데이트 : 의도를 명확히하겠습니다. 현재 다음과 같이 작동합니다.

  1. 클라이언트가 이미지의 축소판을 요청합니다.
  2. 서버에서 파일이 존재하지 않는다고 판단하여 요청을 백엔드로 전달합니다.
  3. 백엔드 썸네일을 생성하고 현재 및 이후의 클라이언트 서버 공유를 새로 생성 된 파일을시키는, 302
  4. 백엔드 출시하는 모든 리소스를 반환합니다.

백엔드가 새로 만든 이미지는 두 가지 이유 나쁘다 역할을 갖는 만들어야합니다 동일한 데이터를 봉사

  1. 두 가지 방법;
  2. 서버가 정적 컨텐츠를 제공하는 것이 훨씬 좋습니다. 클라이언트의 링크가 매우 느린 경우에는 어떻게해야합니까? 백엔드는 특히 빠르지도 메모리 효율도 뛰어나지 않으며 클라이언트에게 숟가락 급지를하는 동안 낭비가 될 수 있으므로 메모리에 보관해야합니다.

그래서 최소한의 시간 동안 백엔드 작업을 유지합니다.

업데이트 2 : 많은 RFC 브라우저 나 많은 경험을 가진 사람의 RFC 참조 나 의견에 감사드립니다. 모든 긍정 응답은 즐겁지 만 다소 근거가 없습니다.

답변

1

그렇지 않으면 클라이언트가 고장났습니다. 대부분의 클라이언트는 최대 값까지 리디렉션 루프를 추적합니다. 그래서 네, 백엔드가 어떤 이유로 축소판을 생성하지 않을 때까지는 괜찮을 것입니다.

는 대신 http://domain/djangoapp/generate_thumbnail로 URL을 변경 수 있고 그 축소판하고 적절한 콘텐츠 유형 그래서 예, 당신이 이전에 있었던 것과 동일한 URI에-직접 다시 괜찮아

0

에를 돌아갑니다.