Ano ang HTTP / 2 at Ano ang Ginagawa nito?



Subukan Ang Aming Instrumento Para Sa Pagtanggal Ng Mga Problema

Sa huling 20 taon, ang World Wide Web ay kapansin-pansing nagbago. Ang lahat ng pinahusay na mga teknolohiya sa web ay nangangailangan ng mas mahusay at mas mabilis na mga solusyon at protokol para sa komunikasyon at paglipat ng file kaysa sa kasalukuyang (HTTP) na umaabot sa kanilang mga limitasyong panteknolohikal.





Ano ang HTTP / 2?

Ang HTTP / 2 ang pinakabagong bersyon ng Hypertext Transport Protocol (HTTP) - ang kalakip na protocol na ginamit ng World Wide Web . Una itong naaprubahan noong Pebrero 2015. Iyon ay halos 20 taon pagkatapos ng orihinal na HTTP. Binabawasan ng HTTP / 2 ang mga oras ng pag-load at nagdudulot ng malawak na pagpapabuti sa komunikasyon sa pagitan ng mga server at browser. Ang karamihan ng mga browser ay nagdagdag na ng HTTP / 2, at hindi nito binago ang maraming mga bagay mula sa pananaw ng mga gumagamit. Iyon ang pangunahing dahilan kung bakit marami sa atin ang hindi pa nababasa o naririnig ito.



Ano ang Ginagawa ng HTTP / 2?

Bilang isang kahalili ng HTTP, Nakatuon ang HTTP / 2 sa pagpapabuti ng lahat ng mga katangian ng HTTP . Upang mapanatili ang paatras na pagiging tugma sa mas matandang protocol, pinapanatili nito ang karamihan sa pagpapaandar ng HTTP. Gayunpaman, ipinakikilala nito ang ilang marahas na pagpapabuti.

Parehong tinukoy ng HTTP o HTTP / 2:

  • Aling mga pagkilos ang kailangang gawin ng mga web browser at server bilang tugon sa iba't ibang mga utos.
  • Paano inililipat ang bawat piraso ng impormasyon mula sa isa patungo sa isa pang computer sa pamamagitan ng web.
  • Paano nilikha, nai-format at naipadala ang mga mensahe.

Sa madaling salita, itinakda ng HTTP at HTTP / 2 ang mga pamantayan para sa kung paano maihahatid ang nilalaman ng web sa iyong computer, na may pagkakaiba na ginagawa ng HTTP / 2 ang lahat ng mga bagay na mas mabilis kaysa sa hinalinhan nito. Makikita mo rito kung ano ang ginagawa ng HTTP / 2 sa mga detalye.



Mga Multiplex na Stream

Ang serye ng bi-directional ng mga frame ng format ng teksto na ipinadala sa pamamagitan ng HTTP / 2 na protocol sa pagitan ng isang server at client ay tinatawag na 'stream.' Ang HTTP ay may kakayahang magpadala lamang ng isa sa mga 'stream' na ito nang paisa-isa. Matapos maipadala ang stream mayroong isang pagkaantala ng oras sa pagitan ng susunod na paghahatid ng stream.

Ang HTTP / 2 ay nagtatatag ng isang bagong layer ng binary framing na direktang nalulutas ang problema sa paglilipat ng 'stream' nang paisa-isa. Pinapayagan nito ang mga kliyente at server na ihiwalay ang HTTP / 2 na kargamento sa maliliit, independyente at madaling mapamahalaan na magkakasunod na mga pagkakasunud-sunod ng frame. Ang lahat ng impormasyong ito ay muling pinagtagpo sa sandaling natanggap sa kabilang dulo. Pinapayagan ng protokol na ito ang palitan ng maramihang, kasabay na bukas, at independiyenteng mga bi-directional na pagkakasunud-sunod na walang latency sa pagitan ng sunud-sunod na mga stream.

Benepisyo:

  • Ang mga magkaparehong multiplexed na kahilingan at tugon ay hindi nagba-block sa bawat isa.
  • Ang isang solong koneksyon sa TCP ay maaaring matiyak ang mabisang paggamit ng mapagkukunan ng network kahit na sa paglilipat ng maraming mga stream ng data.
  • Mas mabilis na pagganap sa web, nabawasan ang latency, at mas mahusay na mga resulta ng search engine.
  • Nabawasan ang CapEx at OpEx sa pagpapatakbo ng network at mga mapagkukunan ng IT.

HTTP / 2 Server Push at Cache Push

