SPDY, weba azkartzeko protokoloa
- (Elhuyar aldizkariko 2013ko urtarrileko zenbakian argitaratutako artikuluaren jatorrizko extended bertsioa)
SPDY ez dira ezeren siglak, abiadura adierazteko hitz-joko bat baizik: lehen bi letrak euren ingelesezko izenarekin pronuntziatuz eta azken biak silaba normal gisa esanez, speedy hitza ateratzen zaigu, “arina” edo “azkarra” esan nahi duena hain zuzen. Gogoratzen Speedy Gonzales sagua?
SPDYk asko azkartzen omen ditu webeko orri, dokumentu eta bestelako fitxategien transferentziak. Googlek laborategian egindako proben arabera, errendimendua % 64raino hobe daiteke. Eta mugikorretan egindako lehen probetan, orriak % 23 azkarrago kargatzea lortu dutela diote. Baina nola lortzen da hobekuntza hori?
Webeko komunikazioen oinarriak
OSI ereduaren 7 mailak
Irudia: Elhuyar aldizkaria
Azkartzea nola erdiesten den ulertzeko, beharrezkoa da aurrez HTTP protokoloak eta webak berak nola funtzionatzen duen ezagutzea. Webeko komunikazioa, datuen edozein telekomunikazio-mota bezala, zazpi mailatan antolatuta dago OSI ereduaren arabera (Open Systems Interconnection reference model, ISOren estandar bat), non maila bakoitzean sistema edo protokolo bat erabiltzen den.
Internet elkarri konektatutako milioika sarek osatutako sare erraldoi deszentralizatua da. Komunikazioaren mailarik oinarrizkoenean, hau da, maila fisikoan, teknologia oso ezberdinak erabiltzen dira bitak (0ak eta 1ak) transmititzeko (tentsio ezberdinak kable elektrikoan, edo argi-intentsitate ezberdinak zuntz optikoan, edo frekuentzia-modulazioa irrati uhinetan...). Hurrengo mailan, lotura-mailan, transmisioan gertatutako errore eta interferentziak detektatu eta zuzentzen dira, kontrolerako bit erredundanteez baliatuz, eta hemen erabiltzen den metodo zehatza maila fisikoaren araberakoa da. Bien konbinazioekin osatzen dira oinarrizko komunikazio-protokoloak, hala nola Bluetooth, WiFi eta abar, eta Internetek horietako asko erabiltzen ditu sarearen hainbat puntutan. Baina goragoko maila logikoetan, Internetek protokolo berberak erabiltzen ditu beti, praktikan sare bakar bat bezala funtzionatuz.
Goragoko maila, sare-maila, datuak paketetan antolatzeaz eta helbideraketaz arduratzen da, eta Interneten IP protokoloa (Internet Protocol) erabiltzen da horretarako (Internetera konektatutako gailuen IP helbideak, zeintzuez aurreko batean hitz egin genizuen, honen parte dira). Ondorengo maila garraio-maila da, eta konexioen ezarpenaz eta mezuen fidagarritasunaz arduratzen da, besteren artean; Internetek TCP protokoloa (Transmission Control Protocol) darabil maila honetan.
Gero datoz saio-maila, autentikazioaz eta horrelakoez arduratzen dena, eta aurkezpen-maila, datuak konprimatu edota zifratzeaz arduratzen dena. Baina Interneten azken bi horiek azken mailarekin, aplikazio-mailarekin, nahasita ageri dira eta haren araberakoak dira. Interneten dauden aplikazio-mailako zerbitzuen adibide dira posta elektronikoa, weba, FTP zerbitzua, txata... Eta weberako HTTP da erabiltzen den protokoloa.
OSI ereduaren inplementazioa Interneten
Irudia: Elhuyar aldizkaria
OSI ereduaren inplementazioa Interneten
Irudia: http://www.cybernet-security.com
HTTP protokoloan bezero batek (gure ordenagailuko web-nabigatzaileak, adibidez) zerbitzari batekin (webguneak ostatatzen dituen web-zerbitzari bat, normalean) konexio bat ezartzen du eta web orri baten eskaera bat bidaltzen dio (bertan hainbat informazio doalarik; adibidez, zein orri nahi den, edo bezeroaren sistema eragilea eta nabigatzailea, edo hizkuntza lehenetsia). Zerbitzariak eskatutako orria itzuliz edo errore-kode batez (404 famatua, esaterako) erantzuten du, eta konexioa amaitzen da.
HTTP konexioa
SPDYren hobekuntzak
HTTP protokoloa egokia da weba sortu zen garaiko webaren ezaugarrientzat, hau da, orri estatikoak besterik ez zituen webarentzat. Baina egungo weba oso bestelakoa da, eta honentzat HTTP protokoloa ez da batere eraginkorra.
Adibidez, gaur egun webgune batean gaudela gure hobespenak ezar ditzakegu, eta horiek gure ordenagailuko cookieetan gordetzen dira; ezarpen horiek webgune horretako orri berri bat eskatzen dugun bakoitzean birbidali behar izaten dira; eta hori informazio asko izan daiteke, alferrik berriz bidaltzen ari garena, komunikazioa mantsotuz. Bestalde, orri berri bat behar dugun bakoitzean konexioa berriz ezarri beharrak ere geldotzen du nabigazioa. Azkenik, orri batean gaudela eguneraketak ikusteko (adibidez, web bidez posta elektronikoa ikusten ari garela mezu berririk dagoen jakiteko), modu bakarra nabigatzaileak maiztasun jakin batekin zerbitzariari galdetzea da, ez dago modurik zerbitzariak berak bezeroari abisatzeko zerbait berria dagoenean.
SPDY protokoloak HTTPren ez-eraginkortasun hauek konpondu nahi ditu, baina HTTP protokoloa bera ordeztu gabe. Saio- eta aplikazio-mailetan inplementatzen den protokoloa da, eta bezeroak eta zerbitzariak, biek, inplementatuta dituzten kasuan jartzen da martxan; bestela, komunikazioa HTTP normalarekin gertatuko da.
SPDYk zerbitzariarekiko konexio bakarra erabiltzen du egiten zaizkion eskaera guztientzat; hau da, bezeroak zerbitzari berari beste orri bat eskatu behar dionean ez dago konexioa berriz ezarri beharrik, eta horrela abiadura azkartu egiten da. Gainera, konexio hori erabilita zerbitzariak ere bidal diezaioke informazioa bezeroari honek eskatu gabe, horrela orrien eguneraketak behar diren unean bertan eta behar direnean soilik egitea ahalbidetuz. Bestalde, bezeroak aurreko eskaeretan bidali duen informazioaren arrastoa gordetzen du zerbitzariak (sistema eragilea, nabigatzailea, preferentziak, hizkuntza...), eta ez dago dena aldiro bidali beharrik; ezberdina edo berria dena soilik bidaltzen da, eta gainera konprimatuta. Azkenik, enkriptazioa eta konpresioa une oro erabiltzen dira.
Historia eta zabalkundea
Googlek sortu zuen SPDY protokoloa, 2009an. 2011n, Chrome bere nabigatzailean inplementatu zuen, eta bere bilaketa eta Gmail zerbitzuetan. Beraz, nabigatzaile horretatik zerbitzu horietara sartzean SPDYren abantailez baliatzen zen erabiltzailea. Gero Googlek bere inplementazio horren kodea ireki zuen, eta geroztik Firefox eta Opera nabigatzaileetan ere inplementatu dute, gehiago bidean direla.
Zerbitzarien softwareari dagokionez, Apache (munduko web-zerbitzari erabiliena), Nginx eta Jetty web-zerbitzarien azken bertsioek jada badute SPDY protokoloa. Twitter eta WordPressek ere eskaintzen dute SPDY euskarria, eta Facebookek iragarri du laster jartzeko asmoa duela.
Agi denez, SPDY hedatze handia izaten ari da. Eta are handiagoa izango dela dirudi, orain lantzen ari diren HTTP protokoloaren hurrengo bertsioak, HTTP 2.0 izenekoak, SPDY izango baitu oinarritzat. Beraz, laster web osoa azkarragoa izango da SPDYri esker. Ándele, ándele! Arriba, arriba! Epa, epa! Yeehaw!