[author image=”http://luca.co.in/wp-content/uploads/2015/03/akhil-krishnanan.jpg” ]അഖിലന്
[email protected][/author]
എച്ച്.ടി.ടി.പി 1.1 ന് പകരക്കാരിയായി – എച്ച്.ടി.ടി.പി 2 എത്തുന്നു. പതിനഞ്ച് വര്ഷമായി നല്കിവന്ന സേവനത്തിന് വിശ്വ വ്യാപന വലയുടെ സമൂഹം നന്ദി രേഖപ്പെടുത്തി തുടങ്ങി. ഇന്റര്നെറ്റിന്റെ സാങ്കേതിക കാര്യങ്ങള് നിയന്ത്രിക്കുന്ന ഇന്റര്നെറ്റ് എഞ്ചിനീറിങ്ങ് സ്റ്റീറിങ് ഗ്രൂപ്പ് (IESG), HTTP 2.0 പ്രോട്ടോക്കോളുകള്ക്കും HPACK ഹെഡറുകള്ക്കും അംഗീകാരം നല്കിക്കഴിഞ്ഞു. ഉടൻ തന്നെ പൊതുജനങ്ങളില് നിന്നും അഭിപ്രായങ്ങള് ശേഖരിക്കാനായി ഇത് എഞ്ചിനീയറിംഗ് സമൂഹത്തിന്റെ ഔദ്യോഗിക ആര്.എഫ്.സി (Request for Comments-RFC) ക്യൂവിലെത്തുകയും ചര്ച്ചയ്ക്കു ശേഷം പൊതു ഉപയോഗത്തിനായി പ്രസിദ്ധപ്പെടുത്തുകയും ചെയ്യും. വെബ് അധിഷ്ഠിത ഉത്പന്നങ്ങളെ സംബന്ധിച്ചിടത്തോളം സവിശേഷമായ ഒരു ചുവടുവെയ്പ്പാണിതു്.
എന്താണു് HTTP? എങ്ങനെയാണതിന്റെ പ്രവര്ത്തനം?
ഇന്റര്നെറ്റില് ഏറ്റവുമധികം ഉപയോഗിക്കപ്പെടുന്ന സേവനമായ വെബ്ബിനു ആധാരമായ ചില ഡിജിറ്റല് നിയമങ്ങളുടെ കൂട്ടം (പ്രോട്ടോക്കോള്) ആണ് ഹൈപര്ടെക്സ് ട്രാസ്ന്ഫര് പ്രോട്ടോക്കോള് അഥവാ എച്ച്ടിടിപി. ഇത് വിവരവിനിമയത്തില് ഏര്പ്പെടുന്ന കമ്പ്യൂട്ടറുകളെല്ലാം അനുസരിക്കേണ്ട ഡിജിറ്റല് നിയമങ്ങളാണ്. കമ്പ്യൂട്ടര് ശ്രംഖലകളെ ക്രമീകരിക്കുവാനായി നിര്മ്മിച്ച ചട്ടക്കൂടായ ഐ.എസ്.ഓ/ഓ.എസ്.ഐ പ്രകാരം ഏറ്റവും മുകളിലത്തെ പാളിയായ ആപ്ലിക്കേഷൻ ലെയറിലാണിതു പ്രവര്ത്തിക്കുന്നതു്. ഒരു റിക്വസ്റ്റ് – റെസ്പോണ്സ് മാതൃകയില് പ്രവര്ത്തിക്കുന്ന ഈ പ്രോട്ടോക്കോളില് ക്ലൈന്റായി ഉപഭോക്താവിന്റെ കമ്പ്യൂട്ടറും സെര്വ്വറായി സേവനദാതാവിന്റെ കമ്പ്യൂട്ടറുമാവും വര്ത്തിക്കുക. ലളിതമായി പറഞ്ഞാല് പണം നല്കുമ്പോള് കടക്കാരൻ സാധനം തരും പോലെ തന്നെ. ഉപയോക്താവ് പണത്തിന്റെ രൂപത്തില് ഒരു സേവനത്തിനുള്ള റിക്വസ്റ്റ് . നല്കുകയാണു് അതു കേട്ട് കടക്കാരൻ അദ്ദേഹത്തിന്റെ സേവനം വസ്തുവിന്റെ രൂപത്തില് നല്കുന്നു.
വേള്ഡ് വൈഡ് വെബിന്റെ പിതാവായ ടിം ബെര്ണേഴ്സ് ലീയും കൂട്ടാളികളുമാണു എണ്പതുകളുടെ അവസാനത്തോടെ എച്ച്ടിടിപിയുടെ ആദിമ രൂപം അവതരിപ്പിക്കുന്നതു്. ഹൈപര്ടെക്സ്റ്റ് ഉപയോഗിച്ചെഴുതിയ വെബ്പേജുകള് പരസ്പരം ഹൈപര്ലികുകളാല് ബന്ധിപ്പിക്കുന്ന വിധത്തിലായിരുന്നു വെബിന്റെ ഘടന മുന്നോട്ട് വെച്ചത്. ഇത്തരത്തിലുള്ള ഹൈപര്ടെക്സ്റ്റ് ഉള്ളടക്കം ക്രിയാത്മകമായി കൈമാറ്റം ചെയ്യാൻ കഴിയണം എന്നതായിരുന്നു എച്ച്.ടി.ടി.പി നിര്മ്മിക്കാൻ പ്രേരിപ്പിച്ച ഘടകം. വെബിനു വേണ്ടി മാത്രമായിരുന്നു നിര്മ്മാണമെങ്കിലും പിന്നീട് വന്നേക്കാവുന്ന മുന്നേറ്റങ്ങള്കൂടി മുന്നില് കണ്ടിരുന്നു. മെഥേഡ്സ് എന്നറിയപ്പെടുന്ന ഒരു കൂട്ടം പ്രയോഗങ്ങള് മുഖേനയാണു സെര്വറിലെ എണ്പതാം നമ്പര് പോര്ട്ടുമായി ക്ലൈന്റ് വിനിമയ ബന്ധത്തിലേര്പ്പെടുക. ഇതില് GET എന്ന മെഥേഡുപയോഗിച്ചായിരിക്കും ഒരു യൂസര് ഏജന്റ് അഥവാ വെബ് ബ്രൗസര് ഒരു വെബ് പേജിനായി അഭ്യര്ഥിക്കുക. ഉദാഹരണത്തിനു ഗൂഗിളിന്റെ ഹോം പേജിനായുള്ള അഭ്യര്ത്ഥന ‘GET google.com HTTP/1.1’ എന്ന വിധത്തിലാവും. ഇവിടെ google.com എന്നത് ഫയലിന്റെ സ്ഥാനവും (യൂണിഫോം റിസോഴ്സ് ഐഡന്റിഫയര് -URI) ശേഷമുള്ളത് പ്രോട്ടോക്കോള് പതിപ്പിനേയും സൂചിപ്പികുന്നു. ഇതിനൊപ്പം തന്നെ ഉപയോക്താവിന്റെ പ്രവര്ത്തകം (ഓപറേറ്റിങ്ങ് സിസ്റ്റം, ബ്രൗസര്), ലഭ്യമാക്കേണ്ട പേജിന്റെ ഭാഷ, മറ്റ് സവിശേഷതകള് എന്നിവയും സെര്വ്വറുമായി പങ്കുവയ്ക്കും.
ഓരോ അഭ്യര്ത്ഥനയ്ക്കും മറുപടിയായി സെര്വ്വര് ഒരു മൂന്നക്ക സ്റ്റാറ്റസ് കോഡ് തിരിച്ചയയ്ക്കും. ഇതു അഭ്യര്ത്ഥനയ്ക്ക് സെര്വ്വറില് എന്താണു സംഭവിച്ചെന്നതിനെ സൂചിപ്പിക്കുന്നു. ഉദാ: 200 എന്നത് പ്രവര്ത്തനം വിജയമാണെന്നും (request succeed), 404 അഭ്യര്ത്ഥിച്ച പേജ് നിലവിലില്ലെന്നും (page not found), 500 സെര്വര് പിശക് സംഭവിച്ചെന്നും കാണിക്കുന്നു (internal server error). വിജയമാണേങ്കില് മാത്രം സ്റ്റാറ്റസ് കോഡിനു പിന്നാലെയായി സെര്വറിനെപ്പറ്റിയുള്ള അധികവിവരങ്ങളും (ഉപയോഗിക്കുന്ന സെര്വ്വര് സോഫ്റ്റ്വെയര്, പേജിന്റെ വലിപ്പം, അവസാനം പരിഷ്കരിച്ചത് മുതലായവയും) അഭ്യര്ത്ഥിച്ച പേജും ക്ലൈന്റിനു ലഭ്യമാകും. ഇവ ഉപയോക്താക്കള്ക്കു മുൻപില് പ്രദര്ശിപ്പിക്കുക എന്നത് ബ്രൗസറിന്റെ ജോലിയാണു്.
example.com എന്ന വെബ്പേജിനായി മോസില്ല ഫയര്ഫോക്സ് ഉപയോഗിച്ച് നടന്ന റിക്വസ്റ്റ് – റെസ്പോണ്സ് താഴെ:
റിക്വസ്റ്റ്:
GET / HTTP/1.1
User-Agent: Mozilla/5.0 (X11; Linux i686; rv:37.0) Gecko/20100101 Firefox/37.0
Host: www.example.com
Accept-Language: ml-IN, ml
Connection: Keep-Alive
റെസ്പോണ്സ്:
HTTP/1.1 200 OK
Accept-Ranges: bytes
Cache-Control: max-age=604800
Content-Type: text/html
Date: Sun, 22 Feb 2015 09:54:14 GMT
Etag: “359670651”
Expires: Sun, 01 Mar 2015 09:54:14 GMT
Last-Modified: Fri, 09 Aug 2013 23:54:35 GMT
Server: ECS (ewr/15BD)
X-Cache: HIT
x-ec-custom-error: 1
Content-Length: 1270
ശേഷം പേജിനായുള്ള എച്ച്.ടി.എം.എല് ഉള്ളടക്കവും.
HTTP 2.0യിലേക്ക്
15 കൊല്ലമായി ഉപയോഗത്തിലിരിക്കുന്ന HTTP യുടെ 1.1 പതിപ്പ് രംഗത്തെത്തിയതിന് ശേഷം ഉപയോക്താക്കളുടെ വെബ് ഉപയോഗരീതി അടിമുടി മാറിയിട്ടുണ്ടു്. വെബ് 2.0 നാല് കൈകാര്യം ചെയ്യപ്പെടുന്ന ഉള്ളടക്കം മുൻപുണ്ടായിരുന്നതില് നിന്നും പാടേ വ്യത്യസ്ഥമാണു്. ടെക്സ്റ്റിനെക്കാളും മള്ട്ടിമീഡിയയ്ക്ക് സ്വീകാര്യത ലഭിച്ചു തുടങ്ങിയിരിക്കുന്നു. മാത്രമല്ല HTTP 1.1 ലൂടെ നിര്മ്മിക്കാവുന്ന ടിസിപി (Transmission Control Protocol) കണക്ഷനുകള്ക്ക് പരിധിയുണ്ടു്. അതേസമയം ഒരേ സെര്വറുമായി ബ്രൗസറുകള് അനാവശ്യമായി പുതിയ കണക്ഷനുകള് നിര്മ്മിക്കുന്നതു മൂലം വളരെയധികം വിഭവങ്ങളാണു (ബാന്റ്വിഡ്ത്ത്, പ്രോസസിങ്ങ് പവര്) പാഴാക്കപ്പെടുന്നതു്.
HTTP 1.1ന്റെ പൂര്ണ്ണമായ ഒരു പൊളിച്ചെഴുത്തല്ല 2.0. നിലവിലുള്ള പ്രോട്ടോക്കോളില് സാഹചര്യങ്ങള്ക്ക് അനുസൃതമായി മെച്ചപ്പെടുത്തലുകള് കൊണ്ടുവരികയാണു ഇതുകൊണ്ടുദ്ദേശിക്കുന്നതു്. ഗുഗിള് നിര്മ്മിച്ച സ്പീഡീ (SPDY) എന്ന പ്രോട്ടോക്കോള് സ്റ്റാക്ക് അധാരമാക്കിയ 2.0 യില്, മെഥേഡുകള്, സ്റ്റാറ്റസ് കോഡുകള്, പദവിന്യാസം എന്നിവയില് 1.1 ലേതില് നിന്നും കാര്യമായ മാറ്റങ്ങള് വരുത്തിയിട്ടില്ലെങ്കിലും വേഗത, സുരക്ഷിതത്വം, കുറഞ്ഞ വിഭവ ഉപയോഗം എന്നിവയ്ക്ക് പ്രാധാന്യം നല്കിയിരിക്കുന്നു. സംപ്രേക്ഷണസമയത്ത് HTTP ഹെഡര് ഫയലുകളുടെ വലിപ്പം കുറയ്ക്കുന്നതിനെക്കുറിച്ചു പ്രതിപാദിക്കുന്ന HPACK നിര്ദ്ദേശങ്ങളും പ്രോട്ടോക്കോളിന്റെ ഭാഗമാണു്. ഹഫ്മാൻ കോഡിങ്ങാണു ഇതിനായി ഉപയോഗിക്കുക. മുൻപുള്ള പ്രോട്ടോക്കോളുകളുമായി പൂര്ണ്ണമായ ആനുരൂപ്യം ഉറപ്പുവരുത്തുന്ന HTTP 2.0, അവയില് നിന്നും വ്യത്യസ്ഥമായി ടെക്സ്റ്റിനു പകരം ബൈനറി വ്യവസ്ഥയാണു ആധാരമാക്കിയിരിക്കുന്നതു്. ഇതിനാല് ടെക്സ്റ്റ് പാഴ്സ് (Parse) ചെയ്യപ്പെടാനുള്ള കാലതാമസം ഒഴിവാക്കുന്നതിനൊപ്പം പിശകിന്റെ അളവു കുറയ്ക്കുന്നതിനും സഹായിക്കുന്നു. ചാറ്റ് പോലത്തെ സേവനങ്ങള്ക്ക് പ്രയോജനകരമായ രീതിയില് സെര്വര് പുഷ് സാങ്കേതികവിദ്യയും 2.0 പതിപ്പില് ഉള്പ്പെടുത്തിയിട്ടുണ്ട്. ഒരു റിക്വസ്റ്റ് ഇല്ലാതെ തന്നെ അടുത്തതായി ഉപയോഗത്തില് വരാൻ സാധ്യതയുള്ള ഉള്ളടക്കം ക്ലൈന്റിനു സെര്വ്വര് ലഭ്യമാക്കുകയാണിതില് ചെയ്യുന്നതു്.
ഡാറ്റാ പാക്കറ്റുകളുടെ വിനിമയത്തെപ്പറ്റി വ്യകതമായ കാഴ്ചപ്പാട് HTTP 2.0 പങ്കുവയ്ക്കുന്നു. പൈപ്ലൈനിങ്ങ് വഴി ഒന്നിലധികം റിക്വസ്റ്റുകള് സമാന്തരമായി കൈകാര്യം ചെയ്യാൻ ബ്രൗസറുകള്ക്ക് ഇതിലൂടെ അവസരമൊരുക്കുന്നു (പാരലലിസം). പാരലലിസം കമ്പ്യൂട്ടറിന്റെ ശേഷി കൂട്ടാനുപയോഗിക്കുന്ന ഒരു ടെക്നിക് ആണു്. ഒരു ജോലി ചെയ്ത് തീര്ക്കുന്നത് പല ഭാഗങ്ങളുടെ സഹായത്തോടെയായിരിക്കാം. എന്നാല് എല്ലാ സമയത്തും എല്ലാ ഭാഗങ്ങളും ഉപയോഗിക്കണമെന്നില്ല. ഒരു ജോലി ചെയ്തു തീര്ന്നിട്ടു മാത്രം അടുത്തതു തുടങ്ങാൻ നിന്നാല് ഇവയില് മിക്കതും ഭൂരിഭാഗം സമയത്തും വെറുതേയിരിക്കും. അതൊഴിവാക്കാനായി ഒന്നിലധികം ജോലികള് ഒരേ സമയത്ത് ചെയ്യും. ഓരോ ഭാഗങ്ങളും എപ്പോഴും ഏതെങ്കിലും ജോലിയില് വ്യാപൃതരായിരിക്കുകയും അതുവഴി കൂടുതല് ജോലി പെട്ടെന്നു ചെയ്തു തീരിക്കാനും പ്രതികരണക്ഷമത കൂട്ടാനും കഴിയുന്നു. ഒരു ക്യൂവില് അകപ്പെടുന്ന പാക്കറ്റ് പിന്നാലെ വരുന്ന പാക്കറ്റുകളുടെ സുഗമമായ ഒഴുക്കിനു തടയിടുന്ന ‘ഹെഡ് ഓഫ് ലൈൻ പ്രോബ്ലം’ 2.0ല് പരിഹരിച്ചിട്ടുണ്ടു്. ആപ്ലിക്കേഷൻ ലെയറില് തന്നെ പാക്കറ്റുകളുടെ ഒഴുക്ക് നിയന്ത്രിക്കാനാവുന്നതോടെ (ഫ്ലോ കണ്ട്രോള്) സംവഹനമാധ്യമത്തിലെ (Carrying Medium) തിരക്ക് ഒരു പരിധിവരെ കുറയ്ക്കാനാവും. ഒപ്പം ഒരു 32 ബിറ്റ് അക്കം ഉപയോഗിച്ച് പാക്കറ്റുകള്ക്കു മുൻഗണന നല്കാനും ഇതില് കഴിയും. ടിഎല്എസ്. (ട്രാൻസ്പോര്ട്ട് പാളിയില് ഉപയോഗിക്കുന്ന ഒരു എൻക്രിപ്ഷൻ പ്രോട്ടോക്കോള്) നിര്ബന്ധമാക്കുന്നതിലൂടെ മെച്ചപ്പെട്ട സുരക്ഷയും HTTP 2.0 വാഗ്ദാനം ചെയ്യുന്നുണ്ടു്. പേജ് ലോഡ് ചെയ്യാനെടുക്കുന്ന സമയം 50 ശതമാനത്തോളം കുറയ്ക്കാനാവുമെന്നാണു സാങ്കേതികവിദഗ്ദര് അഭിപ്രായപ്പെടുന്നതു്.
വിമര്ശനങ്ങള്
ഇങ്ങനെയൊക്കെയാണെങ്കിലും ഇതിനകം തന്നെ ഒട്ടനവധി വിമര്ശനങ്ങള് പുതിയ പ്രോട്ടോക്കോളിനു നേരെ ഉയര്ന്നു വന്നിട്ടുണ്ടു്. ഗൂഗിള് പോലുള്ള കോര്പറേറ്റുകളുടെ രാഷ്ട്രീയ അജണ്ട നടപ്പിലാക്കാനാണു് ഇന്റര്നെറ്റ് എഞ്ചിനീറിങ്ങ് ടാസ്ക് ഫോഴ്സ് ഇതിലൂടെ ശ്രമിക്കുന്നതു എന്നതാണു ഇതില് പ്രധാനം. ഉപയോക്താക്കള്ക്ക് മുകളില് ഇതു അനാവശ്യ മോണിറ്ററിങ്ങിനു വഴിയൊരുക്കാം എന്നും ആരോപണമുണ്ട്. അസ്ഥിരത, അനാവശ്യ സങ്കീര്ണത എന്നിവയും HTTP 2 നെ പ്രതിക്കൂട്ടില് നിര്ത്തുന്നവയില് ചിലതാണു്.
[divider]
അവലംബം :
൧) കമ്പ്യൂട്ടര് നെറ്റ്വര്ക്ക്സ് 5th Edition, 2011- ആൻഡ്രൂ എസ്. ടാനൻബാം
൨) ETF HTTPbis Working Group HTTP/2 Specification
http://http2.github.io/http2-spec/index.html
൩) Making the Web Faster with HTTP 2.0 HTTP continues to evolve, Ilya Grigorik, ACM Queue
http://queue.acm.org/detail.cfm?id=2555617
൪) HTTP/2.0 – The IETF is Phoning It In Bad protocol, bad politics, Poul-Henning Kamp, ACM Queue
http://queue.acm.org/detail.cfm?id=2716278