Johdanto HTTP / 2: een

esittely

HTTP / 2 on viimeisin versio HyperText-siirtoprotokolla tai HTTP [01], jota selaimet käyttävät kommunikointiin verkkopalvelimien kanssa. Johdettu vanhemmasta SPDY: stä [02] protokolla, HTTP / 2 on ensimmäinen uusi HTTP-versio HTTP / 1.1: n standardoinnin jälkeen RFC 2068: ssa vuonna 1997.

Sen on kehittänyt Internet Engineering Task Force (IETF) HTTP -työryhmä httpbis (missä "bis" tarkoittaa "kahdesti") ja julkaistu nimellä RFC 7540 [03] toukokuu 2015.

HTTP / 2-hyväksyntä

Toimivat verkkosivustot ovat yhä enemmän ottaneet käyttöön HTTP / 2: ta sen virallisen julkaisun jälkeen. Online-kyselypalvelu W3Techs [04] toteaa, että syyskuusta 2017 syyskuuhun 2018 HTTP / 2-tuki nousi 16 prosentista 30 prosenttiin kaikista valvotuista verkkosivustoista.

Lisäksi suuret selaimet (esim. Chrome, Firefox, Edge jne.) Tarjoavat jo täyden tuen HTTP / 2: lle [05]. (Jotkut jopa kehittivät kokeellisia toteutuksia ennen HTTP / 2: n hyväksymistä vakiona.)

Tämä laaja käyttöönotto tarkoittaa, että HTTP / 2: lla on potentiaalia tulla webin tosiasialliseksi viestintäprotokolliksi.

Motivaatio HTTP / 2: n takana

Httpbis'charter [06] mainitsee useita HTTP / 1.1-komponentteja, joita voitaisiin parantaa HTTP / 2: n motivaationa. Ryhmän ensisijaisena tavoitteena oli kuitenkin vähentää loppukäyttäjän havaitsemaa viivettä.

Tehdä tämä, httpbis harkitaan minimoimaan kaistanleveyden yläpuolella otsakkeen pakkaamisen ja aggressiivisten esihakutekniikoiden (esim. palvelimen työntö) avulla samalla yrittämällä ratkaista systemaattisesti tunnetut suorituskykyongelmat, kuten yhteyden ruuhkautuminen ja HoL (Head-of-Line) estämisongelma [07].

Lisäksi HTTP / 2: n piti olla yhteensopiva taaksepäin, mikä tarkoittaa, että sen oli käytettävä samoja menetelmäverbejä, tilakoodeja, URI: itä ja (useimpia) otsikkokenttiä, jotka löytyvät HTTP / 1.1: stä. HTTP / 2 oli myös suunniteltava tukemaan yleisiä HTTP-käyttötapoja, kuten työpöytä- ja mobiililaitteiden selaimia, ohjelmointirajapintoja, välityspalvelimia ja palomuureja.

Tämän yhteensopivuuden ylläpitämiseksi työryhmä kehitti protokollineuvottelumekanismin, jonka avulla asiakkaat ja palvelimet voivat valita HTTP / 1.1-, HTTP / 2- tai jopa muiden kuin HTTP-protokollien joukosta.

Joten mitä uutta HTTP / 2: ssa on?

HTTP / 2 käyttää edelleen samoja URI-malleja ja porttinumeroita, joita käytetään HTTP / 1.1: ssä (ts. Portti 80 verkkotunnukselle) http URI ja portti 443 https URI), mutta monet asiat tehdään eri tavalla konepellin alla.

Periaatteellisin muutos on kehykset HTTP / 2: n perustietoyksikkönä.

HTTP / 1.1 käyttää perinteisesti paketit edustamaan verkkotietoja. Asiakas rakentaa pyyntöpaketin menetelmäverbillä (esim GET or POST), liittämällä luettelon otsikkoa, joka kuvaa yhteyttä, ja runko, joka sisältää sovellustiedot.

