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
  • 8.1. Hur kommer http2 påverka vanliga människor?
  • 8.2. Hur kommer http2 påverka webbutveckling?
  • 8.3. http2-implementationer
  • 8.3.1. Saknade implementationer
  • 8.4. Vanlig kritik av http2
  • 8.4.1. "Protokollet är designat och gjort av Google"
  • 8.4.2. “Protokollet är endast användbart för webbläsare"
  • 8.4.3. “Protokollet är bara bra för stora sajter"
  • 8.4.4. “Dess användning av TLS gör den långsammare"
  • 8.4.5. “Att det inte är ASCII, förstör affären"
  • 8.4.6. “Det är inte snabbare än HTTP/1.1”
  • 8.4.7. “Den bryter mot lager-principer"
  • 8.4.8. “Det fixar inte flera av HTTP 1.1s problem"
  • 8.5. Kommer http2 att driftssättas vitt och brett?

Was this helpful?

Export as PDF
  1. Svenska

En http2-värld

PreviousUtökningarNexthttp2 i Firefox

Last updated 5 years ago

Was this helpful?

Så hur kommer saker fungera när http2 blir använt? Kommer det att användas?

8.1. Hur kommer http2 påverka vanliga människor?

http2 har ännu inte utbredd användning. Vi kan inte säga med säkerhet exakt hur saker kommer utvecklas. Vi har sett hur SPDY har använts och vi kan gissa och räkna baserat på det och andra experiment som gjorts tidigare.

http2 minskar antalet turer fram och tillbaks över nätverket och det undviker först-i-kön-blockeringsproblemen genom att multiplexa och att kunna avsluta oönskad strömmar snabbt.

Det tillåter ett stort antal parallella strömmar som i antal vida överstiger antal koppel host även de mest shardade sajterna av idag.

Med prioriteter använda ordentligt på strömmarna finns chansen att klient mycket bättre kommer kunna få den viktiga datan före den mindre viktiga datan. Allt sammantaget, skulle jag säga att chanserna är väldigt goda att det kommer leda till snabbare sidladdning och mer responsiva webbsajter. Kort sagt: en bättre webbupplevelse.

Hur mycket snabbare och hur mycket förbättringar vi kommer se tror jag inte vi kan säga ännu. Först och främst är ju teknologin fortfarnade väldigt ung och sen har vi knappt ens börjat se klienter och servrar trimma sina implementationer till att verkligen dra nytta av alla de krafter detta nya protokoll erbjuder.

8.2. Hur kommer http2 påverka webbutveckling?

Genom åren har webbutvecklare och webbutvecklarmiljöer samlat på sig verktygslådor fulla med trick och verktyg för att jobba runt problem med HTTP 1.1, precis som jag beskrev i början av det här dokumentet som en förklaring till varför http2 togs fram.

Många av de trick som verktyg och utvecklare nu använder per default och utan att tänka efter kommer troligen skada http2-prestanda eller åtminstone inte riktigt nyttja den fulla potentialen som http2 erbjuder. Spriting och inlining ska med största säkerhet inte användas med http2. Sharding kommer troligen att vara direkt skadligt för http2 som kommer tjäna på att ha färre koppel.

Ett problem här är ju att webbsajter och webbutvecklare behöver utveckla och drifta för en värld där det åtminstone på kort sikt kommer finnas både HTTP1.1- och http2-klienter som användare och att nå maximal prestanda för alla användare kan bli utmanande utan att drifta två olika front-ends.

Av enbart dessa anledningar tror jag det kommer ta en tid innan vi kommer nå http2s fulla potential.

8.3. http2-implementationer

Att försöka dokumentera specifika implementationer i ett dokument som det här är förstås helt futilt och dömt at misslyckas och kommer endast kännas gammalt redan inom kort. Istället kommer jag förklara situationen i bredare termer och hänvisa läsare till på http2-sajten.

Det fanns ett stort antal implementationer redan tidigt och antalet har ökat under tiden vi jobbade med http2. När jag skriver detta finns det över 40 implementationer listade, och de flesta av dem implementerar den slutliga versionen.

Firefox har varit webbläsaren som varit först med support för de allra senaste versionerna av specen. Twitter har hängt med och erbjuder sina tjänster över http2. Google började under april 2014 att erbjudera http2-support på en del test servrar som kör deras tjänster och sedan maj 2014 har de erbjudit http2 support för deras utvecklingsversion av Chrome. Microsoft har visat en "tech preview" med http2 support i deras nästa Internet Explorer-version. Safari och Opera har båda sagt att de kommer stöda http2.

