Wikisage is op 1 na de grootste internet-encyclopedie in het Nederlands. Iedereen kan de hier verzamelde kennis gratis gebruiken, zonder storende advertenties. De Koninklijke Bibliotheek van Nederland heeft Wikisage in 2018 aangemerkt als digitaal erfgoed.
- Wilt u meehelpen om Wikisage te laten groeien? Maak dan een account aan. U bent van harte welkom. Zie: Portaal:Gebruikers.
- Bent u blij met Wikisage, of wilt u juist meer? Dan stellen we een bescheiden donatie om de kosten te bestrijden zeer op prijs. Zie: Portaal:Donaties.
Hypertext Transfer Protocol
Het HyperText Transfer Protocol (HTTP) is het protocol voor de communicatie tussen een webclient (meestal een webbrowser) en een webserver. Dit protocol wordt niet alleen veel op het World Wide Web gebruikt, maar ook op lokale netwerken (we spreken dan van een intranet).
In HTTP is vastgelegd welke vragen (de Engelse term hiervoor is requests) een cliënt, bijvoorbeeld een webbrowser, aan de server kan stellen en welke antwoorden (de Engelse term is responses) een webserver daarop kan teruggeven. Elke vraag bevat een URL die naar een webcomponent of een statisch object zoals een webpagina of plaatje verwijst.
HTTP-requests
Een HTTP-request bestaat uit de request-soort, de URL, de headervelden (koptitelvelden) en eventueel een inhoud. Een overzicht van de HTTP-request methoden:
- GET – Ontvang het document gespecificeerd door de URL.
- HEAD – Ontvang alleen de headers van het op te vragen document.
- POST – Zend data naar de server.
- PUT – Vervang het document op de server door de verzonden data.
- DELETE – Verwijder het document.
- OPTIONS – Vraag de mogelijkheden op dit niveau aan van de server.
Een complete aanvraag inclusief de headervelden kan er als volgt uit zien:
GET /wiki/Hoofdpagina HTTP/1.1 Host: nl.wikisage.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
HTTP-responses
Een HTTP-response bestaat uit een resultaat-code, headervelden en een body (de boodschap). De resultaat-code bestaat uit minimaal drie cijfers. Het eerste cijfer is het belangrijkste:
- 1xx: een informele boodschap van de webserver die nog gevolgd zal worden door andere data
- 2xx: een boodschap van de server dat de gevraagde actie succesvol is afgehandeld
- 3xx: een "redirect" naar een andere locatie, om wat voor reden ook
- 4xx: een foutboodschap die door de client (typisch een webbrowser) veroorzaakt is, zoals het verkeerd typen van een URL
- 5xx: een foutboodschap die door de webserver veroorzaakt is, zoals een fout in een CGI script
- 6xx: een proxy fout is opgetreden
De meest voorkomende resultaat codes zijn:
- 200 OK – Het gevraagde document is succesvol opgevraagd.
- 304 Not Modified – T.o.v. de versie in de cache is de pagina niet gewijzigd.
- 403 Forbidden – Het opgevraagde document mag niet bekeken worden.
- 404 Not Found – Het opgevraagde document bestaat niet.
- 405 Not Allowed - De gebruiker is niet gerechtigd het gevraagde document te bekijken.
- 500 Internal Server Error - De webserver heeft de gevraagde actie niet kunnen uitvoeren
De reactie van bovenstaande aanvraag kan er dan als volgt uitzien:
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: nl Content-Type: text/html; charset=iso-8859-1 X-Cache: MISS from wikisage.org Connection: close Content-Type: text/html Content-Length: 3127 <html> <head> </head> <body> </body> </html>
Geschiedenis
De oorspronkelijke versie van HTTP staat bekend onder de naam HTTP 1.0 . In eerste instantie voldeed dit protocol goed, maar met de populariteitsexplosie van het internet kwam er ook een aantal tekortkomingen in dit protocol aan het licht. Deze zijn opgelost in de volgende versie, HTTP 1.1 . Vanaf circa 1997 is de standaard op het World Wide Web dan ook aan het verschuiven van HTTP 1.0 naar HTTP 1.1 .
Eén van de belangrijkste beperkingen van HTTP 1.0 was dat er op ieder IP-adres slechts 1 domein gehuisvest kon worden. Vanwege de enorme groei van het aantal WWW domeinen, zou dit al gauw tot een tekort aan IP-adressen geleid hebben. HTTP 1.1 ondersteunt dan ook het huisvesten van meer dan 1 domein op hetzelfde IP-adres. Andere belangrijke toevoegingen in HTTP 1.1, die voornamelijk tot doel hebben de responsiesnelheid te verhogen, zijn:
- ondersteuning van caching
- niet meer per se na elke respons de verbinding verbreken (zogenoemde persistent connection), zoals in HTTP 1.0 wel gebeurde
- de mogelijkheid om (dynamisch gegenereerde) pagina's in gedeeltes te verzenden. Hierdoor kan al met het verzenden van het eerste deel begonnen worden voordat de gehele pagina is gegenereerd, zelfs zonder dat bekend is hoe lang de pagina uiteindelijk zal gaan worden.
Technische details van HTTP staan beschreven in verschillende RFC's. HTTP versie 1.0 staat in het RFC met nummer 1945. Versie 1.1 van het protocol staat in RFC met nummer 2616. Deze zijn te downloaden op http://www.rfc-editor.org/rfc.html