Ito ay isang kakayahan na nagpapahintulot sa mga server na magpadala ng karagdagang impormasyong nai-cache sa mga kliyente . Hindi hinihiling ang impormasyong iyon ngunit inaasahan para sa mga kahilingan sa hinaharap. Kung ang kliyente ay humiling ng isang mapagkukunan A at alam na ang isa pang mapagkukunan B ay sumangguni sa hiniling, ang server ay maaaring itulak ang B kasama ang A sa halip na maghintay para sa isa pang kahilingan ng kliyente. Pagkatapos ay nai-save ng kliyente ang itinulak na mapagkukunan B sa cache para magamit sa hinaharap. Ang tampok na ito ay nagse-save ng isang buong proseso ng pag-ikot ng kahilingan-tumugon at binabawasan ang latency ng network. Orihinal na ipinakilala ng Google ang Server Push sa SPDY protocol.

Ang isa pang pagpapabuti sa HTTP / 2 ay ang Cache Push. Ito ay proactive na nag-a-update o nagpapawalang bisa sa cache ng client. Nagbibigay ito ng kakayahang mag-server upang makilala ang posibleng mga mapagkukunang ma-push na magagawa na talagang ayaw ng mga kliyente.

Benepisyo:

  • Maaaring tanggihan ng mga kliyente ang mga tinulak na mapagkukunan upang mapanatili ang isang mahusay na imbakan ng mga naka-cache na mapagkukunan (o kahit na huwag paganahin ang Server Push).
  • Maaaring limitahan ng mga kliyente ang bilang ng mga naitulak na stream na multiplexed kasabay.
  • Maaaring unahin ng mga server ang mga naitulak na mapagkukunan. Ito ay isang susi sa pagkakaiba ng pagganap sa pagitan ng HTTP / 2 at HTTP.
  • Maaaring i-multiplex ng mga server ang mga mapagkukunang itinulak kasama ang hiniling na impormasyon ng kliyente sa loob ng parehong koneksyon sa TCP.
  • Maaaring gamitin ng mga kliyente ang mga naka-cache na mapagkukunan sa iba't ibang mga pahina.
  • Ang mga kliyente ay nagse-save ng mga naitulak na mapagkukunan sa memorya ng cache.

Mga Binary Protocol

Ang HTTP / 2 ay makabuluhang napabuti ang mga kakayahan kapag binabago ang text protocol sa isang binary protocol . Habang ginagamit ng HTTP upang maproseso ang mga utos ng teksto upang magpatupad ng mga siklo ng pagtugon sa kahilingan, ang HTTP / 2 ay umaasa sa mga utos na binary. Pinapaikli nito ang oras (sa 1 ​​at 0) para sa pagpapatupad ng parehong mga gawain.

Ang mga browser na may suporta sa HTTP / 2 ay babaguhin ang mga utos ng teksto sa binary code bago ilipat ito sa network. Gayunpaman, ang layer ng binary framing ay hindi paatras na katugma sa mga HTTP server at kliyente.

Benepisyo:

  • Pinipigilan ang mga alalahanin sa seguridad na nauugnay sa likas na katangian ng HTTP (hal. Mga pag-atake sa paghahati ng tugon).
  • Pinapagana ang mga kakayahang HTTP / 2 tulad ng compression, prioritization, multiplexing, mabisang paghawak ng TLS, at flow control.
  • Compact representation ng mga utos na nagpapahintulot sa mas madaling pagpapatupad at pagproseso.
  • Matibay at mabisang pagproseso ng data sa pagitan ng mga kliyente at server.
  • Pinahusay na throughput at nabawasan ang latency ng network.
  • Mas kaunting mga pagkakataon para sa mga error kung ihinahambing sa HTTP.
  • Mahusay na mahusay na paggamit ng mapagkukunan ng network.
  • Mababang overhead sa pag-parse ng data.
  • Mas magaan na bakas ng paa ng network.

Pag-prioritize ng Stream

Pinapayagan ng HTTP / 2 ang mga kliyente na magbigay ng mga kagustuhan sa mga partikular na stream ng data. Ang mga server ay hindi nakasalalay na sundin ang mga tagubilin ng mga kliyente na ito, ngunit pinapayagan ng mekanismong ito ang mga server na i-optimize ang paglalaan ng mapagkukunan ng network batay sa mga kinakailangan ng gumagamit .

Gumagawa ang Prioritization ng stream sa Timbang at Mga Dependensiyang nakatalaga sa bawat stream. Sa kabila ng katotohanang ang lahat ng mga stream ay likas na nakasalalay sa bawat isa maliban, mayroon silang bigat na itinalaga sa pagitan ng 1 at 256. Ang mga mekanismo ng pag-prioritize ng stream ay isang paksa pa rin ng debate. Gayunpaman, kapag ang Prioritization ng Stream ay pinagsama sa kakayahan ng HTTP / 2 ng pagproseso ng maramihang mga stream ng data sa isang solong koneksyon sa TCP, maaaring humantong sa isang sabay na pagdating ng mga iba't ibang mga kahilingan sa server.