Vastaanotettuaan pyyntöpaketin HTTP / 1.1-palvelin vastaa vastaavalla vastauspaketilla, joka sisältää pyydetyt tiedot. Seurauksena on, että jokainen pyyntö- ja vastaussykli vaatii uuden yhteyden.

Päinvastoin, HTTP / 2-asiakkaat muodostavat yhden verkkoyhteyden palvelimen kanssa, jota he käyttävät kaikkeen seuraavaan verkkoliikenteeseen. Otsikot, käyttäjätiedot, virheilmoitukset ja kaikki tällaiset tiedot pakataan erillisiin binaarisiin tietorakenteisiin, nimeltään kehykset, ennen niiden lähettämistä verkon kautta.

Tämä vaikuttaa pieneltä muutokselta, mutta sillä on merkittäviä vaikutuksia.

Otsikon pakkaus

Suuri hyöty kehyksien käytöstä on, että HTTP / 2-otsikot pakataan HEADER kehys, joka voidaan pakata normaalilla pakkausmenetelmällä. Otsikot on siirrettävä ennen kaiken datan lähettämistä, joten otsikkokopiointi voi vähentää HTTP / 2: n asettamaa kaistanleveyden ylärajaa.

Otsikkojen pakkaaminen yhdessä seuraavien suorituskykyä parantavien HTTP / 2-ominaisuuksien kanssa voi olla erityisen hyödyllinen mobiili- tai asioiden internet (IOT) -sovelluksissa, joissa vaaditaan minimaalinen verkon käyttö.

Streams ja multiplexing

Semanttisesti merkityksellisten kehysten riippumatonta sekvenssiä kutsutaan a: ksi virta. Virroille annetaan yksilöllinen tunniste niiden luoneen päätepisteen (eli asiakkaan tai palvelimen) avulla, jotta muut päätepisteet voivat erottaa toisistaan.

Päätepisteet voivat lomittaa useiden virtojen kehyksiä saman HTTP / 2-yhteyden kautta, jolloin yksi verkkoyhteys voi tukea useita samanaikaisesti avoimia virtauksia. Tätä prosessia kutsutaan multiplexing [08].

Saman yhteyden uudelleenkäyttö lievittää ongelmia, kuten yhteyden ruuhkia ja edellä mainittua HoL-ongelmaa, ja tarjoaa paremman suorituskyvyn ja sujuvamman käyttökokemuksen kuin aiemmat HTTP-versiot.

Virta riippuvuus ja priorisointi

Useiden samanaikaisten streamien hallinta tarkoittaa, että jotkut streamit käsitellään ennen muita. HTTP / 2 antaa kehittäjälle (tai järjestelmänvalvojalle) hienosäätää tätä käyttäytymistä kutsutulla ominaisuudella riippuvuus virrasta.

Virta voi riippua toisen streamin täydellisestä siirrosta ennen kuin se käsitellään. Esimerkiksi sivustoon, jolla verkkosivun pääsisältö olisi ladattava ennen samanlaista sisältöä koskevia suosituksia, HTTP / 2 sallii suositusvirran luomisen riippuen pääsisältövirrasta.

HTTP / 2 tukee myös virran priorisointi. Eli kullekin virralle voidaan määrittää prioriteetti ehdottaa kuinka nopeasti päätepisteiden tulisi allokoida resurssit streamin kehysten käsittelemiseksi.

Prioriteettien asettaminen ja suoratoisto riippuvuus auttavat kehittäjiä ja verkkosivustojen omistajia optimoimaan verkkosivustonsa käytön, mikä voi parantaa merkittävästi heidän sivustonsa käyttökokemusta.

Palvelimen työntö

