it-swarm.com.de

Funktionieren CDNs mit POST Operationen?

Ich benutze zum ersten Mal ein CDN (Level3) und bin ein bisschen verwirrt. Ich greife auf dynamische URLs wie http://cdn.mysite.com?getItem=1234 zu, die Textdaten zurückgeben.

  1. Funktionieren CDNs mit HTTP POST -Operationen? Wenn ich eine HTTP POST -Operation ausstelle, erhält mein "echter" Server diese Anfrage jedes Mal. Daher frage ich mich, ob das CDN ein Problem mit POST -Operationen hat.

  2. Wenn ich HTTP GET benutze, scheint es zu funktionieren, ich rufe die URL einmal auf (von meiner Anwendung), ich kann sehen, dass mein Server die Anfrage empfängt. Wenn ich es ein zweites Mal anrufe, liefert das CDN es direkt aus, mein Server bekommt nichts. Wenn ich jedoch den Link manuell von einem zweiten Browser-Tab aus öffne, wird mein Server aufgefordert, ihn erneut zu übermitteln. Sollte er jetzt nicht zwischengespeichert werden?

4
iddqd

Einige CDNs funktionieren möglicherweise so, wie Sie es möchten, wenn Sie eine HTTP POST -Anforderung senden. Dies hängt davon ab, was konfiguriert wurde und welche Header/Inhalte Sie übermitteln. Dokumentation sollte verfügbar sein und erklären, was möglich ist. Einige Perl-Programmierer, von denen ich gelesen habe, dass sie ihre Heizung einschalten und ein Bad über HTTP POST -Anforderungen ausführen. Aus diesem Grund sind POSTs unsichere Vorgänge. Sie konnten alles machen. Sie müssen auch den Statuscode und den zurückgegebenen Medientyp (falls vorhanden) lesen.

Die Anleitung zu Statuscodes für die erhaltenen Antwortcodes sollte Ihnen einen ungefähren Hinweis darauf geben, ob das Problem clientseitig oder serverseitig ist. Es gibt zwar mehr als einen Weg, die Standards zu interpretieren. Im Allgemeinen (unter der Annahme, dass alles korrekt konfiguriert ist) weisen alle 400-417-Statuscodes auf ein schlechtes Verhalten im Namen des Clients hin und alle 500-Statuscodes auf ein schlechtes Verhalten im Namen der CDNs-Server.

Möglicherweise erfolgt keine Antwort. Sie können eine HTTP OPTIONS-Anforderung ausführen und prüfen, ob POST aufgeführt ist. Um die Kosten für ausgehende Bandbreite zu senken, reagieren einige Server nicht auf bestimmte Anforderungen (einschließlich HTTP-OPTIONEN), und Anwendungsfirewalls, Reverse-Proxys, Layer 7-Firewalls usw. können diese weiter stromaufwärts ablegen.

Wenn Ihre Anwendung aus irgendeinem Grund HTTP POST-Anforderungen stellen muss, können Sie immer einen Reverse-Proxy verwenden. Dies würde den CDN-Vorteil zunichte machen (Sie können einfach billiger Online-Speicher erhalten, d. H. Amazon S3 ohne CloudFront). Ihr eigenes CDN ist möglicherweise auch in der Lage, das Verhalten von HTTP POST auf der Basis eines Benutzeragenten zu konfigurieren, um das Problem zu lösen, wenn Sie kein passendes finden.

4
Metalshark