http2 explained
  • English
    • Background
    • HTTP Today
    • Things done to overcome latency pains
    • Updating HTTP
    • http2 concepts
    • The http2 protocol
    • Extensions
    • An http2 world
    • http2 in Firefox
    • http2 in Chromium
    • http2 in curl
    • After http2
    • Further reading
    • Thanks
  • Español
    • Antecedentes
    • HTTP hoy
    • Estrategias para evitar los dolores de latencia
    • Actualizando HTTP
    • Conceptos de http2
    • El protocolo http2
    • Extensiones
    • Un mundo http2
    • http2 en Firefox
    • http2 en Chromium
    • http2 en curl
    • Después de http2
    • Otras lecturas
    • Agradecimientos
  • فارسی
    • مقدمه و معرفی
    • پیش‌زمینه
    • HTTP امروز
    • کارهایی که برای غلبه بر تأخیرها انجام شده
    • آپدیت‌کردن HTTP
    • مفاهیم http2
    • پرتکل http2
    • افزونه‌ها
    • دنیایی با http2
    • http2 در فایرفاکس
    • http2 در کرومیوم
    • http2 در curl
    • بعد از http2
    • خواندن بیشتر
    • تقدیر و تشکر
    • واژه‌نامه
  • Français
    • Avant-propos
    • HTTP aujourd'hui
    • Rustines pour s'accommoder de la latence
    • Mettre à jour HTTP
    • Concepts http2
    • Le protocole http2
    • Extensions
    • Le monde http2
    • http2 et Firefox
    • http2 et Chromium
    • http2 et curl
    • Après http2
    • Lecture complémentaire
    • Remerciements
  • Italiano
    • Background
    • HTTP oggi
    • Tecniche applicate al contrasto della latenza
    • Aggiornare HTTP
    • http2 a grandi linee
    • Il protocollo http2
    • Estensioni
    • Un mondo di http2
    • http2 in Firefox
    • http2 in Chromium
    • http2 in curl
    • Dopo http2
    • Altre letture
    • Riconoscimenti, Ringraziamenti
  • 日本語
    • 背景
    • HTTPの現状確認
    • レイテンシーの闇を克服せよ
    • もうやめて、HTTP 1.1のライフはゼロよ
    • http2のコンセプト
    • http2プロトコル
    • http2は拡張の夢を見る
    • http2化される世界
    • Firefoxにおけるhttp2
    • Chromiumにおけるhttp2
    • curlにおけるhttp2
    • http2の次にくるもの
    • 参考文献
    • 謝辞
  • 한국어
    • 배경
    • HTTP 현재
    • 대기시간의 고통을 극복하기 위해 한일
    • HTTP 업데이팅
    • http2 컨셉
    • http2 프로토콜 (번역되지 않은)
    • 연장선 (번역되지 않은)
    • http2 세계 (번역되지 않은)
    • Firefox에서의 http2
    • Chromium에서의 http2
    • curl에서의 http2
    • HTTP2 다음에 오는 것
    • 참조
    • 감사의 말
  • Português
    • Antecedentes
    • HTTP Hoje
    • Estratégias para evitar as dores da latência
    • Atualizando HTTP
    • Conceitos de http2
    • O protocolo http2
    • Extensões
    • Um mundo http2
    • http2 e Firefox
    • http2 e Chromium
    • http2 e curl
    • Após o http2
    • Outras leituras
    • Agradecimentos
  • русском
    • История
    • HTTP сегодня
    • Шаги, предпринятые для преодоления задержки
    • Обновление HTTP
    • Концепция http2
    • Протокол http2
    • Расширения
    • Мир http2
    • http2 в Firefox
    • http2 в Chromium
    • http2 в curl
    • После http2
    • Дальнейшее чтение
    • Благодарности
  • Svenska
    • Bakgrund
    • HTTP idag
    • Tricks för att komma över fördröjningssmärtor
    • Uppdatera HTTP
    • http2-koncept
    • http2-protokollet
    • Utökningar
    • En http2-värld
    • http2 i Firefox
    • http2 i Chromium
    • http2 i curl
    • Efter http2
    • Fortsatt läsning
    • Tack
  • Türkçe
    • Arkaplan
    • HTTP'nin Bugünü
    • Gecikmelerin üstesinden gelmek için yapılanlar
    • HTTP'nin güncellenmesi
    • http2 konseptleri
    • http2 protokolü
    • Uzantılar
    • http2 dünyası
    • Firefox'da http2
    • Chromium'da http2
    • curl'de http2
    • http2 sonrası
    • Daha fazla bilgi için
    • Teşekkürler
  • 中文
    • 背景
    • HTTP的现状
    • 那些年,克服延迟之道
    • 升级HTTP
    • http2的观念
    • http2协议
    • 扩展
    • http2的世界
    • Firefox里的http2
    • Chromium里的http2
    • Curl里的http2
    • 后http2时代
    • 扩展阅读
    • 致谢