Lopuksi, HTTP / 2 voi parantaa verkkosivuston suorituskykyä tarjoamalla "push" -toiminnon. HTTP / 2-verkkopalvelin voi vastata tiedoille useammalle kyselylle kuin asiakas on alun perin pyytänyt. Tämä antaa palvelimelle mahdollisuuden toimittaa tietoja, jotka se tietää verkkoselaimen tarvitsevan renderoida sivun odottamatta, että selain tutkii ensimmäisen vastauksen, ja siten ilman ylimääräisen pyyntöjakson yleiskustannuksia.

Palvelimen työntö antaa kehittäjille täydellisen hallinnan selainten Web-sivustojen hakemiseen tarvittavien pyyntöjen lukumäärästä. Oikein käytettynä tämä ominaisuus voi minimoida verkon yleiskustannukset.

Luonnollisesti työntöominaisuuden väärinkäyttö voi myös tuhlata enemmän kaistanleveyttä kuin on todella tarpeen. Tästä syystä HTTP / 2 antaa asiakkaalle mahdollisuuden pyytää, että palvelimen työntö poistetaan käytöstä yhteyden ensimmäistä neuvottelua varten.

HTTP / 2-suojaus

Jos olet lukenut tähän asti, on oltava selvää, että HTTP / 2: n kehittäjät todella pyrkivät parantamaan suorituskykyä. On kuitenkin huomattava, että HTTP / 2 voi myös auttaa parantamaan selaimen käyttäjien yleistä turvallisuutta.

Tarkemmin sanottuna HTTP / 2 määritetään sekä HTTP URI (ts. Ilman salausta) että HTTPS URI (yli TLS salatut kanavat). Vaikka standardi itsessään ei vaadi salauksen käyttöä, kaikki suuret selaimen toteutukset (eli Firefox [09], Chrome, Safari, Opera, IE, Edge) ovat päättäneet vain tue HTTP / 2: ta yli TLS.

Itse asiassa selaimet erottavat selkeän tekstin HTTP / 2: n ja HTTP / 2: n salatusta TLS kahdella eri protokollalla. Salattua HTTP / 2: ta kutsutaan h2 ja selkeä teksti h2c. Tämän kirjoituksen jälkeen yksikään suurimmista selaimista ei tue h2c , Mikä merkitsee sitä, että TLS salaus on pakollinen verkkosivustolle, jotta voidaan hyödyntää HTTP / 2: n muita etuja. Kun HTTP / 2: sta tulee oletusverkkoprotokolla, vanhat verkkosivustojen omistajat, jotka eivät ole vielä päivittäneet SSL /TLS, on voimakkaasti motivoitunut tekemään niin.

Yhteenveto

HTTP / 2: n laaja käyttöönotto luo uuden ja parannetun verkon. Se on nopeampi, tarvitsee vähemmän kaistaleveyttä ja auttaa verkkosivustoja pysymään turvassa. Sen yleinen käyttöönotto tekee varmasti yleisen verkkokäyttäjäkokemuksen sujuvammaksi ja turvallisemmaksi.

Hanki sertifikaatti tänään ja liity tulevaisuuteen.

Viitteet

  1. HTTP-protokolla
  2. SPDY-protokolla
  3. HTTP / 2-eritelmä
  4. W3Techsin HTTP / 2-käyttöönottokysely
  5. HTTP / 2-hyväksyntä selaimissa
  6. httpbis -sopimus
  7. HOL-esto
  8. Kanavointi
  9. Firefox HTTP / 2: lla

Tilaa SSL.com -uutiskirje

Älä missaa uusia SSL.com -artikkeleita ja päivityksiä

Pysy ajan tasalla ja turvassa

SSL.com on maailman johtava kyberturvallisuuden johtaja, PKI ja digitaaliset sertifikaatit. Rekisteröidy saadaksesi viimeisimmät alan uutiset, vinkit ja tuoteilmoitukset SSL.com.

Otamme mielellämme palautetta vastaan

Vastaa kyselyymme ja kerro meille mielipiteesi viimeaikaisesta ostoksestasi.