Benepisyo:

  • Nabawasan ang mga negatibong epekto ng mga alalahanin sa latency ng network.
  • Pinahusay na karanasan ng gumagamit at bilis ng pag-load ng pahina.
  • Ang pag-optimize sa komunikasyon ng data sa pagitan ng mga server at kliyente.
  • Lubhang mabisang paggamit ng mapagkukunan ng network.
  • Nabawasan ang oras ng paghahatid para sa pangunahing mga kahilingan sa nilalaman.

Stateful Header Compression

Kapag nagba-browse ang mga gumagamit ng mga website na mayaman sa nilalaman ng media, gamit ang HTTP, itinutulak ng mga kliyente ang maraming malapit sa magkaparehong mga frame ng header. Ito ang kaso dahil ang bawat kahilingan sa kliyente ay dapat na magsama ng maraming impormasyon na kinakailangan ng server upang maisagawa ang hiniling na operasyon. Ang prosesong ito ay humahantong sa latency at hindi kinakailangang pagkonsumo ng mapagkukunan.

Kasama sa HTTP / 2 ang kakayahang i-compress ang isang malaking bilang ng mga kalabisan na mga frame ng header. Nakasalalay ito sa pagtutukoy ng HPACK bilang isang ligtas at simpleng diskarte sa compression ng header . Ang mga kliyente at server ay nagpapanatili ng isang listahan ng mga header na ginamit sa nakaraang mga kahilingan ng client-server. Direktang tinutugunan nito ang mga alalahanin sa mga kalabisan na mga frame ng header.

Benepisyo:

  • Mga naka-encode na karaniwang ginagamit na mga header at malalaking header. Tinatanggal nito ang pangangailangan para sa pagpapadala ng buong mga frame ng header. Ang indibidwal na laki ng bawat stream ay lumiliit nang malaki.
  • Pinipigilan ang mga pag-atake sa seguridad tulad ng pag-explore ng CRIME ng mga stream ng data na may mga naka-compress na header.
  • Mahusay na paggamit ng mga mekanismo ng multiplexing.
  • Pagprayoridad ng mahusay na stream.
  • Nabawasan ang overhead ng mapagkukunan.

Mga Pakinabang sa Real-World ng HTTP / 2

Ang HTTP / 2 ay nakatuon sa pag-maximize ng potensyal ng teknolohiya , upang matugunan ang mga pangangailangan at inaasahan sa hinaharap. Narito ang mga benepisyo sa real-world ng paggamit ng HTTP / 2.

Pagganap sa Web at Pagganap ng Web sa Mobile - Ang HTTP / 2 ay may mga kakayahang magpadala at makatanggap ng higit pang data sa isang ikot ng komunikasyon ng client-server. Ito ay gumagana nang maayos upang mabawasan ang latency sa pag-access ng mga serbisyo sa internet sa mga mobile data network at network na may limitadong bandwidth bawat gumagamit.

Mas murang Mataas na Bilis na Internet - Ang HTTP / 2 ay nagdaragdag ng pagiging epektibo ng komunikasyon sa data. Pinapayagan ang mga nagbibigay ng internet na paliitin ang pangkalahatang gastos habang pinapanatili ang mga pamantayan ng mataas na bilis ng internet.

Seguridad - Ang HTTP / 2 ay hindi madaling maapektuhan ng mga banta na nagta-target ng mga proteksyon ng layer ng application na batay sa teksto. Bukod dito, gumagamit ito ng diskarte na 'Seguridad ayon sa Pagkamalas' upang maprotektahan ang sensitibong paghahatid ng data sa pagitan ng mga kliyente at server.

Malawakang Abot - HTTP / 2 kalamangan bawasan ang mga kinalabasan ng internet para sa mga provider. Hahantong iyon sa mas malawak na saklaw ng internet sa isang antas sa buong mundo.

Media-Rich Web Karanasan - Ang mga tampok sa teknolohiya at pakinabang na dinadala ng HTTP / 2 sa World Wide Web ay nagbibigay ng isang imprastraktura na may kakayahang maghatid ng nilalaman na mayaman sa media sa mas mabilis na bilis ng pag-load ng pahina.

Balutin

Ang HTTP / 2 ay medyo bagong protocol, ngunit ang suporta para dito ay patuloy na lumalaki. Ngayon, ang karamihan sa mga browser ng internet ay sumusuporta sa HTTP / 2 (Microsoft Edge, Google Chrome, Safari, Firefox, Chrome para sa Android). Maraming mga web server ang may kasamang HTTP / 2 katutubong suporta (Apache HTTP Server, Tomcat, NGINX). Nang walang pag-aalinlangan, ang HTTP / 2 ay ang WWW protocol ng hinaharap.

5 minuto basahin