Dingen die je als webdeveloper moet weten

Vanzelfsprekend moet je als webdeveloper goede kennis hebben van HTML en CSS en ook redelijke kennis van JavaScript. Maar zonder op zijn minst basiskennis van de volgende zaken weet je eigenlijk niet genoeg om klanten goed van dienst te kunnen zijn.

Noem of vind jij jezelf webdeveloper, technisch VA 🤨, of maak je gewoon websites voor klanten. En weet je van één van deze zaken weinig tot niks? Dan heb je nu in ieder geval een lijstje met onderwerpen waar je jezelf in kan gaan verdiepen.

DNS

DNS staat voor Domain Name System. Heel simpel uitgelegd zorgt DNS ervoor dat een (subdomeinnaam) verwijst naar het juiste IP-nummer van een server. Bij het verhuizen van een bestaande website, of het maken van een nieuwe website is de kans groot dat je je klant moet helpen met de juiste DNS-instellingen.

De belangrijkste DNS-records waar je mee te maken krijgt zijn A- en AAAA-records. Een A-record vertelt eigenlijk alleen maar dat naam-X hoort bij een bepaald IP. Bij websites is het vaak standaard dat het A-record voor het hoofddomein (bijv: onlinesuperheld.nl) en het www-subdomein (bijv: www.onlinesuperheld.nl) naar hetzelfde IP-adres verwijzen.

Een AAAA-record is eigenlijk hetzelfde, maar dan voor de modernere IPv6-variant van IP nummers. Wanneer de webserver ook IPv6 ondersteund is het belangrijk dat je ook voor het hoofddomein en www-subdomein de juiste AAAA-records aanmaakt.

E-mail

Daarnaast zijn er ook enkele belangrijke DNS-records die zorgen voor de juiste e-mailafhandeling van een domeinnaam. De belangrijkste hiervoor zijn de MX-, SPF-, DKIM en DMARC records. Wanneer deze records juist staan ingesteld zorg je ervoor dat je eigen e-mails niet in de spambox van de ontvanger belanden en dat het moeilijk is je domein te misbruiken voor spam en andere neppe e-mailberichten.

Kort uitgelegd doen deze records het volgende:

Een MX-record verteld welke server mail voor het domein ontvangt. Bij het aanmaken van een mailbox geven de meeste providers direct aan welke MX-records er nodig zijn om het ontvangen van e-mail juist in te stellen.

In een SPF-record staat een lijst met welke servers er namens een domeinnaam e-mails mogen versturen. Als je website dus mailtjes verstuurd, bijvoorbeeld via een contactformulier, dan is het belangrijk dat het IP-nummer van de webserver ook in het SPF-record staat. Staan de juiste IP-nummers niet in het SPF-record, dan is de kans groot dat je e-mails in de spambox van de ontvanger terecht komen, of zelfs helemaal niet aankomen.

DKIM is een techniek waarmee e-mailberichten kunnen worden gewaarmerkt. Simpel uitgelegd staat in het DKIM-record een publieke sleutel waarmee de afzender van een e-mail gevalideerd kan worden. Naast het instellen van het DKIM-record vereist dit ook een juiste instelling op de webserver. Meestal geeft de hostingprovider van de webserver waar je DKIM voor wilt instellen ook aan wat de juiste inhoud moet zijn voor het DKIM-record. Wanneer je domeinnaam en hosting bij dezelfde provider is geregeld, gaat dit vaak automatisch.

In een DMARC-record kan aangegeven staan welke e-mailbeveiliging er gebruikt wordt voor een domeinnaam (SPF en/of DKIM) en wat een ontvangende email-server eventueel moet doen wanneer een e-mail niet voldoet aan de instellingen van het SPF-record of DKIM.

Hosting

Zorg dat je weet wat het verschil is tussen HTTP en HTTPS.

HTTP is het protocol waarmee websites vanaf de server wordt verstuurd naar de browser van de klant. HTTPS is hier de beveiligde variant van. Voor deze beveiliging wordt gebruik gemaakt van een zogehete SSL-certificaat. Dit is een manier om te valideren dat de domeinnaam die je bezoekt via de beveiligde verbinding ook daadwerkelijk naar de juiste server verwijst. Vroeger konden SSL-certificaten best prijzig zijn, tegenwoordig biedt vrijwel elke hostingprovider ook de gratis SSL-certificaten van Let’s Encrypt aan.

HTTP2 en HTTP3 zijn nieuwere varianten van het HTTP-protocol, waarbij ook altijd een SSL-certificaat vereist is.

FTP & SFTP

Het FTP-protocol is de simpelste, en waarschijnlijk ook nog steeds de meest voorkomende manier om bestanden op een server te plaatsen. Dit doe je veelal via een programma als FileZilla of Transmit. SFTP is hier de beveiligde variant van. Wanneer je bij een hostingprovider de keuze hebt tussen FTP of SFTP, moet je gewoon altijd SFTP kiezen. Er zijn ook steeds meer providers die FTP simpelweg niet meer ondersteunen.

Webserversoftware

