HTTP

Hypertext Transfer Protocol (HTTP) er aðferð til að senda eða taka við gögnum á veraldarvefnum. Upprunalegi tilgangurinn var að birta HTML síður, þótt núna sé HTTP notað til að hlaða niður myndum, hljóði, leikjum, textaskjölum og margmiðlun af allri gerð. Venjulega eru HTTP skilaboð alltaf í pörum (en ekki reglan frá og með HTTP/2), beiðni frá biðlara og svar frá miðlara. HTTP skilaboð eru byggð upp af HTTP haus og síðan gögnunum sjálfum. Til að skilja á milli gagnanna og haussins eru notuð tvö auð línubil (í útgáfum af HTTP fyrir HTTP/2). HTTP/1.1 er enn mikið notað og í nokkrum mæli næsta útgáfa HTTP, HTTP/2 sem staðlað var 2015, er studd af flestum vöfrum og t.d. netþjónum Google. Einnig er HTTP/3 ("Internet Draft") líka í notkun á vefnum nú þegar, er en sú aðferð, sem notar UDP en ekki TCP, ólíkt fyrri HTTP stöðlum, bætir hraðann enn frekar umfram HTTP/2 sem gerður var til að bæta hraðann á eldri HTTP staðli.

Allar þessar aðferðir þurfa bæði stuðning í vöfrum sem notaðir eru, en líka á miðlara ("web server"). Hvaða aðferð er í raun notuð er ekki augljóst fyrir notanda (ólíkt dulkóðuðu HTTPS; þó nota staðlarnir HTTP/2 og nýrri í reynd HTTPS). HTTPS þýðir aðeins að notuð sé örugg útgáfa af HTTP, t.d. HTTP/1.1 (eða nýrri); S-ið í lokin stendur fyrir secure, og ættu hið minnsta allir netbankar að nota það dulkóðaða afbrigði af HTTP.

Cloudflare tilkynnti HTTP/3 stuðning á sínum netþjónum (til nota fyrir viðskiptavini) og Google Chrome (í Canary útgáfunni) í september 2019. Stuðningur er líka kominn í Firefox ("Nightly" útgáfu).

Bygging skilaboða.

Hér er dæmi um HTTP 1.1 beiðni:

Með ímynduðu svari:

HTTP/1.1 200 OK

Date: Mon, 22 Desember 2008

20:40:00 GMT

Content-length: 85

Content-type: text/html

&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;

&lt;html xmlns="http://www.w3.org/1999/xhtml" xml:lang="is" lang="is" dir="ltr"&gt;

&lt;head&gt;

&lt;meta http-equiv="Content-Type" content="text/html; charset=utf-8" /&gt;

&lt;/head&gt;

&lt;/html&gt;

Athugið að línubil er notað til að skilja á milli hluta haussins, og tvö til að skilja á milli haussins og gagnanna.

Tegundir beiðna.

Algengasta tegund HTTP beiðnar er GET. Þar á eftir koma POST, CONNECT og HEAD. GET er notað til að biðja um upplýsingar, til dæmis vefsíðu. POST er notuð til að senda skipun, í mjög víðri merkingu. Þannig má nota POST til að bæta ummælum við bloggfærslu, breyta grein á Wikipediu eða framkvæma millifærslu í netbanka. HEAD er notað til að biðja um upplýsingar um skjal sem má ná í með GET. Svar við HEAD beiðni getur sagt til um hvort skjalið er til, ágiskun á stærð þess og dagsetningu seinustu breytingar.

POST og PUT beiðnirnar eru sérstakar að því leyti að þeim fylgir skjal. Til að skipa fyrir yfir HTTP er byrjað á því að ná í eyðublað með GET. Eyðublaðið sendir notandinn svo til baka útfyllt með POST beiðni. Vefþjónninn bregst þá við með því að framkvæma aðgerðina. Sending skipunar yfir net er torveld að því leyti að erfitt getur verið að fá staðfest hvort eyðublaðið hefur komist til skila eða ekki ef netsamband rofnar við lok sendingar. Þó að netsamband komist aftur á, er ekki víst að þorandi sé að endursenda eyðublaðið ef ske kynni að aðgerðin verði þá tvítekinn. Til dæmis sami reikningur tvígreiddur.

Heimildir.

(sem vísar einnig á ensku Wikipediu)