2016-08-12 1 views
2

Ich weiß, dass die meisten Browser http/2 zum Laden der Seiten unterstützen, aber bedeutet das, dass ich es nutzen kann, wenn ich API-Aufrufe mit XmlHttpRequest mache?Verwenden Sie Http/2, um API-Aufrufe von Javascript

Genauer gesagt ist meine Frage, wenn ich 2 Aufrufe zum Abrufen von Daten mit XmlHttpRequest stellt es sicher, dass beide die gleiche tcp-Verbindung darunter verwenden? Keine Dokumentation, die ich irgendwo lese, gibt etwas über http2 Unterstützung für XmlHttpRequest oder wie ich explizit eine http2 Verbindung öffnen kann, machen einige Anrufe, die dies nutzen und dann die Verbindung schließen.

Die Bibliotheken okHttp, jetty und andere Bibliotheken in Java bieten Client-Bibliotheken, die dies unterstützen. Aber die Javascript-Unterstützung ist nicht klar.

Antwort

5

Wenn der Browser und der Server beide HTTP/2 unterstützen, wird es für alle Anrufe vom Browser verwendet - einschließlich XHR. Sie müssen nichts Besonderes in Ihrem Javascript tun, um dies zu aktivieren. Das ist einer der großen Vorteile von HTTP/2.

Wenn Sie fragen, wie Sie die Verbindung, um sicherzustellen, für offen gehalten wird, wie Sie die Verbindung wieder verwenden wollen dann die http/2 spec sagt:

HTTP/2-Verbindungen sind persistent. Für die beste Leistung wird erwartet, dass Clients Verbindungen nicht schließen, bis festgestellt, dass keine weitere Kommunikation mit einem Server erforderlich ist (z. B. wenn ein Benutzer von einer bestimmten Webseite navigiert) oder bis der Server schließt die Verbindung.

...

Server werden ermutigt, so lange wie möglich offene Verbindungen aufrecht zu erhalten, sind jedoch zulässig Verbindungen im Leerlauf bei Bedarf zu beenden.

+0

Ich glaube nicht, dass der Browser die TCP-Verbindung für immer offen hält. Woher weiß es, wann und wann die TCP-Verbindung geschlossen werden soll? Deshalb vermute ich die Unterstützung. –

+0

Wenn es irgendeine Dokumentation gibt, die die Theorie unterstützt, würde es sehr helfen. Ich konnte jedoch keine finden. –

+0

Die Antwort wurde aktualisiert, um die Details einzubeziehen, die Sie suchen. Obwohl nicht sicher, wie Sie denken, dass dies anders ist, als dies unter http/1.1 Verbindungen mit keep-alives funktioniert, also nicht sicher, warum genau Sie fragen, als Follow-up zu dem, was ich dachte, die Frage, die Sie gefragt haben war? –

Verwandte Themen