Wanneer u in een webbrowser naar een pagina bladert of deze opent, ziet u in feite het geïnterpreteerde resultaat van verschillende samenwerkende processen. Hier volgt een overzicht van wat er gebeurt en wat u uiteindelijk ziet:
1. Het verzoek:
* Je voert een URL in: U typt een webadres (zoals `www.example.com`) in de adresbalk of klikt op een link.
* De browser verzendt een verzoek: De browser gebruikt de URL om het adres van de server te bepalen (indien nodig via DNS-lookups) en stuurt een HTTP-verzoek naar die server. Bij dit verzoek wordt om specifieke bronnen gevraagd, meestal het HTML-bestand dat de webpagina vertegenwoordigt. Het bevat ook informatie zoals uw browsertype, taalvoorkeuren en cookies.
2. Het antwoord van de server:
* Serververwerking: De server ontvangt het verzoek. Het verwerkt het, wat het ophalen van gegevens uit een database kan inhouden, het uitvoeren van scripts op de server (zoals PHP, Python, Node.js) of eenvoudigweg het lokaliseren van het gevraagde bestand in de opslag.
* De server verzendt een antwoord: De server stuurt een HTTP-antwoord terug. Deze reactie bevat:
* HTTP-headers: Metagegevens over het antwoord (bijvoorbeeld inhoudstype, cache-instructies, statuscode zoals 200 OK of 404 Niet gevonden).
* De reactietekst: De feitelijke inhoud van het antwoord, die hoogstwaarschijnlijk is:
* HTML (HyperText Markup Language): De structuur en inhoud van de webpagina. Dit definieert de koppen, paragrafen, links, afbeeldingen, enz.
* CSS (Cascading Style Sheets): De stijlregels voor hoe de HTML-elementen moeten worden weergegeven (kleuren, lettertypen, lay-out, enz.). CSS kan worden ingebed in de HTML, worden opgenomen in afzonderlijke CSS-bestanden of worden gekoppeld aan externe CSS-bestanden.
* JavaScript: Code die interactiviteit en dynamisch gedrag aan de webpagina toevoegt (animaties, formuliervalidatie, AJAX-verzoeken, enz.). Net als CSS kan JavaScript worden ingebed, in afzonderlijke bestanden worden opgenomen of extern worden gekoppeld.
* Andere bronnen: Afbeeldingen (JPEG, PNG, GIF, SVG), video's, audiobestanden, lettertypen, enz., waarnaar wordt verwezen door HTML, CSS of JavaScript.
3. Weergave van de browser (wat u daadwerkelijk ziet):
* Parsen: De browser *parseert* de HTML. Het leest de HTML-code en bouwt een *Document Object Model (DOM)*. De DOM is een boomachtige weergave van de HTML-structuur in het geheugen.
* CSSOM-constructie: De browser ontleedt CSS en bouwt een *CSS Object Model (CSSOM)*. Dit vertegenwoordigt de stijlregels die op de HTML-elementen worden toegepast.
* Rendering-engine: Dit is de kern van het weergaveproces van de browser:
* DOM en CSSOM combineren: De browser combineert de DOM en CSSOM om een *render tree* te creëren. Deze boom bevat alleen de zichtbare elementen en hun stijlen.
* Indeling (opnieuw plaatsen): De browser berekent de grootte en positie van elk element in de renderboom. Dit staat bekend als *layout* of *reflow*.
* Schilderen (opnieuw schilderen): De browser *schildert* elk element op het scherm, volgens de berekende lay-out en stijlen. Dit omvat het tekenen van de tekst, kleuren, afbeeldingen, randen, enz.
* JavaScript-uitvoering: De JavaScript-engine van de browser (bijvoorbeeld V8 voor Chrome, SpiderMonkey voor Firefox) voert de JavaScript-code uit. Deze code kan:
* Wijzig de DOM:HTML-elementen toevoegen, verwijderen of wijzigen.
* CSS wijzigen:wijzig de stijlen van elementen.
* Doe AJAX-verzoeken:haal extra gegevens op van de server zonder de hele pagina opnieuw te laden.
* Behandel gebruikersgebeurtenissen:reageer op klikken, toetsenbordinvoer, enz.
Dus wat je uiteindelijk *ziet* is het resultaat van dit complexe proces:
* Opgemaakte tekst: Koppen, paragrafen, lijsten, enz., opgemaakt volgens de CSS-regels.
* Afbeeldingen: Weergegeven op de opgegeven locaties.
* Links: Tekst of afbeeldingen waarop u kunt klikken om naar andere pagina's te navigeren.
* Interactieve elementen: Knoppen, formulieren, animaties en andere elementen die reageren op jouw acties.
* De algemene lay-out en het visuele ontwerp: De organisatie van de elementen op de pagina, bepaald door HTML, CSS en JavaScript.
Samengevat:
U ziet een visueel aantrekkelijke en interactieve weergave van de inhoud die door een webserver wordt geleverd, dankzij de mogelijkheid van de browser om HTML, CSS en JavaScript te parseren en weer te geven. Het is alsof je een recept leest (HTML), begrijpt hoe je de ingrediënten moet stylen (CSS) en dan wat extra flair toevoegt met een speciale techniek (JavaScript) om een heerlijk gerecht te creëren (de webpagina). |