Apache en NGINX zijn de meest voorkomende software voor webservers, als je hosting op Windows draait is de kans groot dat dit IIS is. Je hoeft zeker geen expert te zijn, maar zorg dat je weet welke sortware er op je hosting gebruikt wordt en hoe bepaalde zaken werken of juist niet werken. Zo kan je bij Apache bepaalde instellingen doorgeven via bijvoorbeeld een .htaccess-bestand in de hoofdmap van je site, terwijl dit bij NGINX bijvoorbeeld niet zo werkt.

Vaak kan je gewenste instellingen voor elk van deze servers instellen in een beheerpaneel (via DirectAdmin, Plesk of cPanel) of gewoon aanvragen bij de hostingprovider.

Extra

Gzip-compressie is een manier om bestanden op de server te comprimeren zodat er minder data naar de bezoeker verstuurd hoeft te worden. Het kan je website dus sneller maken voor de bezoeker. Bij veel hostingproviders staat dit standaard aan of is dit eenvoudig in te stellen.

Via SSH of Secure Shell is het mogelijk om op de server in te loggen en commando’s rechtstreeks op de server uit te voeren. Niet elke hostingprovider ondersteund dit, en vaak zitten hier nog extra beveiligingen op, zoals IP-blokkades.

Caching

Client-side

Je webbrowser bewaart sommige onderdelen van een website die je hebt bezocht (zoals afbeeldingen, stijlen en scripts) op je computer, dit heet browser-caching. Hierdoor hoeft de browser die onderdelen niet telkens opnieuw van het internet te halen wanneer je dezelfde website opnieuw bezoekt. Dit maakt het laden van pagina’s sneller omdat je browser al een deel van de informatie heeft opgeslagen.

De TTL (Time To Live) is hoe lang de browser deze cache maximaal zou moeten bewaren. Hiermee geef je als developer of beheerder aan wanneer de browser bepaalde onderdelen weer opnieuw van de server moet ophalen.

Server-side

Er zijn veel verschillende manieren van server-side caching. Zorg dat je een aantal mogelijke caching-opties weet, en hoe ze globaal werken. Hieronder staan 2 mogelijkheden toegelicht.

Bij Varnish caching worden veel opgevraagde pagina’s tijdelijk opgeslagen. Wanneer een gebruiker een pagina opvraagt, controleert Varnish eerst of die pagina al in de cache staat. Als dat zo is, wordt de opgeslagen versie direct aan de gebruiker geleverd. Als de pagina niet in de cache staat, vraagt Varnish de pagina op bij de webserver, slaat een kopie op in de cache en levert deze aan de gebruiker. Hierdoor hoeft de webserver minder werk te verrichten en laden pagina’s sneller.

Redis caching werkt op een gelijksoortige manier, alleen worden niet de pagina’s opgeslagen, maar bepaalde informatie die uit de database wordt opgehaald wordt tijdelijk in het geheugen opgeslagen. Bij een aanvraag controleert Redis eerst of de gevraagde gegevens al in het geheugen (cache) zijn opgeslagen. Als dat het geval is, worden de gegevens direct teruggegeven. Als de gegevens niet in het geheugen zijn opgeslagen, worden ze van de database opgehaald, in de cache opgeslagen en vervolgens aan de gebruiker geleverd.

Sommige CMS-systemen doen veel database-verzoeken voor 1 pagina, waardoor Redis caching een website een stuk sneller kan maken.

Databases

Er zijn verschillende soorten database-systemen, waaronder MySQL / MariaDB, PostgreSQL of NoSQL.

Je hoeft zeker geen expert te zijn, maar zorg dat je basiskennis hebt van het database-systeem waar je CMS gebruik van maakt. In veel gevallen zal dit MySQL of MariaDB zijn. Weet hoe je verbinding maakt met een database en simpele queries kan uitvoeren.

De juiste programmeertaal

Voor het bouwen van een website is niet één juiste programmeertaal. Wat de beste taal is hangt af van de situatie, budget, tijd en vooral en vaak ook persoonlijke voorkeur.

Maar wanneer je een CMS gebruikt moet je op zijn minst basiskennis hebben van de programmeertaal waar dit CMS in geschreven is. Voor WordPress of Craft CMS is dit bijvoorbeeld PHP.

Versiebeheer

Versiebeheer bestaat in vele vormen en maten. Voor programmeercode zijn vooral Git en SVN veelgebruikt. Zorg dat je weet globaal weet wat ze doen en hoe je er mee kan werken.

Je hoeft zeker geen expert te zijn om met versiebeheer te kunnen werken en dit te gebruiken. Er zijn genoeg online systemen en tools die het zware werk (gratis) uit handen nemen. Zoals bijvoorbeeld Github, Gitlab en BitBucket.

Afsluiting

Zonder minimaal de basiskennis van bovenstaande zaken kan je als webdeveloper, webdesigner die ook bouwt, technisch VA of gewoon iemand die betaald websites maakt eigenlijk niet goed (genoeg) je klanten helpen. Je weet dan te weinig om een klant goed te kunnen adviseren over mogelijke oplossingen.

Ook bij het opsporen en verhelpen van problemen met de snelheid van de website, versturen van (mail)formulieren helpt deze kennis je enorm.