8. Client en server
Een essentieel onderdeel van webtechniek is het model van client en server. De client is bijvoorbeeld de browser waarin je websites bekijkt, de server is de computer waar de website op draait.
8.1 Het client-server-model
Het web is opgebouwd volgens het client-server-model:
- De browser waarin je een pagina bekijkt, is de client.
- De webserver waar de website staat, is de server.
Het model waarbij de client en de server met elkaar communiceren wordt het client-server-model genoemd. Andere voorbeelden van dit model zijn e-mail en FTP.
De terminologie client/server komt vaak voor op het web, vandaar dat we hier aandacht aan besteden. Een voorbeeld is de validatie van gegevens in een webformulier. Deze kan in de browser zijn: dan noemen we dat client side. Of kan gebeuren op de server: dan noemen we dat server side.
In de Wikipedia wordt het als volgt omschreven:
Het client-servermodel is een model in de informatica en computertechniek voor de samenwerking tussen twee of meer programma's, die zich op verschillende computers kunnen bevinden. Kenmerkend voor de asymmetrie in het model is:
- De server is permanent beschikbaar en is reactief.
- Een client is bij gelegenheid actief en neemt het initiatief tot communicatie met de server.
8.2 Webserver en provider
De website van jouw organisatie staat ergens op een computer die verbonden is met het internet. Deze computer heet een webserver. Een server is vergelijkbaar met een gewone computer, maar dan net iets uitgebreider.
Deze webserver staat bij een provider of hosting provider. Je kunt ook zeggen dat de provider jouw website host.
De kwaliteit van de hosting is bijzonder belangrijk voor de kwaliteit van je website. Een trage server zorgt dat elke bezoeker langer moet wachten. Ook is dit niet goed voor de vindbaarheid van je site, want zoekmachines houden niet van sites die langzaam laden.
In de snelheid van de site spelen verschillende factoren een rol:
- Client-side:
- Performance computer/device
- Kenmerken pagina (complexe code, gebruik JavaScript)
- Snelheid internetverbinding (glasvezel, 3G)
- Server-side:
- Kwaliteit netwerk
- Kwaliteit server
- Locatie server
- Internet:
- DNS resolving
De snelheid van je site is een belangrijke factor in het succes van je site. Mensen haken af als het lang duurt voordat de pagina wordt geladen. Je moet dus controleren of al deze factoren in orde zijn. Maar geen zorgen, in het laatste hoofdstuk bespreken wij tools waarmee je dit kunt meten.
Ook is het belangrijk dat de server niet offline gaat. Offline betekent dat de server tijdelijk geen contact maakt met het internet en niet bereikbaar is.
Het is belangrijk dat je de monitoring van je site niet overlaat aan je webbouwer, maar dat je hier zelf ook op let. Als de webbouwer bijvoorbeeld zelf verantwoordelijk is voor de hosting, heeft hij ook andere belangen dan jou goed te informeren over de snelheid van jouw website.
Het monitoren van je site kun je bijvoorbeeld doen met:
8.3 Communicatie tussen client en server
Als je in je browser een webpagina gaat bezoeken, stuurt je browser (client) een verzoek naar de server om deze pagina te tonen. Dit verzoek van de client heet een request.
De server geeft hierop een antwoord: dat is de response. Deze communicatie wordt op de server bijgehouden in een server-log of in de logfiles.
![](/content/books/book_9/clientserver-c006.png)
8.4 JavaScript
JavaScript is een programmeertaal. JavaScript kan client side en server side gebruikt worden. JavaScript is een scripting-taal. Wordt JavaScript client side, dan spreken we ook wel over client-sidescripting.
8.5 Cache
Met cache wordt bedoeld dat er informatie onthouden wordt, bijvoorbeeld een pagina die je eerder hebt bezocht. In elke browser zit cache. Bezoek je een pagina voor de 2e keer, dan hoeft niet alles opnieuw bij de server worden opgehaald, maar kan de pagina uit de cache van de browser worden getoond.
Het cachen vindt ook vaak plaats op de server. Wordt bij de server een pagina opgevraagd die al eerder (bijvoorbeeld door iemand anders) is opgehaald, dan is deze gecached en kan de pagina direct naar de aanvrager (client) worden opgestuurd. Omdat bijna alle sites tegenwoordig werken met een database, worden ook de pagina's opgebouwd met informatie uit de database. Dat kost even tijd. Door pagina's op de server te cachen, is het niet nodig om de database steeds aan te spreken.
Caching kan plaats vinden op elke plek tussen de client en de server. Bijvoorbeeld ook in een proxyserver. Zo'n server wordt vaak gebruikt als meerdere mensen via één internetverbinding werken, zoals bij organisaties.
Caching kan soms vervelend zijn als jij een website onderhoudt. Kijk je in de browser of een wijziging goed is doorgevoerd, kan het zijn dat je geen wijzigingen in de browser ziet. Dan kan het zijn dat je nog kijkt naar de cache. Een paar keer de pagina herladen of drukken op Ctrl-F5 (Command-F5 voor de Mac) kan hier de oplossing geven. In sommige CMS-en kun je zorgen dat de cache is uitgeschakeld als je als redacteur aan de site werkt.
8.6 FTP en SFTP
FTP
Behalve via websites zijn er ook andere manieren om bestanden uit te wisselen. Een vrij technische, maar erg handige methode is via File Transfer Protocol (FTP).
Ook hier heb je een client, de FTP-client, en een server, de FTP-server. Via de client kun je op je computer contact maken met de FTP-server. Dit is vaak de webserver. Vervolgens kun je onder andere bestanden heen en weer sturen. Ook kun je enkele eenvoudige serverhandelingen uitvoeren, zoals het wijzigen van de rechten van mappen en bestanden op de server.
FTP kan handig zijn als je snel een bestand wil plaatsen op de webserver.
![](/content/books/book_9/ftp-scherm-7403.png)
SFTP
De opvolger van FTP is Secure FTP, afgekort SFTP. SFTP maakt gebruik van SSH: Secure Shell. SSH is een netwerkprotocol dat een veilige manier biedt om te verbinden met een computer of server op afstand.
In de meeste gevallen is het beter en veiliger om SFTP te gebruiken dan FTP.