HTTP
HTTP (hiperteksoordragprotokol[1]) is ’n protokol wat gebruik word tydens die kommunikasie tussen ’n webkliënt (meestal ’n webblaaier) en ’n webbediener. Die protokol word nie net op die Internet gebruik nie, maar ook op lokale netwerke (ons praat dan van ’n intranet).
Internet- en netwerkprotokolle | |
---|---|
Toepassingvlak: | DNS FTP Gopher HTTP HTTPS IMAP IRC NNTP POP3 RTP SIP SMTP SNMP SSH SSL Telnet UUCP XMPP |
Versendvlak: | DCCP SCTP TCP UDP |
Netwerkvlak: | ARP ICMP IGMP IP(IPv4, IPv6) RARP |
Dataskakelvlak: | ATM Ethernet FDDI PPP Token ring Wi-Fi |
volgens die TCP/IP-model |
Die HTTP-protokol spesifiseer die versoeke (Engels: requests) wat 'n kliënt, byvoorbeeld ’n webblaaier, aan die bediener kan stel asook die antwoorde (Engels: responses) wat ’n webbediener kan terugstuur. Elke versoek bevat ’n URL wat verwys na die webkomponent of ’n statiese objek soos ’n webbladsy wat versoek word.
HTTP-versoeke
’n HTTP-versoek bestaan uit ’n metode, die URL, opskrifvelde (header fields) en uiteindelik die inhoud. ’n Oorsig van die HTTP-versoek metodes:
- GET – Ontvang die dokument gespesifiseer deur die URL.
- HEAD – Ontvang slegs die opskrifte (headers) van die gevraagde dokument.
- POST – Versend data na die bediener.
- PUT – Vervang die dokument op die bediener met die versende data.
- DELETE – Verwyder die dokument.
- OPTIONS – Vra die moontlike opsies wat die webbediener ondersteun aan.
’n Volledige versoek, met opskrifvelde, lyk tipies as volg:
GET /wiki/Tuisblad HTTP/1.1 Host: af.wikipedia.org Connection: close User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; nl; rv:1.8.0.3) Gecko/20060426 Firefox/1.5.0.3 Accept: text/xml,text/html,text/plain,image/png,image/jpeg,image/gif Accept-Charset: ISO-8859-1,utf-8 Keep-Alive: 300
HTTP-antwoorde
’n HTTP-antwoord bestaan uit ’n resultaatkode, opskrifvelde (header fields) en ’n boodskap. Die resultaatkode bestaan uit drie syfers, waarvan die eerste syfer die belangrikste is:
- 1xx: ’n informele boodskap van die webbediener wat gevolg sal word deur meer data
- 2xx: ’n boodskap van die bediener wat aandui dat die gevraagde aksie suksesvol voltooi is
- 3xx: ’n aanstuur (redirect) na 'n ander URL
- 4xx: ’n foutboodskap wat deur die kliënt (tipies ’n webblaaier) veroorsaak is, soos ’n verkeerde URL-tipe.
- 5xx: ’n foutboodskap wat deur die webbediener veroorsaak is, soos 'n fout in ’n CGI skrip
- 6xx: ’n proksiefout het voorgekom
Die resultaat-kodes wat die meeste gebruik word is:
- 200 OK – Die gevraagde dokument is suksesvol aangestuur.
- 304 Not Modified – T.o.v. die weergawe in die kas is die bladsy nie gewysig nie.
- 403 Forbidden – Die gevraagde dokument mag nie bekyk word nie.
- 404 Not Found – Die gevraagde dokument bestaan nie.
- 405 Not Allowed – Die gebruiker is nie geregtig om die dokument te sien nie.
- 500 Internal Server Error – Die webbediener kon nie die gevraagde aksie uitvoer nie.
’n Antwoord op die bostaande navraag kan moontlik as volg uitsien:
HTTP/1.0 200 OK Date: Thu, 08 Apr 2004 18:24:33 GMT Server: Apache/1.3.29 (Unix) PHP/4.3.4 X-Powered-By: PHP/4.3.4 Content-Language: af Content-Type: text/html; charset=iso-8859-1 X-Cache: MISS from wikipedia.org Connection: close Content Type: TEXT/HTML Content Length: 3'127 bytes (received) --- Die HTML-kode ---
Geskiedenis
Die oorspronklike HTTP weergawe, weergawe HTTP 1.0 vaar aanvanklik baie goed, maar met die ontploffing in populariteit van die Internet kom ’n aantal tekortkominge aan die lig. Hierdie tekortkominge word in die volgende weergawe, weergawe HTTP 1.1 aangespreek. Vanaf ongeveer 1997 is die standaard op die Wêreldwye Web dan ook besig om te verskuif vanaf HTTP 1.0 na HTTP 1.1.
Een van die belangrikste beperkinge van HTTP 1.0 was dat elke IP-adres slegs 1 domein kon huisves. Vanweë die enorme groei in die aantal WWW-domeine, sou dit baie gou tot ’n tekort aan IP-adresse gelei het. HTTP 1.1 ondersteun die huisvesting van meer as 1 domein op dieselfde IP-adres. Andere belangrike toevoegings in HTTP 1.1 wat poog om spoed en werkverrigting te verhoog:
- ondersteuning van ’n kas (cache)
- die verbinding word nie noodwendig na elke antwoord, soos in HTTP 1.0, verbreek nie (sogenaamde persistent connections)
- die moontlikheid om (dinamies gegenereerde) bladsye gedeeltelik te versend. Hierdeur kan met die versending van die eerste deel begin word voordat die hele bladsy gegenereer is, selfs voordat dit bekend is hoe lank die bladsy uiteindelik sal wees.
Die tegniese details van die HTTP-protokol is opgeteken in verskillende RFC’s. HTTP weergawe 1.0 is gedokumenteer in RFC 1945, terwyl weergawe 1.1 van die protokol in RFC 2616 beskryf word. Hierdie spesifikasies kan vanaf http://www.rfc-editor.org/rfc.html afgelaai word.
Eksterne skakels
Verwysings
- Viljoen, Hendrik Christo (2005). Kuberwoordeboek (1ste uitg. uitg.). Pretoria: Protea Boekhuis.