Een browser is een softwaretoepassing die wordt gebruikt om inhoud op het World Wide Web op te zoeken, op te halen en weer te geven, met inbegrip van webpagina’s, afbeeldingen, video en andere bestanden. In een client/server-model is de browser de client op een computer die contact maakt met de webserver en informatie opvraagt. De webserver stuurt de informatie terug naar de webbrowser, die de resultaten weergeeft op de computer of een ander apparaat met internettoegang dat een browser ondersteunt.
De browsers van vandaag zijn volledig functionele softwaresuites die HTML-webpagina’s, toepassingen, JavaScript, AJAX en andere inhoud die op webservers wordt gehost, kunnen interpreteren en weergeven.
Veel browsers bieden plug-ins die de mogelijkheden van de software uitbreiden zodat deze multimedia-informatie kan weergeven (inclusief geluid en video), of de browser kan worden gebruikt om taken uit te voeren zoals videoconferenties, om webpagina’s te ontwerpen of anti-phishing-filters en andere beveiligingsfuncties aan de browser toe te voegen.
-
De gebruikersinterface: De gebruikersinterface is de ruimte waar de gebruiker met de browser communiceert. Hij omvat de adresbalk, de knoppen Terug en Volgende, de homeknop, Vernieuwen en Stoppen, de bladwijzeroptie, enz. Elk ander onderdeel, behalve het venster waarin de opgevraagde webpagina wordt weergegeven, valt eronder.
-
De Browser Engine: De browser engine werkt als een brug tussen de gebruikersinterface en de rendering engine. Op basis van de input van verschillende gebruikersinterfaces wordt de rendering engine bevraagd en gemanipuleerd.
-
De rendering engine: De rendering engine is, zoals de naam al aangeeft, verantwoordelijk voor het renderen van de opgevraagde webpagina op het browserscherm. De rendering engine interpreteert de HTML, XML-documenten en afbeeldingen die zijn opgemaakt met CSS en genereert de lay-out die wordt weergegeven in de gebruikersinterface. Met behulp van plugins of extensies kunnen echter ook andere soorten gegevens worden weergegeven.
Verschillende browsers gebruiken verschillende rendering engines:
- Internet Explorer: Trident
- Firefox &andere Mozilla-browsers: Gecko
- Chrome & Opera 15+: Blink
- Chrome (iPhone) & Safari: Webkit
-
Netwerken: Onderdeel van de browser dat URL’s ophaalt met behulp van de gebruikelijke internetprotocollen HTTP of FTP. De netwerkcomponent behandelt alle aspecten van internetcommunicatie en -beveiliging. De netwerkcomponent kan een cache van opgehaalde documenten implementeren om het netwerkverkeer te verminderen.
-
JavaScript-interpreter: Dit is het onderdeel van de browser dat de javascript-code die in een website is opgenomen, interpreteert en uitvoert. De geïnterpreteerde resultaten worden naar de rendering engine gestuurd om te worden weergegeven. Als het script extern is dan wordt eerst de bron opgehaald van het netwerk. De parser blijft in de wachtstand staan totdat het script is uitgevoerd.
-
UI Backend: UI backend wordt gebruikt voor het tekenen van basis widgets zoals combo boxes en windows. Deze backend heeft een generieke interface die niet platform-specifiek is. Eronder worden methoden voor de gebruikersinterface van het besturingssysteem gebruikt.
-
Data Persistence/Storage: Dit is een persistentielaag. Browsers ondersteunen opslagmechanismen zoals localStorage, IndexedDB, WebSQL en FileSystem. Het is een kleine database die wordt aangemaakt op de lokale schijf van de computer waarop de browser is geïnstalleerd. Het beheert gebruikersgegevens zoals cache, cookies, bladwijzers en voorkeuren.
Een belangrijk ding om hier op te merken is dat in webbrowsers zoals Google Chrome elk tabblad in een afzonderlijk proces wordt uitgevoerd (meerdere instanties van de rendering engine).