Als je een websiteadres intikt, lijkt je browser je hier direct naartoe te transporteren. Er gaat echter heel wat werk aan vooraf voordat een webpagina is geopend. Zodra jij een URL intypt of op een link klikt, doorloopt de browser al deze stappen:
- Het IP-adres van de website zoeken met behulp van DNS-resolution.
- Verbinding maken met de website-host met behulp van een three way handshake via TCP.
- HTTP upgraden naar HTTPS voor de veiligheid.
- Gegevens uitwisselen met de website-host via HTTP(S).
- De informatie renderen en je de pagina in de juiste lay-out tonen.
In dit artikel gaan we dieper in op elke stap die er gezet moet worden voordat jij een webpagina kunt bekijken.
Het internet gebruiken is erg gemakkelijk. Je tikt een URL in de adresbalk in of klikt op een link en je wordt zo naar een webpagina getransporteerd. Op de achtergrond gebeurt er echter een hele hoop om je naar de juiste webpagina te leiden. In dit artikel leggen we je precies uit wat er allemaal gebeurt zodra jij een website probeert te bezoeken. Als je meer wilt weten over het ontstaan van het internet en de algemene werking ervan, ga dan naar ons artikel ‘Wat is het internet?‘.
1. Het IP-adres van de webpagina zoeken via een DNS-query
Op het moment dat jij www.vpngids.nl intypt in je browser, gaat de browser op zoek naar het IP-adres van de website. Een IP-adres is te vergelijken met iemands huisadres en is voor iedere gebruiker van het internet uniek. Om het adres te vinden maakt de browser gebruik van Domain Name System (DNS)-servers. Deze DNS-servers zijn een soort online telefoonboek waarop alle domeinnamen (bijvoorbeeld ‘VPNGids’) gekoppeld zijn aan het bijbehorende IP-adres.
Niet alle adressen zijn op één DNS-server opgeslagen. De browser moet voor DNS-aanvragen dus heel snel verschillende aanvragen sturen om achter het juiste adres te komen. Met behulp van het User Datagram Protocol (UDP) stuurt de DNS-resolver in je browser aanvragen of queries naar een DNS-server en krijgt de antwoorden. Als de eerste DNS-server het antwoord wel weet, verloopt dit proces zo:
De DNS-resolver vraagt ‘Waar vind ik www.vpngids.nl?’ en de DNS-server antwoordt ‘104.26.15.113’.
De lokale DNS-server kent de website niet
Een andere mogelijkheid is dat de lokale DNS-server het antwoord niet weet. In dat geval stuurt deze server de aanvraag door naar een DNS-iterator die verder zoekt via verschillende servers:
- De DNS-iterator vraagt een root name server waar www.vpngids.nl is.
- De root name server weet het niet precies, maar wijst je door naar een top-level name server (een server waarop IP-adressen van ‘.nl’-sites staan).
- De top-level name server weet het ook niet precies en stuurt je door naar de autoritatieve name server.
- De autoritatieve name server verwijst je naar het IP-adres van www.vpngids.nl.

