Piecu slāņu TCP/IP modelis |
---|
Lietojumslānis |
Transporta slānis |
Tīkla slānis |
Datu posma slānis |
Fizikālais slānis |
OSI modelis |
7: Lietojumslānis |
---|
6: Pasniegšanas slānis |
5: Sesijas slānis |
4: Transporta slānis |
3: Tīkla slānis |
2: Datu posma slānis |
1: Fiziskais slānis |
HTTP jeb hiperteksta transporta protokols[1] (angļu: HyperText Transfer Protocol) ir lietojumslāņa protokols, kas paredzēts datu apmaiņai starp tīmekļa serveriem un pārlūkprogrammām. Tas ir galvenais informācijas pārraides veids vispasaules tīmeklī. Tā sākotnējā funkcija bija veids, kādā publicēt un pārraidīt hiperteksta dokumentus (HTML lapas), bet tagad ar to var pārraidīt arī cita veida datus.
HTTP ir pieprasījuma/atbildes protokols starp klientiem un serveriem. Transakciju vienmēr sāk klients, izveidojot TCP/IP savienojumu uz servera noteiktu portu (80 pēc noklusējuma) un nosūtot pieprasījumu serverim. HTTP serveris, kurš klausās šo portu, gaida, ka klients nosūtīs pieprasījumu, piemēram, GET / HTTP/1.1
Pieprasījums var būt papildināts ar e-pasta stila MIME ziņojumu, kurš satur noteiktu skaitu informējošas galvenes virknes, kas apraksta dažādus pieprasījuma aspektus, aiz kā seko opcionāls ķermenis ar patvaļīgiem datiem. Pēc pieprasījuma virknes saņemšanas serveris atpakaļ nosūta atbildes virkni, piemēram, "200 OK" (pieprasījums izpildīts veiksmīgi), un savu ziņojumu, kura ķermenis satur pieprasīto failu, kļūdas paziņojumu vai citu informāciju.
HTTP 1.0 atšķiras no citiem uz TCP balstītiem protkoliem, piemēram FTP, ar to, ka savienojums tiek aizvērts tūlīt pēc pieprasījuma izpildes. Tas padara HTTP protokolu īpaši piemērotu vispasaules tīmeklim, kur lappuses bieži vien satur saites uz citiem serveriem. Savukārt HTTP 1.1 izmanto pastāvīgu TCP savienojumu — tādējādi pēc katra pieprasījuma nav jāveido jauns TCP savienojums.
HTTP ir bezstāvokļa protokols — gan serveris, gan klients neuztur savienojuma stāvokli — serveris nezina, vai klients ir saņēmis atbildi, klients pie timeout kļūdas nevar zināt, vai serveris ir apstrādājis pieprasījumu