curl och libcurl stöder osäker http2 likväl som TLS-baserad, användades en av flera olika TLS-bibliotek.

8.3.1. Saknade implementationer

8.4. Vanlig kritik av http2

Under utvecklingen av det här protokollet så har debatten böljat fram och tillbaka och det är förstås ett visst antal människor som anser att protokollet till slut hamnade helt fel. Jag vill adressera några av de vanligaste klagomålen och nämna några argument mot dem.

8.4.1. "Protokollet är designat och gjort av Google"

Det har också varianter som implicerar att världen därmed blir ännu mer beroende och kontrollerad av Google genom detta. Det är inte sant. Protokollet har utvecklats inom IETF på samma sätt som protokoll har utvecklats i över 30 år. Men, vi alla erkänner och kan ju bara bekräfta Googles imponerande arbete med SPDY som inte enbart visade att det går att driftsätta ett nytt protokoll på det här sättet utan också tillhandahöll siffror som visade vilka vinster som kunde göras.

8.4.2. “Protokollet är endast användbart för webbläsare"

Det här är typ sant. En av de primära drivarna bakom utvecklingen av http2 var att fixa HTTP pipeliningen. Om ditt användningsfall inte har något behov av pipeliningen så finns det en sannolikhet att http2 inte kommer gör mycket bra för dig. Det är inte den enda förbättringen i protokollet men en stor sådan.

Så snart tjänster börjar använda den fulla kraften och möjligheterna med multiplexade strömmar över ett enda koppel så misstänker jag att vi kommer se fler applikationer använda http2.

Små REST-APIer och enklare programatiska användningar av HTTP 1.1 kommer kanske inte se att steget till http2 erbjuder väldigt stora fördelar. Men också att det är väldigt få nackdelar med http2 för de flesta användarna.

8.4.3. “Protokollet är bara bra för stora sajter"

Inte alls. Multiplexande strömmar kommer förbättra upplevelsen rejält för höglatensförbindelser som ofta mindre sajter utan bred geografisk distribution erbjuder. Stora sajter är redan väldigt ofta snabbare och mer distribuerade med kortare tur-och-returtider till användarna.

8.4.4. “Dess användning av TLS gör den långsammare"

Många Internet-användare har uttalat sina preferenser för att TLS ska användas mer utbrett och vi borde hjälpa till att skydda användarnas integritet.

Experiment har visat att genom att använda TLS så får man en högre grad av framgång än när man implementerar ny klartext-protokoll över port 80, eftersom det finns lite för många mellan-boxar där ute i världen som ingriper i det som de tror är HTTP 1.1 om det kommer över port och ibland kan se ut som HTTP.

Till slut, tack vare https multiplexande strömmar över ett fysikt koppel, så kommer vanliga användningsfall med webbläsare ändå göra väsentligt färre TLS-handskakningar och därmed prestera bättre än HTTPS skulle göra för HTTP 1.1.

8.4.5. “Att det inte är ASCII, förstör affären"

Ja, vi gillar att se protokoll i klartext eftersom det gör debuggning och spårning enklare. Men text-baserade protokoll är också mer felbenägna och öppnar upp för mycket mer parsning och fler parsningsproblem.

Om du verkligen inte kan hantera ett binärt protokoll, så kan du inte hantera TLS och komprimering i HTTP 1.1 heller och det har funnits där och används under en väldigt lång tid.

8.4.6. “Det är inte snabbare än HTTP/1.1”

8.4.7. “Den bryter mot lager-principer"

Seriöst, är det ditt argument? Lager är inte heliga oberörbara pelare i en global religion och om vi har klivit över inpå en del gråzoner när vi gjorde http2 så har det varit med avsikten att göra ett bra och effektivt protokoll inom de givna ramarna.

8.4.8. “Det fixar inte flera av HTTP 1.1s problem"

Det är sant. Med det specifika målet att behålla HTTP/1.1-paradigmer så vare det flera gamla HTTP funktioner som var tvugna att finnas kvar. Som t.ex headers och därmed också de ofta ogillade cookiesarna, authorization-headrar och mer. Men med fördelen att genom att behålla dessa paradigmer fick vi ett protokoll som det är möjligt att driftssätta utan att kräva en helt otänkbar mängd uppgraderingsarbete där fundamentala delar måste ersättas eller skrivas om. http2 är i grund och botten bara ett ny inramning ("framing layer").