DNS-resolver overslaan
Als je de website al ooit bezocht hebt, kan de browser dit proces vaak overslaan met behulp van cachegegevens. De browser checkt namelijk eerst zijn eigen cache voor het juiste IP-adres. Hier slaat het bezochte websites één tot dertig minuten lang op. Als het IP-adres hier niet staat, kijkt het naar de caches van je apparaat en staat het hier ook niet, kan het nog naar cachegegevens van je router kijken. Op je apparaat en router kunnen de IP-gegevens een hele lange tijd (jarenlang) bewaard worden. Pas als het adres ook hier niet gevonden is, gaat het over naar DNS-resolution.
2. Verbinding maken met TCP
Nu de browser het juiste IP-adres heeft gevonden, wil het verbinding maken met de websiteserver. Hiervoor zet het een TCP-connectie op, oftewel een transmission control protocol-verbinding. Deze verbinding vereist een driedelige handdruk (three way handshake) waarbij er syn-(synchronize) en ack– (acknowledgement) berichten worden verzonden.
- De browser stuurt een SYN-request naar de websiteserver om te vragen ‘Hallo, ben je daar?’. Een SYN-request bestaat uit een willekeurige getallenreeks (bijvoorbeeld 123456789123). In de illustratie is de getallenreeks telkens weergegeven met ‘SEQ’, afkorting voor sequence.
- De websiteserver stuurt een SYN/ACK-bericht terug. Hierbij geeft het met het ACK-deel aan dat de websiteserver inderdaad bestaat door de getallenreeks + 1 terug te sturen (dus 123456789124). Ook stuurt het een SYN-request terug om te vragen of de browser er echt wel is. Hiervoor stuurt de server een nieuwe willekeurige getallenreeks (bijvoorbeeld 568742398)
- De browser stuurt een ACK in de vorm van dezelfde getallenreeks +1 om de sessie te starten (dus 568742399).