Powered by GitBook
On this page
  • 11.1. HTTP 1.x-liknande
  • 11.2. Klartext, osäkert
  • 11.3. TLS och vilka bibliotek
  • 11.4. Användning på kommandorad
  • 11.5. libcurl-optioner
  • 11.5.1 Slå på HTTP/2
  • 11.5.2 Multiplexande
  • 11.5.3 Server push

Was this helpful?

Export as PDF
  1. Svenska

http2 i curl

Previoushttp2 i ChromiumNextEfter http2

Last updated 5 years ago

Was this helpful?

har tillhandahållit experimentell support av http2 sedan september 2013.

I curls anda ämnar vi supporta varje aspekt av http2 som vi bara kan. curl används ofta som ett testverktyg och en utforskares sätt att peka på webbsajter och vi tänker fortsätta med det för http2 också.

curl använder det separata biblioteket för all funktionalitet i http2-lagret. curl kräver nghttp2 1.0 eller senare.

Notera att just nu skippas curl på linux inte alltid med http2-support påslaget.

11.1. HTTP 1.x-liknande

curl konverterar inkommande http2-headrar till HTTP 1.x-liknande headers och skickar dem till användaren, så att de kommer vara väldigt lika de i existerande HTTP. Det skapar en enkel övergång för vadsomhelst som använder curl och HTTP idag. På sammas sätt konverterar curl utgående headrar. Ge dem till curl i HTTP 1.x-stil och den gör om dem automatiskt när den pratar med http2-servrar. Det låter också användare att inte behöva bry sig så mycket om vilken specifik HTTP version som faktiskt används över kabeln.

11.2. Klartext, osäkert

curl stöder http2 över vanlig TCP mha Upgrade:-headern. Om du gör en HTTP-request och ber om http2, kommer curl be servern att uppdatera kopplet till http2 om det är möjligt.

11.3. TLS och vilka bibliotek

curl supportar en bred samling olika TLS-bibliotek för sin TLS-funktion, och det gäller även http2-stödet. Utmaningen med TLS för http2 är ALPN-stödet och i viss utsträckning stödet för NPN.

Bygg curl med en modern version av OpenSSL eller NSS för att få både ALPN- och NPN-stöd. Använder du GnuTLS eller PolarSSL får du ALPN-stöd men inte NPN.

11.4. Användning på kommandorad

För att säga åt curl att använda http2, antingen i klartext eller över TLS, så använder du dess --http2 flagga (det är “minus minus http2”). curl använder fortfarande per default HTTP/1.1 så den extra optionen behövs när du vill ha http2.

11.5. libcurl-optioner

11.5.1 Slå på HTTP/2

Din applikation använder https:// eller http:// URLer precis som vanligt, men du sätter curl_easy_setopt-optionen CURLOPT_HTTP_VERSION till CURL_HTTP_VERSION_2 för att få libcurl att försöka använda http2. Den kommer då göra sitt bästa för att använda http2, men annars fortsätta använda HTTP 1.1.

11.5.2 Multiplexande

11.5.3 Server push

Eftersom libcurl försöker behålla nuvarande beteende så mycket som möjligt måste du slå på http2 multiplexing för din applikation med . Annars kommer den fortsätta använda en request i taget per koppel.

En annan liten detalj att ha i åtanke är att ifall du ber om flera överföringar samtidigt med libcurl, mha dess multi-interface, är att en applikation kan mycket väl starta ett antal överföringar samtidigt och ifall du då hellre vill att libcurl ska vänta lite för att köra alla över samma koppel istället för att starta nya koppel för alla, så använder du för varje individuell överföring du hellre vill ska vänta.

libcurl 7.44.0 och senare stöder HTTP/2 server push. Du kan dra nytta av den funktionen genom att sätta upp en push callback med . Om "pushen" accepteras av applikationen kommer den skapa en ny överföring som en curl easy handle och leverera data över den, precis som vilken annan överföring som helst.

curl-projektet
nghttp2
CURLMOPT_PIPELINING-optionen
CURLOPT_PIPEWAIT-optionen
CURLMOPT_PUSHFUNCTION-optionen