8.5. Kommer http2 att driftssättas vitt och brett?

Det är för tidigt att säga säkert, men jag kan ändå gissa och estimera och det är vad jag kommer göra här.

Nej-sägarna kommer säga "kolla hur bra IPv6 har gjort ifrån sig" som ett exempel på ett protokoll som det tagit decennier bara för att börja bli driftsatt brett. http2 är inte en IPv6 dock. Det här är ett protokoll ovanpå TCP som använder vanliga HTTP-uppgraderingsmekanismer, portnummer och TLS etc. Det kommer inte kräva att de flesta routers eller brandväggar ändras alls.

Google bevisade för världen med deras SPDY-arbete att ett nytt protokoll som det här kan driftsättas och bli använt av webbläsare och tjänster med multipla implementaitoner inom en relativt kort tidsperiod. Medan antalet servrar på Internet idag som erbjuder SPDY är på 1%-nivån, så är mängden data dessa servrar hanterar mycket större. Några av de allra mest populära webbsajterna idag använder SPDY.

http2, baserat på samma principer som SPDY, skulle jag säga kommer sannolikt driftsättas ännu mer eftersom det är ett IETF-protokoll. SPDY-användningen hölls alltid tillbaks en del av dess "det är ett Google-protokoll"-stigma.

Det finns flera stora webbläsare bakom utrullningen. Representanter från Firefox, Chrome, Safari, Internet Explorer och Opera har sagt att de kommer skeppa http2-kapabla webbläsare och de har visat fungerande implementaitoner.

Det finns flera stora server-operatörer som är sannolika att erbjuda http2 snart, inklusive Google, Twitter och Facebook och vi hoppas få se att http2-support snart läggs till i populära server-implementationer som Apache HTTPD och Nginx. H2o är en ny vrålsnabb HTTP-server med http2-stöd som visar potential.

Några av de största proxy-tillverkarna, inklusive HAProxy, Squid och Varnish har uttalat sina intentioner att stödja http2.

Allt igenom 2015 har mängden http2-trafik ökat. I början av September visade användningen av Firefox 40 http2 i 13% av all HTTP-trafik och 27% av all HTTPS-trafik, medan Google ser http2 i ungefär 18% av sin inkommande trafik. Det kan noteras att Google driver andra experiment med nya protokoll (Se QUIC i 12.1) vilket ger lägre http2-nivåer än det annars kunde vara.

, och har alla släppt http2-kapabla open source-servrar.

De två otroligt populära servrarna Apache HTTPD och Nginx har båda erbjudit SPDY support. Den 22:a september 2015 kom så Nginx med sin första version med officiell support för http2. Nginx har släppt och http2-modulen för Apache heter och är på väg att släppas i en publik version "snart".

Google har att de kommer ta bort support för SPDY och NPN i Chrome under 2016 och de uppmanar servrar att migrera till http2 istället.

Det kan vara sant till viss utsträckning. TLS-handskakningen lägger på lite extra men det finns redan pågående ansträngningar att reducera antalet tur-och-retur varv ännu mer för TLS. Den extra kostnaden för att använda TLS över kabeln istället för klartext är inte osignifikant och tydligt noterbar så mer CPU och kraft kommer användas för samma trafik mönster som ett osäkert protokoll. Hur mycket och vilken effect det får är ett ämne för tyckande och mätningar. Se till exempel för en källa till sådan info.

Telecom och andra nätverskoperatörer, till exempel inom ATIS Open Web Alliance, säger att för att erbjuder cache, komprimering och andra tekniker som är nödvändiga för att tillhandahålla en snabb webbupplevelse över satelit, i flygplan och liknande. http2 gör inte TLS obligatoriskt så vi ska inte blanda ihop termerna.

Det är förstås ett ämne för debatt och diskussioner om hur man mäter och vad snabbare betyder, men redan under SPDY-dagarna gjordes många tester och som bevisade snabbare sidladdningar (som av folk vid University of Washington och av Hervé Servy) och såna experiment har repeterats med http2 också. Jag ser fram emot att få se fler såna tester och experiment publicerade. Ett kan indikera att http2 håller sina löften.

listan med implementationer
H2O
Apache Traffic Server
nghttp2
"nginx-1.9.5"
mod_h2
annonserat
istlsfastyet.com
de behöver okrypterad trafik
"How Speedy is SPDY?"
"Evaluating the Performance of SPDY-enabled Web Servers"
grundläggande första test av httpwatch.com