Fara í innihald

HTTP

Úr Wikipediu, frjálsa alfræðiritinu
(Endurbeint frá HyperText Transfer)
Mynd af HTTP beiðni gerð í gegnum Telnet, beiðnin, svarhausinn og svarbúkurinn eru litaðir.

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 líka notað til að hlaða niður t.d. 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 stöðluð var 2015, og er studd af flestum vöfrum og t.d. netþjónum Google.

HTTP/3, arftaki HTTP/2 (og HTTP), var staðlað 2022,[1] og er líka nú þegar í notkun á vefnum (frá því áður en staðlað) á 25% af vefsíðum[2] og er stutt af mörgum vöfrum (75% af notendum).[3] HTTP/3 notar QUIC (sem byggir á UDP) í stað TCP, ólíkt fyrri HTTP stöðlum, og gerir vefsíður, í raun, enn sneggri en HTTP/2 sem var líka endurbót á 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.[4][5] Stuðningur er líka kominn í Firefox.

Bygging skilaboða

[breyta | breyta frumkóða]

Hér er dæmi um HTTP 1.1 beiðni (er samsvarandi í HTTP/" en HTTP/3 sendir ekki textabeiðni):

GET /wiki/Notandi:SvartMan HTTP/1.1
Host: is.wikipedia.org

Með ímynduðu svari (HTTP/3 sendir heldur ekki texta-svar til baka):

HTTP/1.1 200 OK
Date: Mon, 22 Desember 2008
20:40:00 GMT
Content-length: 85
Content-type: text/html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="is" lang="is" dir="ltr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
...
</head>
</html>

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

Tegundir beiðna

[breyta | breyta frumkóða]

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.

GET
Sækja skjal.
POST
Framkvæma aðgerð.
CONNECT
(tæknilegt) til þess að nota undirliggjandi (TCP) tengingu í annað en hreint HTTP. Til dæmis dulkóðað HTTP, HTTPS.
HEAD
Sækja haus sem hefði fylgt skjali sóttu með GET.
PUT
Senda nýja útgáfu af skjali.
DELETE
Eyða skjali.
TRACE
Fá beiðnina endursenda. Notað til að athuga hvort beiðni hefði verið breytt á leiðinni.
OPTIONS
Spyrja hvers konar beiðnir eru studdar.
  1. „HTTP/3“ (bandarísk enska). Sótt 6. júní 2022.
  2. „Usage Statistics of HTTP/3 for websites“. w3techs.com. Sótt 2. nóvember 2021.
  3. „Can I use... Support tables for HTML5, CSS3, etc“. caniuse.com. Sótt 22. september 2022.
  4. Cimpanu, Catalin (26. september 2019). „Cloudflare, Google Chrome, and Firefox add HTTP/3 support“. ZDNet. Sótt 30 október 2019.
  5. „HTTP/3: the past, the present, and the future“. The Cloudflare Blog (enska). 26. september 2019. Sótt 30. október 2019.

„Web APIs Basics“. bls. 1. Sótt desember 2008.
Ovidio Limited. „http.eu“ (enska). Sótt desember 2008. (sem vísar einnig á ensku Wikipediu)
Fyrirmynd greinarinnar var „HyperText Transfer Protocol“ á ensku útgáfu Wikipedia. Sótt desember 2008.