Ist es sicher, auf dieselbe URL umzuleiten?

8

Ich habe URLs der Form http://domain/image/⟨uuid⟩/42x42/some_name.png . Der Web-Server (nginx) ist so konfiguriert, dass er nach einer Datei /some/path/image/⟨uuid⟩/thumbnail_42x42.png sucht, und wenn er nicht existiert, sendet er die URL an das Backend (Django via mod_wsgi), das dann das Thumbnail erzeugt. Dann sendet das Backend eine 302 Redirect an genau dieselbe URL, die vom Client angefordert wurde, mit der Idee, dass der Server bei dieser zweiten Anfrage die Thumbnail-Datei bemerkt und sie direkt sendet.

Die Frage ist, wird das mit allen Browsern funktionieren? Bis jetzt hat das Testen keine Probleme gezeigt, aber kann ich sicher sein, dass alle Benutzeragenten dies als beabsichtigt interpretieren?

Update: Lassen Sie mich die Absicht klären. Derzeit funktioniert das wie folgt:

  1. Der Client fordert ein Thumbnail eines Bildes an.
  2. Der Server sieht, dass die Datei nicht existiert, also leitet sie die Anfrage an das Backend weiter.
  3. Das Backend erstellt das Thumbnail und gibt 302 zurück.
  4. Das Backend gibt alle Ressourcen frei, sodass der Server die neu generierte Datei für aktuelle und nachfolgende Clients freigeben kann.

Wenn das Backend das neu erstellte Image bedient, ist es aus zwei Gründen schlechter:

  1. Zwei Möglichkeiten, die gleichen Daten zu liefern, müssen erstellt werden;
  2. Der Server kann statische Inhalte viel besser bereitstellen. Was passiert, wenn der Client eine extrem langsame Verbindung hat? Das Backend ist weder besonders schnell noch speichereffizient, und es kann verschwenderisch sein, es in Erinnerung zu behalten, während der Löffel den Kunden füttern kann.

Also halte ich das Backend für die minimale Zeitmenge.

Update²: Ich würde wirklich einige RFC-Referenzen oder Meinungen von jemandem mit Erfahrung mit vielen Browsern zu schätzen wissen. All diese positiven Antworten sind angenehm, aber sie sehen etwas grundlos aus.

    
Roman Odaisky 24.09.2008, 10:12
quelle

2 Antworten

1

Wenn nicht, ist der Kunde kaputt. Die meisten Clients folgen Redirect-Schleifen bis zu einem maximalen Wert. Also ja, es sollte in Ordnung sein, bis Ihr Backend das Thumbnail aus irgendeinem Grund nicht erzeugt.

Sie können stattdessen die URLs so ändern, dass sie Ссылка lauten und das Thumbnail und den richtigen Inhaltstyp usw. zurückgibt

    
Vinko Vrsalovic 24.09.2008, 10:14
quelle
0

Ja, es ist in Ordnung, den gleichen URI wie zuvor aufzurufen.

    
SCdF 24.09.2008 11:00
quelle

Tags und Links