TCP versus ICMP
Misschien denk je nu dat het opzetten van een TCP-connectie wel erg lijkt op de methode waarop ping meten werkt. Ping meet je echter met ICMP, oftewel het Internet Control Message Protocol. Dit is een ander protocol met een wezenlijk andere functie. TCP zet namelijk een connectie op; je kunt ermee over en weer communiceren. ICMP stuurt slechts één signaal en daarna is de communicatie voorbij. ICMP werkt daarmee op de netwerklaag van netwerkcommunicatie en TCP op de transportlaag. Meer informatie over netwerklagen vind je in het artikel over het L2TP/IPsec-VPN-protocol.
Het verschil is het makkelijkste uit te leggen aan de hand van een metafoor. Stel je gaat naar een frietzaak. Je begroet de medewerker, deze zegt hallo terug en je start een conversatie. Na deze ‘handshake’ doe je je bestelling, kan de medewerker extra vragen stellen en ga je door tot je de conversatie afsluit en je bestelling afrekent. Dit is TCP.
Voor je naar de frietzaak gaat, kun je ook kijken of er überhaupt een frietzaak is en of deze open is. Deze controle kun je zien als ICMP. ICMP is een makkelijke en snelle manier om te kijken waar een server (frietzaak) op het netwerk is en of deze open is.
Daarbij heb je nog dat derde protocol waar we het al kort over gehad hebben: UDP. Hierbij loop je de frietzaak binnen en zeg je meteen tegen de medewerker ‘Hoi, mag ik een portie friet’, aannemend dat de medewerker geen verdere vragen heeft en het verzoek direct uitvoert. UDP werkt op de transportlaag.
Zowel UDP als ICMP zetten dus geen langdurige connectie op. Ze gebruiken geen handshake. Het verschil tussen UDP en ICMP is dat UDP meer informatie communiceert. Je checkt of de medewerker er is en bestelt direct. ICMP kan maar één ding communiceren: ‘Is de medewerker er?’.
3. Beveiligen van HTTP
Eigenlijk werken websites via HTTP. Dit zorgt echter voor een onbeveiligde verbinding. Om de verbinding te versleutelen moet deze worden geüpgraded naar HTTPS. Dit werkt als volgt:
- De client stuurt een HTTP-request met een header om HTTPS aan te vragen.
- De server antwoordt met een SSL-certificaat waarin een public key (A) is opgenomen om de encryptie te ontsleutelen. Dit certificaat is ondertekend door de Certificate Authority. In het geval van www.vpngids.nl is dit Cloudflare onder Baltimore CyberTrust Root.
- Op je lokale computer zijn certificaten van vertrouwde CA’s opgeslagen op het moment dat je je besturingssysteem installeert (je vindt deze door Windows+R in te tikken en certlm.msc op te zoeken). De client vergelijkt de public key (A) in het ontvangen SSL-certificaat met de key in het reeds bekende certificaat. Dit is dus een vorm van asymmetrische encryptie.
- De client creëert een nieuwe private key (C) en versleutelt deze met de public key (A) van de server.
- De server ontsleutelt de private key met behulp van zijn eigen private key (B).
- Nu zowel de server als client één geheime private key (C) hebben – ook wel een session key genoemd – kunnen ze communiceren in versleutelde vorm. Als de sessie wordt afgesloten, verloopt de geldigheid van deze key.
Wil je een SSL-certificaat voor je eigen website?
Een SSL-certificaat kost geld. Om je website te beveiligen betaal je je hostingprovider die er dan voor zorgt dat de websiteserver een Certificate Signing Request stuurt naar de Certificate Authority. Hierbij stuurt het de public key mee van de website mee. De CA bevestigt de aanvraag met een eigen private key en creëert hiermee een SSL-certificaat. Bezoekers van je website kunnen nu de stappen hierboven doorlopen.
De upgrade van HTTP naar HTTPS gebeurt tijdens het opvragen van de website door middel van een HTTP-request. Er wordt dan in de request header toegevoegd: Upgrade-Insecure-Request: 1. Maar hoe zit het verder precies met HTTP(S)-requests?
4. HTTP-request
Het Hypertext Transfer Protocol, zoals het voluit heet, is een transportprotocol dat ervoor zorgt dat data van server naar client gaat en andersom. Als je een website probeert te bezoeken, zendt je browser een HTTP(S)-aanvraag naar de websiteserver. Als je www.vpngids.nl bezoekt via de Firefox-browser, ziet een HTTP-header er zo uit:
GET / HTTP/1.1
Host: www.vpngids.nl
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/109.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: nl,en-US;q=0.7,en;q=0.3
Accept-Encoding: gzip, deflate, br
Alt-Used: www.vpngids.nl
Connection: keep-alive
Cookie: _gcl_au=1.1.703951811.1670246986; _ga_9T2WVHHRZS=GS1.1.1675409966.170.1.1675411839.0.0.0; _ga=GA1.2.1787875814.1670246986; wp-settings-30=editor%3Dtinymce%26ampampampampampampampampampampampamplibraryContent%3Dbrowse%26ampampampampampampampampampampampampadvImgDetails%3Dshow%26ampampampampampampampampampamplibraryContent%3Dbrowse%26ampampampampampampampampamplibraryContent%3Dbrowse%26ampampampampampampampampampimgsize%3Dlarge%26ampampampampampampampampampalign%3Dright%26ampampampampampampampampampposts_list_mode%3Dlist%26ampampampampampampampamplibraryContent%3Dbrowse%26ampampampampampampampampalign%3Dcenter%26ampampampampampampampampposts_list_mode%3Dlist%26ampampampampampampampampimgsize%3Dfull%26ampampampampampampamplibraryContent%3Dbrowse%26ampampampampampampampalign%3Dcenter%26ampampampampampampampadvImgDetails%3Dhide%26ampampampampampampampimgsize%3Dfull%26ampampampampampampampposts_list_mode%3Dlist%26ampampampampampampampmfold%3Do%26ampampampampampamplibraryContent%3Dbrowse%26ampampampampampampalign%3Dcenter%26ampampampampampampimgsize%3Dfull%26ampampampampampampadvImgDetails%3Dshow%26ampampampampampampposts_list_mode%3Dlist%26ampampampampampamphidetb%3D1%26ampampampampampamppost_dfw%3Doff%26ampampampampampampurlbutton%3Dcustom%26ampampampampamplibraryContent%3Dbrowse%26ampampampampampposts_list_mode%3Dlist%26ampampampampposts_list_mode%3Dlist%26ampampampamphidetb%3D1%26ampampampamplibraryContent%3Dbrowse%26ampampampampalign%3Dcenter%26ampampampampimgsize%3Dfull%26ampampampampadvImgDetails%3Dshow%26ampampampampeditor_expand%3Doff%26ampampampamped_size%3D822%26ampampampampmfold%3Do%26amplibraryContent%3Dbrowse%26ampalign%3Dcenter%26amphidetb%3D1%26ampadvImgDetails%3Dshow%26ampimgsize%3Dfull%26ampposts_list_mode%3Dlist%26ampeditor_plain_text_paste_warning%3D2%26amppost_dfw%3Doff%26libraryContent%3Dbrowse%26align%3Dcenter%26hidetb%3D1%26editor_plain_text_paste_warning%3D2%26posts_list_mode%3Dlist%26imgsize%3Dfull; wp-settings-time-30=1675350503; _lscache_vary=b09f1f9b016996b441616aba3e81ee71; wordpress_logged_in_81f2b9491f15c78498d59d51b2989359=Tamara%7C1676014386%7CEOzbrVVn4Pv3C2OOlXoGnjhVf9d3tpD1lobwUt3CSfI%7Cc21fd09ed6cffd4bcef12b3ecfd76fbf74c7cdea171f0c065eea5d73c308af99; _gid=GA1.2.330239669.1675147801; visitor_id=m9cbsd8h5ta0mllt4d05d78gms; PHPSESSID=m9cbsd8h5ta0mllt4d05d78gms; _uetsid=7b82c8a0a13311ed86343198882d658c; _uetvid=83254b2074a311ed98c0dffffc701d93
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: none
Sec-Fetch-User: ?1
De belangrijkste header-informatie die je hier ziet is:
| Request field | Wat doet het |
|---|---|
| Get | Geef mij de data zonder iets te veranderen aan de data. |
| Host | De domeinnaam van de server en het TCP-poortnummer dat je probeert te bereiken. Het poortnummer kan weggelaten worden als dit een standaardpoort is, zoals de standaard HTTP-poort 80. |
| User-Agent | De client die de informatie opvraagt. In ons geval is dit Firefox (voorheen ook Gecko genoemd) op een Windows 10-computer of hoger. |
| Accept | De mediatypes die we willen accepteren. We accepteren sowieso HTML-tekst, maar daarnaast worden XML en afbeeldingen geaccepteerd. |
| Accept-Language | De taal waarin de browser de geschreven tekst zal interpreteren. In ons geval is dit Amerikaans Engels of Nederlands. |
| Accept-Encoding | Als servers data compressen om sneller te versturen, kan dat via verschillende encoding-methoden. Met deze header-informatie geeft de client aan welke encoding-methoden deze toe wil staan. |
| Alt-Used | Via deze header geeft de client aan welke alternatieve domeinen en ports de websiteserver kan gebruiken om data te versturen. Denk hierbij aan poort 8080 als alternatief voor poort 80. |
| Cookie | De client stuurt enkele opgeslagen cookies die relevant zijn voor de website. Zo zorgt een _gid-cookie ervoor dat de website-eigenaar in Google Analytics kan zien hoeveel unieke bezoekers een pagina heeft gehad. |
| Upgrade-Insecure-Requests | Dit is de aanvraag om HTTP te upgraden naar HTTPS. |
5. HTTP-response
De websiteserver, in het geval van VPNGids.nl Cloudflare, ontvangt de HTTP-aanvraag en stuurt deze door naar een request handler. Dit is een stuk code op de server die de headings van de aanvraag controleert. Als alle gegevens kloppen, stuurt de server via de request handler een HTTP-response (reactie) terug. Deze HTTP-response header ziet er bij het bezoeken van www.vpngids.nl via Firefox zo uit:
HTTP/3 200 OK
date: Fri, 03 Feb 2023 08:13:24 GMT
content-type: text/html; charset=UTF-8
cf-ray: 7939b4ffac22b8c6-AMS
cache-control: no-cache, must-revalidate, max-age=0
expires: Wed, 11 Jan 1984 05:00:00 GMT
vary: Accept-Encoding
cf-cache-status: BYPASS
cf-apo-via: origin,cookie
cf-edge-cache: no-cache
cf-railgun: direct (waiting for pending WAN connection)
x-litespeed-cache-control: no-cache
x-powered-by: PleskLin
x-turbo-charged-by: LiteSpeed
report-to: {"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=aFi1%2F8IZGHhW7IAa4REEz0BGNcgQKJ%2FYdoYZ8ENPLL4PInwf6MjpJUJaw7ydCxUxz3iP9cVbjmRMfcpPDVY2v6kcxVligBrQApqYFj40pBtS2KaNBdFP%2FVRanZnOB063"}],"group":"cf-nel","max_age":604800}
nel: {"success_fraction":0,"report_to":"cf-nel","max_age":604800}
server: cloudflare
content-encoding: br
alt-svc: h3=":443"; ma=86400, h3-29=":443"; ma=86400
De belangrijkste header informatie die we zien:
| Response field | Wat doet het |
|---|---|
| HTTP/3 200 OK | Dit is de HTTP-statuscode. Hier had ook HTTP/2 of HTTP/1.1 kunnen staan, als de site een eerdere versie van HTTP gebruikte. In ons geval is de aanvraag gelukt. Als er iets misgaat bij de aanvraag, staat er een foutcode. We vertellen je zo meteen meer over de mogelijke foutcodes. |
| Date | De dag en tijd waarop de HTTP-response verzonden werd. |
| Content-type | De mediatypen die verzonden worden met de HTTP-response. In dit geval HTML-tekst in UTF-8 karakters (dit laatste is de manier waarop de tekens en letters zijn omgezet in bytes). |
| Cache-control | Dit vertelt of de client de informatie uit de response op mag slaan in cache en hoelang dit maximaal bewaard mag worden. In ons geval mogen gegevens niet gecached worden. |
| Server | De server waar de informatie vandaan komt. In ons geval is dit Cloudflare. |
| Content-encoding | De manier waarop de data zijn versleuteld om te transporteren. In dit geval is er gekozen voor Brotli (br). |
| Alt-svc | Geeft aan op welke manier dezelfde content op een andere manier gevonden kan worden. Hierbij kan het verwijzen naar alternatieve internetpoorten of hosts. |
HTTP-statuscodes
In ons voorbeeld kregen we de code ‘200 OK’. Dat betekent dat de website gewoon geladen kan worden en er niets fout is gegaan. Er zijn echter veel meer mogelijkheden, waarvan je er vast een aantal kent, zoals de ‘404 not found‘. Globaal gezien zijn er vijf opties:
- 100-199: informatie-response. Deze code geeft aan dat de HTTP-request is ontvangen en begrepen, maar dat de server nog bezig is met het verwerken ervan. Een voorbeeld is de code 101 Switching Protocols die aangeeft dat de HTTP-aanvraag vroeg om een ander protocol te gebruiken en de server deze aanvraag honoreert.
- 200-299: succesvolle response. Deze code geeft aan dat de aanvraag is ontvangen, begrepen en geaccepteerd. Naast een 200 OK, bestaan er echter nog andere versies. Zo is er de 204 No Content code die aangeeft dat het hele proces goed is verlopen, maar dat er geen inhoud op de pagina staat.
- 300-399: redirect nodig. Deze code geeft aan dat de client een of meer extra stappen moet zetten om de request te voltooien. Vaak gaat het om een URL-redirection, bijvoorbeeld met een 301 Moved Permanently, waarbij de URL van een website veranderd is en alle volgende aanvragen voor die website naar de nieuwe URL geleid moeten worden.
- 400-499: fout aan de kant van de client (iets gaat fout bij jou). Zo kennen veel mensen de code 404 Not Found, die aangeeft dat de pagina die je probeert te bezoeken niet bestaat. Vaak gaat het hierbij om een URL die verkeerd gespeld is. Daarnaast bestaat er bijvoorbeeld 451 Unavailable For Legal Reasons. Deze verwacht je te krijgen als je thepiratebay.org probeert te benaderen, omdat deze inderdaad geblokkeerd wordt. In Nederland zorgt je internetprovider in dit geval echter voor een 301 redirect in plaats van een 451 foutcode.
- 500-599: fout aan de kant van de server (iets gaat fout bij de website-host). De bekendste foutcode in deze serie is de 502 Bad Gateway. Hierbij kan het zijn dat de website overbelast is, je firewall de website blokkeert, er een probleem is met de domeinnaam of dat er een netwerkfout is opgetreden. Als je internetverbinding te langzaam is om een pagina te laden, krijg je soms de 504 Gateway Timeout foutcode.
Diensten met hun eigen foutcode
Naast standaard codes zijn er ook foutcodes die door specifieke diensten gebruikt worden. Zo heeft Microsoft de 450 Blocked by Windows Parental Controls code, als iemand met behulp van ouderlijk toezicht toegang tot bepaalde websites heeft geblokkeerd.
Ook Amazon Web Services (AWS) en Cloudflare hebben hun eigen codes. Overigens bedoelen we in deze context specifiek AWS’ Elastic Compute Cloud. Als je benieuwd bent naar de beveiliging en mogelijke fouten van de AWS Simple Storage Cloud, raden we je aan een kijkje te nemen bij ons artikel over AWS S3-buckets.
6. Browser rendering
Een webpagina is opgebouwd uit code. Het gaat hierbij om een combinatie van HTML (hyper text markup language), CSS (cascading style sheets) en JavaScript. Deze code wordt meegegeven in de body HTTP-responses. De browser interpreteert deze code en zet deze om in een visueel aantrekkelijke pagina.
Om duidelijk te maken wat het verschil is tussen de code en wat je uiteindelijk te zien krijgt, zie je hieronder een foto van de titel, afbeelding en eerste alinea van het blogartikel over foto’s delen van je kind in code-vorm. Let erop dat in de code de auteursinformatie niet is meegenomen en ook het menu, de sidebar, de titel van de website en de datum niet.


