Ich weiß, wie HTTP-Methoden funktionieren und für was sie entworfen sind, aber ich bin neugierig zu wissen, ob einige Methoden schneller sind als andere, wenn sie nur zum Abrufen von Daten verwendet werden.
In dem Team, an dem ich arbeite, habe ich eine Menge JQuery AJAX Anfragen wie folgt bemerkt:
Ich würde natürlich eine 'get' Methode verwenden, da keine Daten an diese Anfrage gesendet werden. Dies ist wahrscheinlich passiert, als ein Teamkollege Code kopiert und eingefügt hat. Das funktioniert auch gut, scheint es gibt keinen guten Grund dafür, es zu "bekommen" zu ändern.
Ich denke, die 'get' Methode wäre in diesem Fall schneller, aber ich habe keine Quelle gefunden, die das bestätigt.
Es gibt einige Untersuchungen, die zeigen, dass einige Browser eine POST-Anfrage in mehrere Pakete aufteilen. Dies könnte Auswirkungen auf die Leistung haben, was Ihrer Meinung nach die Anforderung verlangsamen würde. Aber unter Tests scheint es, dass POST manchmal schneller sein kann. Ich bin mir nicht sicher, warum das so ist.
In der Praxis ist der Leistungsunterschied jedoch vernachlässigbar und Sie sollten POST und GET wie vorgesehen verwenden.
Lesen:
Zumindest bei historischen Versionen von IE gibt es das Problem, dass POST ein zusätzliches Paket überträgt. Einige Diskussion hier:
Ich weiß jedoch nicht, wie relevant das für den aktuellen Browser ist.
Hier sind die Ergebnisse der im Artikel beschriebenen Tests:
Wenn alle Dinge gleich sind, gibt es keinen Unterschied in der Netzwerkleistung zwischen GET, POST oder einer der anderen Methoden. Alles hängt davon ab, wie der Server eine GET vs. POST-Anfrage behandelt. Ein Server versucht beispielsweise, eine Ressource im POST zu aktualisieren, sucht jedoch nur danach bei GET.
Mit GET können Sie auch Daten senden. In jQuery wird es nur in die Abfragezeichenfolge serialisiert ( $.get("someplace", data: { foo: "bar" })
wird als $.get("someplace?foo=bar")
gesendet).
Es mag offensichtlich erscheinen, aber wenn Sie POST im Gegensatz zu GET verwenden, verwenden Sie ein weiteres Byte im Methodennamen.
Wenn Sie zusätzlich (wenige) Daten senden möchten, werden die Daten mithilfe von GET URL-codiert (dies bedeutet, dass die Anzahl der generierten und versendeten Bytes höher ist als die Datengröße selbst), während POST mehr verbraucht Byte (im Allgemeinen), weil die Anfrage zusätzlich einen Content-Type: application/x-www-form-urlencoded
Header enthält, wahrscheinlich einen Content-Length
Header und die gleichen URL-codierten Daten als GET.
Wenn Sie einige zu sendende Binärdaten haben, ist die Frage nicht gültig, da Sie dies nicht mit GET tun können.
Wir sprechen hier von Pfennigen, aber wenn Sie Pfennige ansammeln ...
Am Ende wird die GET-Anfrage kürzer sein und bei gleicher Netzwerkverbindungsbandbreite schneller als POST.
Um binäre Daten zu senden, ist PUT schneller als POST (basierend auf der gleichen Logik, und weil POST multipart/form-data
encoding-Header verwendet), aber die Browser-Unterstützung ist für PUT-Anfragen begrenzter.
Tags und Links jquery ajax http-method