## 1b http

Het protocol: http

HTTP
Als je computer met de hulp van DNS servers weet welke computer jou de webpagina van Hyves kan sturen, dan zullen jouw computer en die van Hyves data met elkaar uitwisselen volgens het "HyperText Transfer Protocol" (HTTP). Dit protocol schrijft voor hoe computers webpagina's kunnen aanvragen en toesturen. De computer die een aanvraag doet heet een "client" en de computer die de webpagina op aanvraag toestuurt heet de "server".
Bijvoorbeeld: je gaat naar http://hyves.nl (zie dat het protocol in het adres staat). Jouw computer is de client en stuurt dan een "GET" bericht naar de server van Hyves, want zo staat het in 't HTTP protocol voorgeschreven. Vervolgens stuurt de server jou de webpagina die je aangevraagd hebt, in dit geval de homepage van Hyves. Die pagina wordt weergegeven door het programma waarin je aan het internetten bent, zoals Firefox.
Het HTTP protocol was erg belangrijk voor de groei van het internet, omdat webpagina's de eerste echt makkelijk te gebruiken internet "applicatie" waren. Iedereen wil nou eenmaal een makkelijke applicatie en niet een moeilijk te gebruiken applicatie. Moet je je voorstellen: websites zonder links! Dat er ergens staat waar je verder moet zoeken en dat je dan vervolgens dat adres weer in moet tikken en misschien helemaal geen toegang krijgt tot die andere computer, omdat hij uit staat of omdat je er geen gebruikersnaam op hebt, enz. Voordat er webpagina's met links waren moest je altijd zelf precies weten welk adres (b.v. hyves.nl of het bijbehorende IP nummer, 94.100.119.1) je in moest voeren om iets te downloaden. Door het web kun je gewoon zonder na te denken op een link drukken en kom je automatisch op de juiste server terecht. Vroeger, voor HTTP, waren er andere internet applicaties, zoals FTP. Stel dat Hyves toen al bestond, dan moest je om de pagina van Hyves op te vragen het volgende doen (in vet gedrukt staat wat je zelf in moest tikken, ja: alles moest je toen tikken):

$ ftp
ftp> open hyves.nl
connected to hyves.nl
220 hyves.nl FTP server ready.
Name (anonymous): anonymous
331 Password required for anonymous (or enter e-mail address).
Password: ***********
230 User anonymous logged in
Remote system type is UNIX.
Using ASCII mode to transfer files.
ftp> get index.html
200 PORT command successful.
150 ASCII data connection for index.html (94.100.119.1,3134) (14153 bytes).
226 ASCII Transfer complete.
local: index.html remote: index.html
14153 bytes received in 47.1 seconds (299 bytes/s)
ftp> bye
$ lynx index.html
Hyves.nl - Always in touch with your friends (p1 of 10)
Link: openid2.provider
Link: openid.server
Member details
Hyves - Always in touch with your friends
* Username: _____________________
* Password: _____________________
* [ ] Remember me
* Show:
Online
* Online
* Busy
* Be Right Back
* Away
* In a call
* Out to Lunch
* Appear Offline
Select your online status
enz.

Doordat het reizen over het internet zo eenvoudig als drukken op een link is geworden is het ook heel eenvoudig geworden voor mensen met een website om verschillende delen van die website op verschillende computers te bewaren. De gebruiker merkt daar eigenlijk helemaal niets van. Doordat het web op veel verschillende computers draait terwijl je daar niets van merkt kon het web heel erg groot worden, want iedereen beheert zijn eigen kleine stukje van het web. Je hebt niet meer een grote computer nodig om alles tegelijk op te slaan.

HTTPS
Als er data met het HTTP protocol verstuurd wordt tussen een client en server, dan is dat niet beveiligd. Dat betekent dat als meneer X die data onderschept, hij de pagina die jij hebt opgevraagd ook kan zien. Dat is onhandig als je bijvoorbeeld je e-mail op een website wil bekijken, want je wil niet altijd dat meneer X je liefdesbrieven kan lezen. Om die reden is het HTTPS protocol ontwikkeld. Als een client en server via het HTTPS protocol communiceren, dan wordt er eerst een code afgesproken. Die code wordt gebruikt om de data te versleutelen, zodat alleen de client de data die de server verstuurt kan lezen en omgekeerd. Nadat de twee computers deze code hebben afgesproken wordt er vervolgens op dezelfde manier gecommuniceerd als HTTP, maar dan veilig.
Bijvoorbeeld, als je naar http://gmail.com gaat, dan word je automatisch doorgestuurd naar een ander adres dat met https:// begint. Dit betekent dat de gebruikersnaam en het wachtwoord die je invult om in te loggen versleuteld verstuurd worden, zodat niemand anders die data kan lezen. Dus als je wilt weten of de data die je op een site invult beveiligd verstuurd wordt, kijk dan even in de adresbalk of het adres begint met https://.