De browser gaat elke regel code af en laadt deze een voor een in om zo de hele pagina op te bouwen. In de code staat opgenomen waar op de pagina bepaalde elementen moeten staan. Dus als er bij een afbeelding bijvoorbeeld staat <img decoding="async" loading="lazy" class="alignright size-full wp-image-53210" src="https://www.vpngids.nl/wp-content/uploads/voetbal-computerscherm-icoon.png" alt="voetbal op computerscherm" width="150" height="150">, dan betekent dat dat de afbeelding rechts uitgelijnd wordt (alignright), dat de volledige grootte van de afbeelding ingeladen wordt (size-full) en dat de grootte 150×150 pixels (width en height) is. De afbeelding in kwestie is weergegeven naast deze alinea.
De precieze lay-out hangt af van de grootte van je beeldscherm. Daarom zien websites er net iets anders uit op bijvoorbeeld je mobiele telefoon dan op je laptop.
Dus zo werkt het internet
Als je een website bezoekt, gebeurt er in grote lijnen dus het volgende:
- Je typt een URL in de adresbalk of klikt op een link.
- De browser gaat op zoek naar het juiste IP-adres van de website met behulp van DNS-resolution.
- De browser maakt verbinding met de website-host met behulp van een three way handshake via TCP.
- HTTP wordt geüpgraded naar HTTPS om de verbinding te versleutelen.
- De browser en de website-host wisselen gegevens uit via HTTP(S).
- De browser rendert alle informatie en toont de pagina.
Het internet gebruiken is echter niet hetzelfde als alleen maar webpagina’s openen. Je kijkt er films, je downloadt en uploadt bestanden en speelt er spellen. Soms bezoek je de webpagina’s niet eens direct, maar gebruik je proxyservers of VPN’s. In dat geval verloopt het proces weer net anders. Als je daar meer over wilt weten, kun je eens kijken naar ons artikel ‘Hoe werkt een VPN-verbinding‘.
Uiteraard kun je ook zelf een website bouwen. In dat geval is het handig dat je weet hoe een browser een webpagina opent. Tegelijkertijd wil je ervoor zorgen dat je website veilig is en dat hackers er geen malware door kunnen verspreiden of persoonsgegevens kunnen stelen. Om je hierbij op weg te helpen hebben we ook een handleiding over secure coding opgesteld.
Wil je snel een kort antwoord op je vraag? Kijk dan in onze FAQ. Klik op de vraag om het antwoord te zien of stel jouw vraag in de reacties.
De termen TCP, UDP en ICMP lijken erg op elkaar, maar verschillen in hun werking. Kort samengevat kun je ze op deze manier onderscheiden:
- Transport Control Protocol (TCP): de client en server zetten een connectie op met een three-way handshake. De rest van de communicatie vindt plaats binnen deze opgezette verbinding.
- User Datagram Protocol (UDP): de client vraagt direct aan de server wat het wil en de server geeft antwoord of geeft een foutcode. Er wordt niet eerst een connectie tot stand gebracht.
- Internet Control Message Protocol (ICMP): de client vraagt of de server bestaat en waar deze is en krijgt hier eventueel antwoord op.
In het artikel ‘Wat gebeurt er als ik een website bezoek?‘ wordt dit verschil verder uitgelegd.
Een TCP three-way handshake is een driedelige handdruk die het Transport Control Protocol gebruikt om een verbinding op te zetten tussen twee servers of een client en een server. In het geval van een browser die een website wil openen werkt dat zo:
- De browser zendt een SYN-request naar de webserver om te vragen of de website er is.
- De webserver stuurt een ACK-response om bevestigend te antwoorden en een SYN-request om te controleren of de browser echt is (de SYN/ACK-response).
- De browser stuurt een ACK-response terug om bevestigend te antwoorden en een connectie is opgezet om verder te communiceren.
Het internet is een groot netwerk van computers die allemaal met elkaar verbonden zijn. Het internet heeft geen eigenaar en iedereen kan er overal ter wereld razendsnel informatie mee uitwisselen. Wil je weten hoe het internet is ontstaan en hoe het werkt? Neem dan een kijkje bij ons artikel ‘Wat is het internet?‘.
Zodra je een link aanklikt of een URL opzoekt in je browser, treedt dit proces in werking:
- De browser zoekt het IP-adres van de website op met behulp van DNS-resolution.
- De browser maakt verbinding met de website-host met behulp van een three way handshake via TCP.
- HTTP wordt geüpgraded naar HTTPS voor de veiligheid.
- De browser wisselt gegevens uit met de website-host via HTTP(S).
- De browser rendert de verkregen informatie om je de pagina in de juiste lay-out te tonen.
Een meer gedetailleerdere beschrijving van dit proces lees je in ons artikel ‘Wat gebeurt er als ik een website bezoek?‘
Een website is geschreven in HTML-, CSS- en JavaScript-code. In deze code wordt onder andere beschreven welke afbeeldingen er op een pagina staan, welke tekst, waar elk element moet komen en hoe groot elementen moeten zijn. De browser ontvangt deze code en leest elke regel een voor een uit. Dan kijkt de browser naar de afmeting van je beeldscherm om op basis hiervan de pixels op de juiste plaats op je scherm te vertonen. Zo verandert een lijst code in een visueel aantrekkelijke webpagina.
DNS staat voor Domain Name System. Als je een webpagina wilt bezoeken, moet je het juiste adres vinden. Het internet werkt echter met IP-adressen in plaats van domeinnamen die mensen in de URL-balk intypen. DNS-servers fungeren hierbij als telefoonboek waarbij de domeinnaam gekoppeld wordt aan het juiste IP-adres, zodat je browser de goede pagina kan vinden.
Kort gezegd is HTTPS de beveiligde vorm van HTTP. Beide zijn internetprotocollen waardoor het mogelijk is om webpagina’s te openen. In ‘HTTP en HTTPS uitgelegd‘ leggen we je precies uit hoe dit werkt.
