Jos käytät Internetiä, olet todennäköisesti törmännyt termiin HTTP tai HTTPS. Se on myös katsotuin kirje, varsinkin kun otetaan huomioon miljardeja tällä hetkellä aktiivisia verkkosivustoja. HTTP tai HyperText Transfer Protocol on lyhenne. Tämä toimii sekä asiakaspuolen että palvelinprotokollana, mikä määrittää, kuinka viestit lähetetään ja jäsentyvät Internetissä.
HTTP 1.0 vs HTTP 1.1
Ero HTTP 1.0:n ja HTTP 1.1:n välillä on se, että onnistuneiden pyyntöjen ilmaisemiseksi ja lähetysongelmien tunnistamiseksi käytettiin HTTP 1.0 -tilakoodeja. HTTP/1.1 tukee osien siirtoja, mikä mahdollisti materiaalin suoratoiston osissa ja ylimääräisten otsikoiden toimittamisen viestin rungon jälkeen.
Vuonna 1996 HTTP/1.0 otettiin virallisesti käyttöön ja tunnustettiin. Sen suosio on noussut pilviin sen jälkeen. HTTPv1.0 tarjoaa vain alkeellisen todennuksen (haaste-vastauksen hallinta); Tämän tekniikan keskeinen ongelma on, että käyttäjätunnuksia ja salasanoja ei salata, jolloin ne ovat alttiina vakoilulle ja ilman aikarajoituksia. Tilakoodeja oli vain 16.
HTTP 1.1 tarjoaa myös pysyviä yhteyksiä, mikä tarkoittaa, että useita vastauksia ja pyyntöjä voidaan lähettää saman HTTP-yhteyden kautta. OPTIONS-menetelmä on uusi HTTP/1.1:ssä. HTTP-asiakas voi helposti käyttää tätä tekniikkaa HTTP-palvelimen ominaisuuksien selvittämiseen. Sitä käytetään ensisijaisesti verkkosovelluksissa lähteiden väliseen resurssien jakamiseen.
Vertailutaulukko HTTP 1.0:n ja HTTP 1.1:n välillä
Vertailuparametrit | HTTP 1.0 | HTTP 1.1 |
Tilakoodi | On 16 tilakoodia, jotka voidaan määrittää; virhe-ponnahdusikkunat eivät kuitenkaan ole riittävän tarkkoja. | Virheiden ilmoittaminen on nopeampaa ja tehokkaampaa, koska siinä voidaan määrittää 24 tilakoodia. |
Todennusmekanismi | Koska salasanat ja käyttäjätunnukset lähetetään myös tekstimuodossa tai base64-koodattuina, perustodennusmekanismi on epävarma. | Koska se käyttää tiivistelmätodennusta ja NTLM-todennusta, se on suhteellisen turvallinen. |
Välimuisti | If-Modified-Since-otsikkoa käytetään apuna välimuistissa. | Käyttää ylimääräisiä otsikoita, kuten välimuistin ohjausta. |
Suorituskyvyn optimointi | Tukee välimuistia, jotta voit palvella enemmän sivuja nopeammin. | Monia optimointeja käytetään "kuusi yhteyttä per isäntä" -vaatimuksen kiertotapana, mukaan lukien spriting, ketjuttaminen, rivitys ja verkkotunnuksen jakaminen. |
Avainominaisuudet | Jokaiselle TCP-yhteydelle on vain yksi pyyntö ja vastaus. | Se mahdollistaa yhteyden uudelleenkäytön, mikä tarkoittaa, että jokaiselle TCP-yhteydelle voidaan lähettää ja vastaanottaa monia pyyntöjä ja vastauksia. |
Mikä on HTTP 1.0?
HTTPv1.0 tarjoaa vain alkeellisen todennuksen (haaste-vastauksen hallinta); Tämän tekniikan keskeinen ongelma on, että käyttäjätunnuksia ja salasanoja ei salata, jolloin ne ovat alttiina vakoilulle, eikä aikarajoituksia ole. mitä tahansa vakoilulla saatua tietoa voidaan käyttää pitkään niiden hankkimisen jälkeen. Asiakkaan tulee laskea salasanan, käyttäjänimen, kertaluonteisen arvon, mukaan lukien HTTP-pyyntötyyppi, ja pyydetyn URI:n tarkistussumma kelvollista vastausta varten.
Koska HTTP1.0:n oli tarkoitus käyttää uutta TCP-yhteyttä jokaisessa pyynnössä, jokaisen valituksen oli maksettava uuden TCP-yhteyden muodostamisesta aiheutuvat kulut. Koska useimmat Internet-tapahtumat ovat lyhyitä ja etenevät harvoin hitaan alkamisvaihetta pidemmälle, ne eivät käytä käytettävissä olevaa kaistanleveyttä optimaalisesti. Vaikka joissakin version 1.0 toteutuksissa käytettiin "keep-alive" -otsikkoa vaatiakseen, että linkki voidaan pitää hengissä, tämä ei toiminut hyvin välityspalvelimen kanssa.
Palvelimen on silti annettava vastaukset samassa järjestyksessä kuin tietyn yhteyden vastaava pyyntö. Asiakkaan ei tarvitse odottaa vastausta aiempaan pyyntöönsä ennen kuin lähettää toisen saman yhteyden (pipelining) kautta. Se vähentää verkon edestakaisen matkan latenssia ja optimoi samalla TCP-protokollan ominaisuuksia.
Mikä on HTTP 1.1?
Pysyvien liitäntöjen ja putkistojen avulla se ratkaisee tämän ongelman. HTTP/1.1 tarkoittaa, että TCP-yhteys tulee pitää aktiivisena, ellei sitä nimenomaisesti pyydetä katkaisemaan pysyviä yhteyksiä käytettäessä. Sen avulla asiakas voi lähettää useita valituksia saman yhteyden kautta ilman, että joutuu odottamaan vastausta, mikä lisää merkittävästi HTTP/1.1:n suorituskykyä HTTP/1.0:aan verrattuna.
Valitettavasti tällä optimointitekniikalla on luontainen pullonkaula. Koska useat datapaketit eivät vain voi ohittaa toisiaan matkallaan. Joskus jonon etuosassa oleva pyyntö ei saa tarvitsemaansa resurssia, jolloin kaikki sen takana olevat pyynnöt estetään.
Tämä tunnetaan nimellä HOL head-of-line esto, ja se on suuri ongelma HTTP/1.1-yhteyden suorituskyvyn parantamisessa. Erilliset rinnakkaiset TCP-yhteydet voivat ratkaista ongelman, mutta samanaikaisten TCP-yhteyksien määrä asiakkaan ja palvelimen välillä on rajallinen ja jokainen uusi yhteys kuluttaa paljon resursseja.
HTTP/1.1:n vuonohjaus perustuu TCP:hen. Kun TCP on perustettu, sekä palvelin että asiakas käyttävät järjestelmän oletusasetuksiaan puskurin koon määrittämiseen. Jos vastaanottajan puskuri on osittain täynnä, se ilmoittaa lähettäjälle vastaanottajan vastaanottoikkunan tai puskurissa olevan vapaan tilan määrän.
Tärkeimmät erot HTTP 1.0:n ja HTTP 1.1:n välillä
Johtopäätös
HTTP- tai Hypertext Transfer Protocol -protokolla on ollut perustamisestaan vuonna 1989 lähtien standardi tiedonsiirrolle Webissä. HTTP/1.1:een on tehty vain muutamia muutoksia sen jälkeen, kun se julkaistiin ensimmäisen kerran vuonna 1997. Vuonna 2015 kuitenkin otettiin käyttöön
se sisälsi monia tapoja lyhentää viivettä. Siitä lähtien HTTP/1.1:n suosio on kasvanut, ja joidenkin karkeiden arvioiden mukaan noin kolmasosa kaikista Internetin verkkosivustoista tukee sitä. HTTP/1.1:n ja HTTP/2:n teknisten erojen ymmärtäminen voi auttaa verkkokehittäjiä tekemään koulutettuja ja tehokkaita arvioita nousevista parhaista käytännöistä tässä muuttuvassa maailmassa.