Hoe het web werkt: browsers, servers en HTTP

Ontdek wat er gebeurt tussen het intypen van een webadres en het verschijnen van een pagina. Leer hoe browsers en servers communiceren via HTTP-verzoeken en HTTP-antwoorden, hoe je URL's, domeinnamen en statuscodes leest en wat HTML, CSS en JavaScript elk aan een pagina bijdragen. Stel een code-editor in en gebruik de ontwikkelaarstools van je browser om elementen te inspecteren, fouten te lezen en elk verzoek van een pagina te volgen.

BeginnerLes 1 van 8 in Cursus HTML en CSS: responsieve, toegankelijke websites bouwen

Wat je leert

  1. Leg de rollen van clients en servers uit en volg de belangrijkste stappen van het intypen van een webadres tot het verschijnen van een voltooide pagina, inclusief wat er bij elke stap mis kan gaan.
    • Leg clients, servers en de verzoek-antwoordcyclus uit
      Beschrijf wat clients en servers zijn, hoe een browser bestanden bij een server opvraagt en waarom voor één pagina meestal veel verzoeken nodig zijn.
    • Volg de stappen van de adresbalk tot de voltooide pagina
      Zet de belangrijkste stappen op volgorde (het adres lezen, de server vinden, het verzoek verzenden, het antwoord ontvangen en de pagina opbouwen) en geef aan wat er bij elke stap mis kan gaan.
  2. Ontleed een webadres, leg uit wat elk onderdeel de browser en de server vertelt, lees domeinnamen correct en maak werkende links tussen de bestanden van een website.
    • Benoem de onderdelen van een URL
      Herken het URL-schema, de host, de poort, het pad, de querystring en het fragment van een webadres en leg uit wat elk onderdeel doet.
    • Lees domeinnamen en leg uit hoe ze naar een server leiden
      Splits een domeinnaam in labels, geef aan wie een domein beheert en beschrijf hoe een naam wordt geregistreerd en aan het adres van een server wordt gekoppeld.
    • Maak absolute en relatieve links tussen bestanden
      Kies tussen absolute, relatieve en vanaf de hoofdmap opgebouwde adressen, bepaal waar een relatieve link naartoe leidt en geef bestanden namen waarmee links op een server blijven werken.
  3. Beschrijf wat een browser naar een server stuurt en wat er terugkomt, en gebruik statuscodes om te bepalen of een verzoek is gelukt en zo niet, waar het probleem ligt.
    • Beschrijf wat een HTTP-verzoek bevat
      Lees de onderdelen van een HTTP-verzoek, kies tussen GET en POST en leg uit wat de veelvoorkomende verzoekheaders de server vertellen.
    • Beschrijf wat een HTTP-antwoord bevat
      Lees de statusregel, headers en berichtinhoud van een antwoord, leg mediatypen uit en beschrijf hoe cookies en caching werken bij een toestandsloos protocol.
    • Interpreteer statuscodes en achterhaal waarom verzoeken mislukken
      Deel statuscodes in hun vijf klassen in, leg de codes uit die je het vaakst tegenkomt en gebruik ze om te bepalen of een probleem bij het verzoek, de server of geen van beide ligt.
  4. Geef aan wat elk van de drie talen van het web doet, hoe ze op één pagina samenhangen en hoe de browser de ontvangen bestanden omzet in een pagina die je kunt zien en gebruiken.
    • Maak onderscheid tussen structuur, vormgeving en gedrag
      Herken HTML-, CSS- en JavaScript-code, leg de taak van elk uit en laat zien hoe een pagina ze met elkaar verbindt.
    • Leg uit hoe de browser een pagina uit de bijbehorende bestanden opbouwt
      Beschrijf hoe de browser HTML omzet in de DOM, CSS toepast, scripts uitvoert en de pagina tekent, en leg uit waarom de paginabron en de actuele pagina kunnen verschillen.
  5. Maak een code-editor en projectmap klaar, bekijk pagina's lokaal en gebruik de ontwikkelaarstools van de browser om elementen en stijlen te inspecteren, fouten te lezen en elk verzoek van een pagina te volgen.
    • Stel een code-editor in en maak een projectmap
      Installeer en configureer een code-editor, orden de bestanden van een website in een projectmap en bekijk pagina's vanaf de schijf of via een lokale server.
    • Inspecteer elementen, stijlen en fouten met ontwikkelaarstools
      Open de ontwikkelaarstools, inspecteer en bewerk tijdelijk HTML en CSS, lees consolefouten en bekijk een pagina op telefoonbreedte.
    • Volg elk verzoek in het netwerkpaneel
      Leg het laden van een pagina vast, lees de status, het type, de grootte en de headers van elk verzoek en gebruik het paneel om niet-werkende links, omleidingen en effecten van caching te vinden.

Browsers, servers en HTTP: uitleg

5 hoofdstukken

1

Van je browser naar een webserver

Als je een pagina opent, begint een gesprek tussen je browser en één of meer servers. Volg dat gesprek vanaf het eerste adres tot de bestanden die je scherm vullen. Door de stappen afzonderlijk te bekijken, kun je uitleggen waarom tekst vóór afbeeldingen kan verschijnen, waarom een tweede bezoek sneller kan laden en waarom een ontbrekend bestand een ander soort fout oplevert dan een onbereikbare server.

1.1 Clients, servers en afzonderlijke bronnen

Een webpagina op je scherm is het resultaat van werk op twee plaatsen. Je browser vraagt bronnen op en een server stuurt antwoorden. Die rollen verklaren zowel een eenvoudige persoonlijke website als een pagina die uit verschillende diensten is samengesteld.

Wie vraagt en wie antwoordt

Een client is een apparaat en programma dat iets opvraagt. Chrome, Edge, Firefox en Safari zijn browserclients. Een server is een computer met software die verzoeken aanneemt en opgeslagen bestanden of zelf samengestelde inhoud terugstuurt. Apache en nginx zijn voorbeelden van webserversoftware. Het woord “server” kan de computer of die software aanduiden.

Bij een HTTP-uitwisseling stuurt de client een verzoek waarin staat wat hij wil. De server stuurt een antwoord op dat verzoek. Vergelijk het met eten bestellen aan een toonbank: het bestelbonnetje vraagt om iets en het dienblad is het antwoord. De browser begint de uitwisseling; een gewoon pagina-antwoord reageert op een verzoek.

Client en server zijn rollen, geen vaste soorten machines. Een laptop kan zowel je browser als een testserver uitvoeren. Een website wordt gehost als een bereikbare server de bronnen beschikbaar maakt. Een server die je via localhost bereikt, draait op je eigen computer; dat adres brengt de browser van iemand anders niet naar jouw laptop.

Een pagina is een verzameling bronnen

Een bron is iets wat een adres kan aanduiden: een pagina, stijlblad, script, afbeelding, lettertype, video of stukje gegevens. Het eerste paginaverzoek haalt meestal HTML op. De browser leest die HTML om de andere benodigde bronnen te ontdekken en vraagt ze elk afzonderlijk op.

Een artikel noemt bijvoorbeeld twee stijlbladen, één script en vijf afbeeldingen. Tel ook de HTML mee:

  • Eén HTML-bron vormt het begin van de pagina.
  • Twee CSS-bronnen leveren de stijlen.
  • Eén JavaScript-bron levert gedrag.
  • Vijf afbeeldingsbronnen leveren afbeeldingen.

Dat zijn negen bronnen en, bij een lege browsercache, negen HTTP-verzoeken voor die bronnen. Een cache bewaart gedownloade kopieën voor hergebruik. Nog geldige bestanden in de cache kunnen bij een volgend bezoek het aantal verzoeken over het netwerk verminderen.

De bronnen hoeven niet op dezelfde server te staan. De HTML kan van www.example.com komen, afbeeldingen van images.example.net en een video van een andere dienst. Het adres van elke bron vertelt de browser waar hij die moet opvragen. Een geslaagd HTML-verzoek bewijst dus niet dat ook elke afbeelding of elk script is geladen.

Opgeslagen bestanden en gegenereerde antwoorden
Soort antwoordHoe de server het voorbereidtVoorbeeld
StatischVerstuurt een opgeslagen bestand zoals het isEen pagina about.html
DynamischVoert een programma uit om het antwoord samen te stellenZoekresultaten voor een bepaalde zoekopdracht

In beide gevallen ontvangt de browser bronnen die hij kan lezen of weergeven. Een gegenereerde HTML-pagina is nog steeds HTML wanneer die de browser bereikt. De browser bevat gedownloade kopieën, terwijl de server de oorspronkelijke bestanden van de website bewaart of het programma dat ze samenstelt.

Het web werkt via het internet

Het internet is het wereldwijde netwerk dat gegevens tussen computers transporteert. Het web is een dienst die dat netwerk gebruikt: gekoppelde bronnen die via URL's worden aangeduid en via HTTP worden uitgewisseld. Ook e-mail, onlinegames en videobellen gebruiken het internet. Het web is één toepassing van het netwerk, niet de naam voor elke activiteit erop.

Belangrijkste punten

  • Een HTTP-uitwisseling begint met een verzoek van een client, waarop een server antwoordt.
  • Een pagina heeft meestal voor elke bron een apart verzoek nodig, tenzij een bruikbare kopie in de cache beschikbaar is.
  • Client en server beschrijven rollen; één computer kan beide vervullen.
  • Statische bestanden zijn opgeslagen antwoorden; dynamische antwoorden worden door serverprogramma's samengesteld.
  • Het web is een dienst die via het internet werkt.

1.2 De stappen bij het laden van een pagina

Als je bij een webadres op Enter drukt, beginnen verschillende taken. Elke taak heeft een eigen doel, dus een fout in de ene fase laat andere aanwijzingen achter dan een fout in een andere fase.

Lees het adres en vind de server

Neem https://www.example.com/news.html. De browser leest https als het schema, www.example.com als de host en /news.html als het opgevraagde pad. Tekst zoals “weer morgen” wordt normaal gesproken als zoekopdracht behandeld en naar de standaardzoekmachine gestuurd.

De browser heeft een IP-adres nodig, een numeriek netwerkadres zoals 203.0.113.10 of het IPv6-voorbeeld 2001:db8::1. DNS, het Domain Name System, vindt adressen die bij domeinnamen horen. De browser en het besturingssysteem kunnen een recent DNS-antwoord uit een cache hergebruiken, zodat niet voor elk paginabezoek een nieuwe opzoeking nodig is.

Maak verbinding en beveilig de uitwisseling

De browser maakt verbinding met de server. Voor HTTPS stelt hij een versleutelde verbinding in met TLS. De server biedt een certificaat aan waarmee de browser zijn identiteit voor het gevraagde domein kan controleren. Versleuteling beschermt de berichten tegen lezen of wijzigen door anderen op het netwerk. Een indicator voor een beveiligde verbinding geeft die bescherming aan; ook een oplichtingssite kan een geldig certificaat hebben.

Gegevens reizen over het netwerk in kleine stukken die pakketten heten, via apparaten die routers worden genoemd, en worden op de bestemming weer samengevoegd. De browser en het besturingssysteem regelen dat transport, terwijl de browser met de HTTP-berichten werkt.

Verzoek, ontvangst en opbouw
  1. De browser stuurt een HTTP-verzoek voor /news.html.
  2. De server antwoordt met een statuscode, headers die het antwoord beschrijven en meestal berichtinhoud met de HTML.
  3. De browser leest de HTML en vraagt de genoemde stijlbladen, scripts, afbeeldingen en andere bronnen op.
  4. Hij bouwt de pagina op, past stijlen toe, voert scripts uit en tekent inhoud op het scherm.

Verschillende verzoeken om bronnen kunnen elkaar overlappen. De browser kan tekst tonen voordat elke afbeelding is gedownload; de pagina wordt geleidelijk opgebouwd.

Stel dat de HTML van een kleine pagina op https://example.org/ alleen style.css en logo.png noemt, beide op dezelfde host. Zonder relevante vermeldingen in de cache heeft één host een DNS-opzoeking nodig en zijn voor de drie bronnen drie HTTP-verzoeken nodig. Bij een later bezoek voorkomt een DNS-antwoord in de cache die opzoeking. Nog geldige kopieën van bronnen kunnen opnieuw worden gebruikt en oudere kopieën kunnen bij de server worden gecontroleerd. Een antwoord 304 Not Modified betekent dat een opgeslagen kopie nog actueel is en dat de inhoud van het bestand niet opnieuw hoeft te worden verstuurd.

Zoek een fout aan de hand van aanwijzingen
AanwijzingTe onderzoeken fase
Naam kan niet worden omgezetDNS kon geen adres vinden
Verbinding loopt afDe server kon niet op tijd worden bereikt
HTTP-antwoord 404Een server antwoordde, maar vond de gevraagde bron niet
Tekst verschijnt zonder opmaakControleer het afzonderlijke verzoek om het stijlblad

Een DNS-fout heeft geen HTTP-statuscode omdat er geen HTTP-antwoord is aangekomen. Een 404 is anders: de server heeft geantwoord. Chrome kan een naamfout zoals DNS_PROBE_FINISHED_NXDOMAIN tonen, maar de tekst is een browsermelding, geen antwoord van de server.

Belangrijkste punten

  • De hoofdvolgorde is: URL lezen, adres vinden, verbinden, verzoeken, ontvangen en opbouwen.
  • DNS koppelt namen aan adressen; HTTPS beschermt de HTTP-uitwisseling met TLS.
  • De browser kan inhoud weergeven terwijl andere bronnen nog laden.
  • Een DNS- of verbindingsfout kan optreden voordat er een HTTP-antwoord bestaat.
2

Lees adressen en maak werkende links

Een webadres vertelt de browser zowel waarmee hij verbinding moet maken als wat hij moet opvragen. Leer de onderdelen te onderscheiden, domeinnamen vanaf rechts te lezen en links door mappen te volgen. Met deze vaardigheden herken je een misleidende hostnaam en herstel je een ontbrekende afbeelding of een ontbrekend stijlblad. Dezelfde padregels gelden wanneer je lokaal een kleine website bouwt en wanneer de map via een webserver wordt aangeboden.

2.1 Wat elk onderdeel van een URL doet

Een URL, of Uniform Resource Locator, duidt één bron aan. De domeinnaam is maar één onderdeel van dat adres. Het volledige patroon is scheme://host:port/path?query#fragment, al laten veel adressen optionele onderdelen weg.

Ontleed een adres

Lees dit adres in onderdelen:

https://shop.example.com:8443/products/shoes.html?color=blue&size=42#reviews

OnderdeelWaardeTaak
SchemahttpsKiest versleuteld HTTP
Hostshop.example.comDuidt de serverbestemming aan
Poort8443Selecteert een dienst op die bestemming
Pad/products/shoes.htmlDuidt de op te vragen bron aan
Querycolor=blue&size=42Levert extra invoer
FragmentreviewsDuidt een plaats binnen de pagina aan

De leestekens scheiden de onderdelen: : volgt op het schema, ? begint de query en # begint het fragment. De scheidingstekens maken geen deel uit van de waarden van de query of het fragment.

Schema, host en poort

Het URL-schema bepaalt hoe het adres wordt behandeld. http gebruikt onversleuteld HTTP; https gebruikt versleuteld HTTP. mailto:info@example.com vraagt een e-mailprogramma om een bericht op te stellen, terwijl file:/// naar een lokaal bestand verwijst.

De poort selecteert een dienst op de host. Als die wordt weggelaten, gebruikt HTTP poort 80 en HTTPS poort 443. Zo duiden https://example.com/ en https://example.com:443/ dezelfde bestemming en hetzelfde pad aan. Lokale testservers gebruiken vaak poorten 3000, 5500 of 8080; http://localhost:5500/ vermeldt de poort omdat die niet de standaardpoort van HTTP is.

Bij het schema en de host maken hoofdletters geen verschil. De host www.example.com is een andere naam dan example.com; beide bereiken een website alleen als de eigenaar ze zo heeft ingesteld.

Pad, query en fragment

Op een eenvoudige statische website volgt een pad de mappen en bestanden van de server. Op andere websites bepaalt serversoftware wat een pad oplevert, dus hoeft een pad geen bestand op de schijf aan te duiden. Een mapadres dat eindigt op / levert vaak een standaardpagina zoals index.html op.

Een querystring voert invoer mee na ?. In /search?q=web+basics&page=2 scheidt & twee velden: de zoekwoorden en het paginanummer. Deze velden gaan als onderdeel van het verzoekdoel naar de server.

Een fragment blijft in de browser. Het achtervoegsel #reviews scrolt meestal naar een element met id="reviews". De browser vraagt het pad en de query zonder het fragment op. Als je alleen #top in #reviews verandert, vraagt de browser de server niet om een ander bestand.

Behoud de precieze tekens

Webpaden gebruiken schuine strepen /. Een spatie kan als %20 worden procentgecodeerd. Formuliercodering gebruikt + voor een spatie en %40 voor @; een gewoon URL-pad of een gewone query mag een letterlijke @ bevatten. Formuliercodering en de algemene schrijfwijze van URL's volgen dus niet precies dezelfde regels.

Paden kunnen hoofdlettergevoelig zijn, ook al zijn hosts dat niet. /Images/Logo.png kan verschillen van /images/logo.png. Als je de host correct overneemt maar de hoofdletters in een pad verandert, kun je dus nog steeds de verkeerde bron opvragen.

Belangrijkste punten

  • Een URL scheidt de bestemming van het pad, de query-invoer en het browserfragment.
  • De standaardpoorten zijn 80 voor HTTP en 443 voor HTTPS.
  • De query bereikt de server; het fragment niet.
  • Bij hosts maken hoofdletters geen verschil, maar bij paden kan dat wel zo zijn.
  • Gebruik schuine strepen in webpaden en codeer spaties.
  • Een adrespad kan door software worden afgehandeld zonder overeen te komen met een opgeslagen bestand.

2.2 Domeinnamen en wie ze beheert

Een domeinnaam geeft mensen een leesbare naam om in plaats van een numeriek IP-adres te gebruiken. De onderdelen tussen de punten laten ook zien hoe de naam is opgebouwd. Het is belangrijk die onderdelen correct te lezen wanneer twee adressen vergelijkbare woorden bevatten.

Begin aan de rechterkant

Elk onderdeel tussen punten is een label. In blog.example.org is het meest rechtse label, org, het topleveldomein, of TLD. Het geregistreerde domein is example.org en blog is een subdomein dat via dat domein wordt beheerd.

Generieke TLD's zijn onder meer .com, .org, .net, .dev en .shop. Landcode-TLD's hebben twee letters, zoals .nl, .de, .jp, .br en .ca. Voor sommige gelden toelatingseisen: .gov is beperkt tot geverifieerde Amerikaanse overheidsorganisaties. Voor nieuwe institutionele registraties onder .edu komen doorgaans daarvoor in aanmerking komende, institutioneel geaccrediteerde Amerikaanse instellingen voor vervolgonderwijs in aanmerking; sommige organisaties komen op grond van ander beleid in aanmerking en voor oudere registraties kunnen uitzonderingen gelden. ICANN coördineert de toplevelnamen van het domeinnaamsysteem.

Een geregistreerde naam bestaat niet altijd uit alleen de laatste twee labels. Onder .co.uk is de geregistreerde naam in news.example.co.uk bijvoorbeeld example.co.uk. Lees eerst de publieke uitgang en bepaal daarna welke naam daaronder is geregistreerd.

Bekende woorden kunnen in de naam van iemand anders staan

Vergelijk deze hosts:

HostGeregistreerd domein dat de host beheert
accounts.example.comexample.com
example.com.signin.example.netexample.net

In de tweede host zijn de woorden example.com labels links van example.net. Ze geven de eigenaar van example.com geen zeggenschap over het adres. Bepaal eerst wat de host is voordat je die vanaf rechts leest; een bekende naam in een pad is evenmin de host.

www is een gewoon subdomeinlabel. Een website-eigenaar kan het gebruiken, weglaten of tussen namen omleiden. De aanwezigheid ervan is niet verplicht op het web.

Registratie en hosting staan los van elkaar

Een registrar verzorgt domeinregistraties voor klanten. Een registry beheert de registraties voor een TLD. Een domein registreren geeft je het recht die naam voor een bepaalde periode te gebruiken, meestal één of meer jaren. Je verlengt de registratie om dat recht te behouden; een verlopen naam kan uiteindelijk voor iemand anders beschikbaar komen.

De eigenaar stelt vervolgens DNS-records in om de naam aan het adres van een hostingserver te koppelen. Het domein is niet hetzelfde als de bestanden van de website. Dezelfde naam kan naar een andere server verwijzen en één server kan meerdere domeinen bedienen. DNS-antwoorden in de cache verklaren waarom het minuten of uren kan duren voordat een gewijzigd adres overal zichtbaar is.

Naamregels en lokale namen

Gewone hostlabels gebruiken letters, cijfers en koppeltekens, zonder koppelteken aan het begin of einde. Elk label mag maximaal 63 tekens hebben en een gewone volledige naam maximaal 253 tekens. Hoofdletters maken in namen geen verschil. Geïnternationaliseerde domeinnamen ondersteunen andere schrijfsystemen; hun gecodeerde ASCII-labels beginnen met xn--.

De speciale naam localhost betekent de computer die het verzoek doet. De loopbackadressen zijn onder meer 127.0.0.1 en ::1. Als een cursist http://localhost:3000/ opent, zoekt de browser naar een dienst op de eigen computer van die cursist.

Belangrijkste punten

  • Lees domeinlabels van rechts naar links om het geregistreerde domein en de bijbehorende subdomeinen te herkennen.
  • Een bekende naam links van een ander geregistreerd domein beheert die host niet.
  • Registratie reserveert een naam voor een verlengbare periode; hosting maakt bronnen beschikbaar.
  • DNS koppelt namen aan serveradressen en antwoorden in de cache kunnen zichtbare wijzigingen vertragen.
  • localhost verwijst naar de computer die het verzoek doet.

2.3 Paden die het juiste bestand bereiken

Een link kan een volledig adres bevatten of aanwijzingen om vanaf de huidige pagina een bron te vinden. Om te voorspellen waar de link naartoe gaat, begin je bij het adres van de pagina en volg je het pad onderdeel voor onderdeel.

Kies het beginpunt
Soort linkVoorbeeldBeginpunt
Absoluuthttps://example.com/images/logo.pngHet genoemde schema en de genoemde host
Relatief../images/logo.pngDe map van de huidige pagina
Vanaf de hoofdmap/images/logo.pngDe hoofdmap van de huidige website

Een absolute URL duidt zijn eigen host aan en werkt vanaf elke pagina. Die is handig voor een andere website. Een relatieve URL laat het begin weg en wordt aangevuld op basis van het adres van de pagina. Voor bestanden binnen een website helpt dit om de map als geheel van een laptop naar een server te verplaatsen.

Werk een mappenboom door

Stel dat een website deze bestanden bevat:

my-site/
  index.html
  about.html
  images/logo.png
  styles/main.css
  blog/first-post.html

Vanuit index.html blijft about.html in dezelfde map. images/logo.png gaat de submap images in en styles/main.css gaat styles in.

Vanuit blog/first-post.html is de beginmap blog. Gebruik ../images/logo.png om het logo te bereiken: ga eerst omhoog naar de websitemap en daarna images in. De link images/logo.png zou in plaats daarvan binnen blog/images zoeken, waar in deze boom geen logo staat. Gebruik ../index.html om vanuit dat bericht de startpagina te bereiken.

Volg adressen in geneste mappen

Op https://example.com/blog/2026/post.html:

  • photo.jpg wordt https://example.com/blog/2026/photo.jpg.
  • ../index.html wordt https://example.com/blog/index.html.
  • /about.html wordt https://example.com/about.html.
  • #comments blijft op dit document en duidt het element comments aan.

Een / aan het begin vervangt het huidige pad vanaf de hoofdmap van de website. Die betekent niet “één map omhoog”. Door ../ te herhalen ga je meerdere mapniveaus omhoog: ../../about.html gaat vanuit het geneste bericht omhoog door 2026 en blog voordat het about.html vindt.

Bekijk links in de juiste omgeving

Een pad vanaf de hoofdmap werkt met een HTTP-server, ook een lokale server. Op een file:///-pagina verwijst / naar de hoofdmap van het bestandssysteem van de computer, niet naar je projectmap. Gebruik een lokale server om dit soort links te testen.

Een pad zoals C:\Users\sam\site\logo.png of file:///Users/sam/site/logo.png duidt een locatie op één computer aan. Andere bezoekers hebben die map niet. Link met een webpad dat binnen de structuur van de website blijft.

Laat namen precies overeenkomen

Gebruik namen met kleine letters, koppeltekens in plaats van spaties en de juiste extensies: naar contact-form.html kun je gemakkelijker betrouwbaar linken dan naar Contact Form.HTML. Windows en macOS negeren vaak het verschil tussen hoofdletters en kleine letters in bestandsnamen, terwijl veel webservers dat onderscheid wel maken. Een lokale link naar Logo.png kan online mislukken als de werkelijke naam logo.png is.

Een startpagina met de naam index.html is een veelgebruikte serverstandaard. Als je een map zoals /blog/ opvraagt, wordt meestal de bijbehorende index.html aangeboden wanneer die server met deze standaard is ingesteld.

Belangrijkste punten

  • Absolute links geven hun eigen bestemming; relatieve links beginnen in de map van de huidige pagina.
  • Elke ../ gaat één map omhoog, terwijl een / aan het begin bij de hoofdmap van de website begint.
  • Test links vanaf de hoofdmap via een webserver.
  • Paden en bestandsnamen moeten overeenkomen, inclusief hoofdletters, kleine letters en extensies.
3

Lees de berichten en achterhaal de oorzaak van fouten

Elk verzoek om een bron levert aanwijzingen op die je kunt onderzoeken: de methode en het adres die de browser verstuurde, de antwoordheaders en de statuscode. Lees deze onderdelen samen om een geslaagde download te onderscheiden van een omleiding, een hergebruikt bestand of een fout. Je ziet ook hoe cookies en caching nuttige functies toevoegen aan afzonderlijke HTTP-uitwisselingen en waarom het uiterlijk van een pagina alleen niet laat zien wat de server heeft teruggestuurd.

3.1 Een HTTP-verzoek van binnen

HTTP, het Hypertext Transfer Protocol, bepaalt hoe webclients bronnen opvragen en hoe servers antwoorden. HTTPS vervoert die berichten over een versleutelde verbinding. Als je een verzoek leest, zie je wat de browser de server heeft gevraagd te doen.

Lees het bericht op volgorde

Hier staat een verzoek in de tekstvorm van HTTP/1.1:

GET /products/shoes.html?color=blue HTTP/1.1
Host: shop.example.com
Accept: text/html
Accept-Language: en-US,en;q=0.9

De eerste regel bevat de methode, het verzoekdoel en de HTTP-versie. GET vraagt om een bron op te halen. Het verzoekdoel bevat het pad en de query, maar geen fragment. De host staat in de Host-header, waarmee één server onderscheid kan maken tussen de websites die hij bedient.

Een HTTP-header is een benoemd veld zoals Accept: text/html dat informatie over het verzoek of de inhoud ervan bevat. Een lege regel sluit de headers af. Sommige verzoeken bevatten daarna een berichtinhoud, de gegevens die worden verstuurd. Dit GET-voorbeeld heeft geen berichtinhoud.

HTTP/2 en HTTP/3 coderen berichten anders, maar behouden methoden, verzoekdoelen, headers en berichtinhoud. De ontwikkelaarstools tonen ze in leesbare vorm, zodat deze berichtonderdelen in verschillende versies bruikbaar blijven.

Kies een methode voor de handeling
MethodeBeoogde handeling
GETEen bron ophalen
POSTGegevens ter verwerking indienen
HEADAntwoordheaders zonder berichtinhoud ophalen
PUTEen bron vervangen
PATCHEen deel van een bron wijzigen
DELETEEen bron verwijderen

Als je een gewone link volgt of een HTTP-adres intypt, ontstaat een GET-verzoek. Een HTML-formulier gebruikt standaard GET en POST wanneer het method="post" vermeldt.

Bij een GET-formulier komen velden in de query van de URL terecht. Dat past bij een zoekopdracht waarvan je de resultaten wilt bewaren als bladwijzer of wilt delen. POST plaatst ingediende velden in de berichtinhoud van het verzoek en past bij handelingen zoals een account aanmaken of een reactie plaatsen.

POST versleutelt op zichzelf niets. Bij gewoon HTTP kunnen zowel querygegevens als gegevens in de berichtinhoud tijdens het transport worden gelezen. HTTPS beschermt beide. Wachtwoorden horen in de berichtinhoud van een POST over HTTPS, omdat URL's ook in de browsergeschiedenis verschijnen en in logboeken kunnen worden opgeslagen.

Lees een formulierinzending
POST /signup HTTP/1.1
Host: www.example.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 38

name=Ana+Silva&email=ana%40example.com

Het verzoekdoel is /signup. Content-Type geeft de formuliercodering van de berichtinhoud aan. De berichtinhoud bevat de naam “Ana Silva” en het e-mailadres “ana@example.com”: + wordt gedecodeerd als een spatie en %40 als @. Hier zijn dat 38 bytes, overeenkomstig Content-Length.

Verzoeken lezen, herhalen en herkennen

Een veilige methode is bedoeld om te lezen zonder de toestand van de server te veranderen; GET, HEAD en OPTIONS zijn veilig. Een idempotente methode heeft bij herhaling hetzelfde beoogde effect. Veilige methoden, PUT en DELETE zijn idempotent. Voor POST is dat niet gegarandeerd: het herhalen van een inzending kan een tweede reactie of bestelling aanmaken.

Andere verzoekheaders zijn onder meer User-Agent voor clientinformatie, Accept voor aanvaardbare formaten en Accept-Language voor taalvoorkeuren. Cookie stuurt opgeslagen cookiewaarden terug. Referer, met de historische spelling, kan de verwijzende pagina aanduiden; browsers kunnen die header afhankelijk van het beleid weglaten of beperken.

Belangrijkste punten

  • Een verzoek vermeldt een methode en verzoekdoel, gevolgd door headers en soms berichtinhoud.
  • GET haalt bronnen op; POST dient gegevens ter verwerking in.
  • HTTPS beschermt berichten tijdens het transport; POST alleen biedt geen versleuteling.
  • Een query reist mee in het verzoekdoel, terwijl formuliergegevens bij POST in de berichtinhoud reizen.
  • Veilige methoden zijn bedoeld om te lezen; idempotente methoden hebben bij herhaling hetzelfde beoogde effect.
  • HTTP-versies veranderen de codering zonder de belangrijkste berichtonderdelen weg te nemen.

3.2 Een HTTP-antwoord van binnen

Het antwoord is de reactie van de server op één verzoek. De code vertelt wat het resultaat is, de headers beschrijven het antwoord en de berichtinhoud bevat de teruggestuurde inhoud wanneer berichtinhoud is toegestaan.

Onderscheid de onderdelen

Een antwoord in de tekstvorm van HTTP/1.1 kan zo beginnen:

HTTP/1.1 200 OK
Content-Type: text/html; charset=utf-8
Content-Length: 1534
Cache-Control: max-age=600

<!DOCTYPE html>
<html lang="en">
...

De statusregel geeft de versie, code 200 en de voor mensen leesbare redenzin OK. Programma's gebruiken het getal. HTTP/2 en HTTP/3 sturen die redenzin niet mee. Na de headers en een lege regel begint de berichtinhoud met de HTML.

Content-Length geeft een aantal bytes aan, geen aantal tekens of zichtbare paginagrootte. Bij een antwoord met een afbeelding en Content-Length: 24576 heeft de berichtinhoud 24.576 bytes: 24,576 kB, of ongeveer 24,6 kB bij 1 kB = 1.000 bytes.

Herken de berichtinhoud aan het mediatype

Het mediatype, ook MIME-type genoemd, wordt in Content-Type meegestuurd.

MediatypeGebruikelijke inhoud
text/htmlEen webpagina
text/cssEen stijlblad
text/javascriptEen script
image/png, image/jpeg, image/svg+xmlAfbeeldingen
application/jsonGestructureerde gegevens

De header vertelt de browser hoe hij de berichtinhoud moet behandelen; een bestandsextensie alleen is niet genoeg. Als een URL voor een stijlblad een HTML-foutpagina met Content-Type: text/html teruggeeft, wijst de browser die als CSS af. Dit verklaart vaak een pagina met tekst maar zonder de bedoelde opmaak.

Berichtinhoud kan uit tekst of binaire bytes bestaan. Een antwoord op HEAD heeft geen berichtinhoud, ook niet als de headers de bron beschrijven die een GET zou teruggeven. Ook 204 No Content en 304 Not Modified hebben geen berichtinhoud.

Neem identiteit mee tussen afzonderlijke verzoeken

HTTP is toestandsloos: een uitwisseling onthoudt niet automatisch een eerdere uitwisseling. Een cookie levert informatie die verzoeken aan een lopende sessie koppelt.

  1. De server antwoordt met Set-Cookie: session=abc123.
  2. De browser slaat de cookie op.
  3. Bij latere verzoeken waarop de cookie van toepassing is, stuurt hij Cookie: session=abc123 mee.
  4. De server kan die waarde gebruiken om de sessie op te zoeken, zoals de aanmelding of winkelwagen van de cursist.

Het toepassingsbereik van de cookie en de browserregels bepalen met welke verzoeken de cookie wordt meegestuurd.

Hergebruik inhoud zonder opnieuw te downloaden

Met Cache-Control: max-age=600 mag de browser een opgeslagen antwoord 600 seconden, ofwel 10 minuten, als nog geldig behandelen. In die periode kan hij de kopie hergebruiken zonder contact met de server op te nemen. Nadat de kopie is verlopen, kan de browser vragen of die is gewijzigd. Een 304 betekent dat de berichtinhoud in de cache opnieuw kan worden gebruikt; een 200 kan een vervangende versie leveren.

Als opgeslagen CSS-wijzigingen niet verschijnen, controleer dan of de browser een kopie heeft hergebruikt. Geforceerd opnieuw laden, meestal met Ctrl+Shift+R op Windows/Linux of Cmd+Shift+R op macOS, of de optie Cache uitschakelen in de ontwikkelaarstools helpt om nieuwe bronnen op te halen. Dat selectievakje geldt zolang de ontwikkelaarstools open zijn.

Andere nuttige antwoordheaders zijn onder meer Location voor de bestemming van een omleiding, Date voor de datum van het antwoord en Server voor informatie over de serversoftware, als die wordt meegestuurd.

Belangrijkste punten

  • De status beschrijft het resultaat; headers beschrijven het antwoord; de berichtinhoud bevat de inhoud.
  • Content-Type geeft het formaat van de berichtinhoud aan en Content-Length telt bytes.
  • Antwoorden op HEAD en antwoorden met 204 en 304 hebben geen berichtinhoud.
  • Set-Cookie slaat een cookie op; latere Cookie-headers sturen die terug bij verzoeken waarop de cookie van toepassing is.
  • Een nog geldig cacheantwoord kan worden hergebruikt; 304 bevestigt dat opgeslagen berichtinhoud nog geldig is.

3.3 Statuscodes als aanwijzingen bij het opsporen van fouten

Een statuscode is het resultaat van drie cijfers in een HTTP-antwoord. Het getal beschrijft één verzoek, dus één pagina kan tegelijk geslaagde HTML, een ontbrekende afbeelding en een omgeleid script hebben.

Begin met het eerste cijfer
KlasseBetekenis
1xxInformatief, meestal een tussentijds bericht
2xxSucces
3xxOmleiding, inclusief validatie van de cache
4xxHet verzoek kan zoals verstuurd niet worden vervuld
5xxEen server kon het verzoek niet vervullen

200 OK is het gebruikelijke antwoord op een geslaagde GET. 201 Created meldt dat een nieuwe bron is aangemaakt, vaak na POST. 204 No Content meldt succes zonder berichtinhoud in het antwoord.

Volg een omleiding zonder die met een fout te verwarren

301 Moved Permanently en 308 Permanent Redirect geven een nieuwe permanente locatie. 302 Found en 307 Temporary Redirect geven een tijdelijke locatie. De Location-header van het antwoord duidt het volgende adres aan.

Een verzoek aan http://example.com/ kan bijvoorbeeld 301 met Location: https://example.com/ teruggeven. De browser stuurt vervolgens een nieuw verzoek naar het HTTPS-adres, dat 200 teruggeeft. Dat zijn twee uitwisselingen, geen enkel antwoord met twee codes.

307 en 308 behouden de methode wanneer de browser het verzoek herhaalt. Na 301 of 302 mag een browser POST in GET veranderen. 304 Not Modified is een ander soort 3xx-resultaat: het bevestigt dat een kopie in de cache nog geldig is en stuurt geen vervangende berichtinhoud.

Koppel de code aan de volgende nuttige controle
CodeBetekenis en volgende stap
400 Bad RequestControleer onjuist opgebouwde verzoekgegevens of syntaxis.
401 UnauthorizedZorg voor geldige authenticatie, bijvoorbeeld door in te loggen.
403 ForbiddenDe server weigert toegang; controleer de toestemming.
404 Not FoundControleer het exact opgevraagde pad en de bestandsnaam.
405 Method Not AllowedControleer of het eindpunt die methode accepteert.
429 Too Many RequestsVerlaag het tempo of wacht voordat je het opnieuw probeert.
500 Internal Server ErrorEr is een algemene fout opgetreden binnen de server.
502 Bad GatewayEen tussenliggende server ontving een ongeldig antwoord van een achterliggende server.
503 Service UnavailableDe dienst is niet beschikbaar, vaak tijdelijk.
504 Gateway TimeoutEen tussenliggende server ontving niet op tijd antwoord van een achterliggende server.

Een 503 kan Retry-After bevatten om aan te geven wanneer je het opnieuw kunt proberen. Het verschil tussen 401 en 403 is bijzonder nuttig: ontbrekende of ongeldige authenticatie verschilt van geweigerde toestemming. Een 4xx-code wijst naar de kant van het verzoek voor onderzoek, maar een website kan nog steeds een niet-werkende link of een configuratieprobleem hebben dat de fout veroorzaakt.

Onderzoek de specifieke bron

Stel dat HTML en CSS 200 teruggeven, terwijl images/Logo.PNG 404 teruggeeft. Het werkelijke bestand op de server is images/logo.png. Door de hoofdletters en kleine letters in de link te corrigeren, verwijst die naar het opgeslagen bestand. Een server heeft het mislukte verzoek beantwoord; niet de hele website was onbereikbaar.

Bij een 5xx-antwoord zit de fout in de verwerking aan de serverzijde. Als je de website van iemand anders bekijkt, kun je het later opnieuw proberen of de fout melden. Een ontwikkelaar die verantwoordelijk is voor die server, onderzoekt de code of de achterliggende dienst.

Lees het antwoord, niet alleen het scherm

Een foutmelding in HTML bepaalt de status niet. Een website kan 200 teruggeven met een melding “niet gevonden”; dat heet een soft 404. Omgekeerd kan een echte 404 een verzorgde HTML-foutpagina bevatten. Gebruik het netwerkpaneel om de werkelijke code te lezen.

Als DNS of de verbinding faalt, bestaat er mogelijk helemaal geen HTTP-antwoord. Een door de browser gegenereerde fout heeft dan geen serverstatus om te inspecteren. Een afzonderlijke 404 voor /favicon.ico, het kleine tabbladpictogram dat browsers kunnen opvragen, laat de pagina-inhoud vaak gewoon werken.

Belangrijkste punten

  • Het eerste cijfer deelt een antwoord in een klasse in; de volledige code geeft een specifieker resultaat.
  • Omleidingen vermelden hun volgende locatie in Location; 307 en 308 behouden de methode.
  • 304 betekent dat berichtinhoud uit de cache opnieuw wordt gebruikt, niet dat een nieuwe pagina op een ander adres wordt gedownload.
  • Controleer paden, authenticatie, toestemming en methoden bij de betreffende 4xx-antwoorden.
  • 5xx-antwoorden duiden op een fout in de verwerking aan de serverzijde.
  • De berichtinhoud en status van een foutpagina kunnen verschillende verhalen vertellen.
  • Zonder HTTP-antwoord is er geen HTTP-statuscode.
4

Hoe HTML, CSS en JavaScript samen een pagina vormen

De bestanden die een browser ontvangt, hebben verschillende taken. HTML geeft inhoud betekenis, CSS regelt het uiterlijk en JavaScript voegt gedrag toe. Volg hoe de browser ze combineert tot een actuele pagina en waarom een pagina er goed kan uitzien terwijl een knop niet werkt. Korte codevoorbeelden laten zien wat je in elke taal kunt herkennen en hoe het uitvoeringsmoment van een script een geladen bestand verbindt met de elementen die het nodig heeft.

4.1 Structuur, vormgeving en gedrag in afzonderlijke bestanden

Een pagina combineert inhoud, vormgeving en gedrag. Als je deze taken herkent, kun je kiezen welk bestand je moet inspecteren wanneer je iets wilt veranderen.

HTML beschrijft wat de inhoud is

HTML, HyperText Markup Language, geeft inhoud structuur en betekenis: koppen, alinea's, lijsten, links, afbeeldingen, tabellen en formulieren. Het is een opmaaktaal. HTML beschrijft elementen in plaats van berekeningen uit te voeren of lussen te doorlopen.

In <a href="about.html">About us</a> is de openingstag <a href="about.html">. Het attribuut href geeft de bestemming aan. “About us” is de inhoud en </a> sluit het element. Attributen horen binnen de openingstag.

Sommige elementen zijn lege elementen en hebben geen inhoud of sluitingstag. Zo levert <img src="logo.png" alt="Company logo"> een afbeeldingsadres en een tekstalternatief. <br>, <link> en <meta> zijn andere lege elementen.

Kies elementen om hun betekenis. Gebruik een kop omdat de tekst een sectie inleidt; gebruik CSS als je grotere tekst of extra tussenruimte wilt. Meerdere <br>-elementen zijn een slechte vervanging voor regels voor tussenruimte.

CSS regelt hoe inhoud eruitziet

CSS, Cascading Style Sheets, bepaalt kleur, lettertype, tussenruimte, lay-out en aanpassing aan verschillende schermbreedtes. Lees deze regel:

h1 {
  color: navy;
  font-size: 2rem;
}

De selector, h1, duidt de vorm te geven elementen aan. Elke declaratie koppelt een eigenschap aan een waarde. color: navy; stelt de eigenschap color in op navy. De dubbele punt scheidt eigenschap en waarde; de puntkomma sluit de declaratie af.

JavaScript reageert op handelingen

JavaScript is een programmeertaal. JavaScript reageert op klikken en typen, verandert de actuele pagina, controleert formulierinvoer en vraagt meer gegevens op zonder de hele pagina opnieuw te laden. Het is een andere taal dan Java.

Voor een themaknop kan een script de knop vinden, op klikken wachten en een CSS-klasse aan- of uitzetten:

document.querySelector("button").addEventListener("click", () => {
  document.body.classList.toggle("dark");
});

Het script verandert of de body de klasse dark heeft; CSS bepaalt het uiterlijk van die klasse. Een statische informatiepagina kan met alleen HTML en CSS werken.

Verbind de bestanden in HTML
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title>My first page</title>
    <link rel="stylesheet" href="styles/main.css">
    <script src="scripts/app.js" defer></script>
  </head>
  <body>
    <h1>Hello, web</h1>
    <p>This text is structured by HTML and styled by CSS.</p>
    <button>Switch theme</button>
  </body>
</html>

De <head> bevat informatie over de pagina en links naar bestanden. De <body> bevat de weergegeven inhoud. De browser vraagt styles/main.css en scripts/app.js afzonderlijk van de HTML op. Alle drie zijn plattetekstbestanden die je in een code-editor kunt openen.

Scheiding van verantwoordelijkheden houdt inhoud in HTML, uiterlijk in CSS en gedrag in JavaScript. Eén stijlblad kan veel pagina's vormgeven. Een betekenisvolle kop en een gewone link werken nog steeds als de opmaak of een script niet werkt, terwijl functies die van JavaScript afhankelijk zijn hun script nodig hebben om te werken.

Belangrijkste punten

  • HTML geeft inhoud structuur en betekenis; attributen voegen informatie toe aan openingstags.
  • CSS-selectors kiezen elementen en declaraties stellen eigenschapswaarden in.
  • JavaScript voegt gedrag toe en kan de actuele pagina veranderen.
  • HTML koppelt externe CSS- en JavaScript-bestanden, die elk als afzonderlijke bron worden geladen.
  • Scheid inhoud, vormgeving en gedrag om wijzigingen gemakkelijker te beheren.

4.2 De actuele pagina in de browser

De browser toont HTML niet als een afbeelding van een tekstbestand. Hij zet het bestand om in objecten, bepaalt hun stijlen en posities en tekent het resultaat. JavaScript kan die objecten daarna veranderen.

Bouw een boom uit HTML

De DOM, of Document Object Model, is de actuele boom van elementen en tekst in de browser. Bekijk:

<body><h1>News</h1><p>Hi <a href="/">home</a></p></body>

De body heeft twee kindelementen, h1 en p. De kop bevat “News”. De alinea bevat de tekst “Hi ” en een a-element, dat “home” bevat. De link staat binnen de alinea, niet rechtstreeks binnen de body.

Tijdens het lezen van HTML ontdekt de browser bronnen in elementen zoals <link>, <script> en <img>. Hij vraagt die bronnen op en leest de CSS om de uiteindelijke stijlen van elk element te berekenen. De lay-outberekening bepaalt afmetingen en posities. Bij het tekenen worden de pixels getekend. Deze taken kunnen opnieuw plaatsvinden wanneer inhoud of stijlen veranderen.

Laat scripts uitvoeren wanneer hun elementen bestaan

Een klassiek extern script zonder defer of async onderbreekt het parsen van HTML terwijl het wordt gedownload en uitgevoerd. Als het in de head staat en een knop verderop in de body probeert te vinden, is die knop nog niet opgebouwd. document.querySelector("button") geeft null terug, dus een aanroep van addEventListener op het resultaat levert een fout op.

Script ladenWanneer een klassiek extern script wordt uitgevoerd
Gewone <script src="app.js">Op de plek in het document, waarbij het parsen van HTML wordt onderbroken
Met deferNa het parsen van HTML, in documentvolgorde
Met asyncZodra het script klaar is, zonder gegarandeerde volgorde

Voeg defer toe om een script te downloaden terwijl het parsen van HTML doorgaat en het uit te voeren zodra dat parsen is voltooid. Als je een gewoon script vlak voor </body> zet, kunnen eerdere elementen ook eerst worden opgebouwd. async garandeert niet dat een latere knop bestaat; de download kan vroeg klaar zijn.

De bron-HTML en de actuele DOM kunnen verschillen

Paginabron bekijken toont de afgeleverde HTML. Het elementenpaneel, in Firefox Inspector genoemd, toont de actuele DOM. JavaScript kan inhoud hebben toegevoegd, tekst hebben veranderd of elementen hebben verwijderd. De browser kan ook onjuist opgebouwde HTML hebben hersteld, bijvoorbeeld door een element te sluiten.

Als een kop na een klik verandert, toont het elementenpaneel de gewijzigde tekst. De paginabron toont nog steeds de oorspronkelijk ontvangen HTML. Een wijziging in de DOM kan leiden tot bijgewerkte stijlen, een nieuwe lay-outberekening en opnieuw tekenen zonder een nieuw HTML-document op te halen.

Verschillende fouten hebben verschillende gevolgen

Browsers herstellen HTML volgens vastgelegde regels en slaan CSS-declaraties over die ze niet begrijpen. Een JavaScript-syntaxisfout, zoals een onvoltooide expressie, voorkomt dat het scriptbestand of codeblok start. Een niet-opgevangen uitvoeringsfout beëindigt de huidige uitvoering, waardoor latere regels tijdens die uitvoering worden overgeslagen. Andere scripts en al geregistreerde gebeurtenishandlers kunnen blijven werken. Dit verklaart een pagina waarvan de inhoud en opmaak zichtbaar blijven terwijl één functie faalt.

Browserengines implementeren gemeenschappelijke standaarden: Blink in Chrome en Edge, Gecko in Firefox en WebKit in Safari. Kleine verschillen in de implementatie maken het nuttig om in meer dan één browser te testen. Browsers bouwen ook een toegankelijkheidsboom op uit de structuur van de pagina, zodat schermlezers betekenisvolle elementen en relaties kunnen presenteren.

Belangrijkste punten

  • De DOM is de actuele boom van elementen en tekst die uit HTML wordt opgebouwd.
  • De browser berekent stijlen en lay-out en tekent pixels.
  • Bij klassieke externe scripts wacht defer op het parsen van HTML; async garandeert die volgorde niet.
  • De paginabron toont de afgeleverde HTML; het elementenpaneel toont de huidige DOM.
  • Een syntaxisfout verhindert dat een script start; een niet-opgevangen uitvoeringsfout beëindigt de huidige uitvoering.
  • Betekenisvolle HTML ondersteunt ook de toegankelijkheidsboom.
5

Maak een project en inspecteer wat er gebeurt

Een kleine projectmap en de ontwikkelaarstools van je browser bieden je een praktische manier om te leren. Sla een pagina op, bekijk die via een lokale server en gebruik de browser om de actuele elementen en verzoeken te inspecteren. De panelen beantwoorden verschillende vragen: wat staat er op de pagina, welke stijl krijgt voorrang, welke code is mislukt en welke bron is aangekomen? Doorloop een volledige cyclus van bewerken en controleren, zodat elke wijziging aanwijzingen oplevert die je kunt verifiëren.

5.1 Een editor, een projectmap en een voorbeeldweergave

Een webproject begint als bestanden in een map. Een code-editor helpt je die bestanden te schrijven en met een browser kun je het resultaat bekijken. Als de editor en browser naar dezelfde kopie van het project verwijzen, voorkom je veel verwarrende resultaten.

Kies een code-editor voor platte tekst

Een code-editor slaat plattetekstbestanden op en biedt syntaxisaccentuering, automatisch aanvullen, aanwijzingen bij fouten, een bestandsboom en andere programmeerhulpmiddelen. Tekstverwerkers slaan documentopmaak op en kunnen rechte aanhalingstekens vervangen door gekrulde aanhalingstekens. Daarom zijn ze ongeschikt voor broncode.

Visual Studio Code is een gratis optie voor Windows, macOS en Linux. Andere editors zijn onder meer Sublime Text, Zed en WebStorm. Een online oefenomgeving zoals CodePen is geschikt voor korte experimenten; de vaardigheden voor bestanden en paden kun je in verschillende hulpmiddelen gebruiken.

Maak en open een project

Voor een eerste project in VS Code:

  1. Download en installeer de editor vanaf de officiële website, https://code.visualstudio.com/.
  2. Maak een map zoals web-projects/my-first-site.
  3. Kies Bestand → Map openen en open my-first-site, zodat de bestandsboom het hele project toont.
  4. Maak index.html. Typ in de HTML-modus ! en kies de suggestie van Emmet voor een HTML-basisstructuur.
  5. Sla op met Ctrl+S op Windows/Linux of Cmd+S op macOS.

Gebruik een mapstructuur die past bij de rollen van je bestanden:

my-first-site/
  index.html
  styles/main.css
  scripts/app.js
  images/logo.png

Gebruik namen met kleine letters en koppeltekens, zonder spaties. Houd de extensies zichtbaar zodat index.html niet ongemerkt index.html.txt wordt. Sla tekst op als UTF-8 en neem <meta charset="utf-8"> op in de HTML-head, zodat tekst zoals namen met accenten correct wordt geïnterpreteerd.

Kies een manier om de pagina te bekijken
VoorbeeldweergaveAdres begint metGeschikt gebruik
Bestand rechtstreeks openenfile:///Eenvoudige controles van HTML en CSS
Een lokale webserver gebruikenhttp://localhost:.../Webpaden en functies testen die via HTTP worden aangeboden

Een lokale webserver biedt een map op je eigen computer aan. Die kan http://localhost:5500/ of http://127.0.0.1:3000/ gebruiken; gebruik het adres dat je voorbeeldhulpmiddel geeft. Paden vanaf de hoofdmap hebben een server nodig om bij de hoofdmap van je website te beginnen. Functies zoals JavaScript-modules of gegevens ophalen hebben ook een voorbeeldweergave via HTTP nodig, omdat browsers het gebruik ervan op lokale bestandspagina's beperken.

In VS Code kan de extensie Live Preview van Microsoft of een extensie Live Server een server starten en de voorbeeldweergave na het opslaan vernieuwen. Controleer de uitgever voordat je extensies installeert, omdat extensies code op je computer uitvoeren. Opmaken bij opslaan, regelterugloop en automatisch opslaan kunnen het bewerken gemakkelijker maken; een opmaakprogramma zoals Prettier houdt de opmaak consistent.

Volg de cyclus van bewerken en controleren

Bewerk, sla op, laad opnieuw of laat de voorbeeldweergave vernieuwen, inspecteer het resultaat en verbeter het bestand. Als de browser nog steeds oude inhoud toont, controleer dan de indicator voor niet-opgeslagen wijzigingen in de editor en vergelijk het pad van de voorbeeldweergave met het project dat je hebt geopend. Mogelijk heb je twee mappen met dezelfde paginanaam. Controleer ook de exacte bestandsnaam en extensie; een extensie voor tekstbestanden kan ervoor zorgen dat de browser een bestand niet als HTML-pagina behandelt.

Belangrijkste punten

  • Gebruik een code-editor die plattetekstbestanden opslaat en open de volledige projectmap.
  • Zorg voor overzichtelijke mappen, exacte extensies, bestandsnamen met kleine letters en UTF-8-tekst.
  • Een lokale HTTP-server ondersteunt paden vanaf de hoofdmap van de website en functies die op file:-pagina's worden beperkt.
  • De werkcyclus is bewerken, opslaan, opnieuw laden, inspecteren en verbeteren.

5.2 Inspecteer elementen, stijlen en fouten

De ontwikkelaarstools van de browser laten de pagina zien die je daadwerkelijk gebruikt. Gebruik ze om een stijl te testen, een fout te lezen of de actuele pagina te vergelijken met het bestand in je editor.

Open de tools en kies een paneel

Klik met de rechtermuisknop op een deel van een pagina op een desktopcomputer en kies Inspecteren. Veelgebruikte sneltoetsen zijn F12 of Ctrl+Shift+I op Windows/Linux en Cmd+Option+I op macOS. In Safari moeten eerst de ontwikkelaarsfuncties worden ingeschakeld via Instellingen → Geavanceerd; de tekst van de optie verschilt per Safari-versie.

PaneelWat het toont
Elementen, of Inspector in FirefoxActuele DOM en stijlen van het geselecteerde element
ConsoleJavaScript-berichten, fouten en een invoerveld
Bronnen, of Debugger in FirefoxGeladen bronbestanden en mogelijkheden om scripts te debuggen
NetwerkVerzoeken en hun antwoorden
Zoek een stijl die voorrang krijgt

Inspecteer een kop. Als je de knoop selecteert, wordt de bijbehorende box op de pagina gemarkeerd, inclusief inhoud, binnenruimte, rand en marge. Het stijlenpaneel toont regels en hun bronlocaties, zoals main.css:12. Een doorgestreepte declaratie heeft daar geen effect: mogelijk overschrijft een andere regel die, of is de declaratie ongeldig. Ongeldige declaraties kunnen ook een waarschuwingsindicator hebben.

Open Berekend om de uiteindelijke waarden te zien. Als twee regels verschillende tekstkleuren opgeven, toont de berekende kleur het resultaat. Je kunt tijdelijk een waarde wijzigen, een declaratie uitschakelen of tekst en attributen bewerken om een idee te testen.

Gewone rechtstreekse wijzigingen hebben invloed op de DOM of stijlen in je tabblad. Bij opnieuw laden worden ze vervangen door de geladen bestanden. Om een verbetering te bewaren, maak je dezelfde wijziging in het bronbestand, sla je op en laad je opnieuw. Als je een weergegeven prijs in het elementenpaneel wijzigt, verandert de lokale weergave; de op de server opgeslagen prijs verandert niet.

Lees een consolefout als aanwijzing

Een fout bevat een bericht en meestal een bestand en regel. Bijvoorbeeld:

Uncaught TypeError: Cannot read properties of null
(reading 'addEventListener') at app.js:3

Lees app.js:3 als de bronlocatie die je moet inspecteren. De code probeerde een ontbrekend object te gebruiken. Als een selector naar een knop zocht, controleer dan of de spelling overeenkomt met een element en of het element bestond toen het script werd uitgevoerd. De melding alleen bepaalt niet welke van die oorzaken geldt.

De console toont ook mislukte pogingen om bronnen te laden, zoals een GET die eindigt op 404, en berichten die door console.log() worden afgedrukt. Een scriptfout kan verklaren waarom een knop niet werkt, ook als het bestand met succes is gedownload.

Probeer een kleine expressie en een smal scherm

De console kan JavaScript evalueren. Als je 2 + 3 typt, krijg je 5; document.title geeft de huidige titel terug. De toekenning document.body.style.background = "lightyellow" verandert de achtergrond van de pagina in het tabblad. Plak geen code van iemand die je niet vertrouwt in de console; die code wordt uitgevoerd met toegang tot de pagina en kan een account misbruiken.

Gebruik het pictogram met telefoon en tablet voor de responsieve modus. Kies een smalle breedte zoals 375 CSS-pixels om te zien hoe de lay-out past. Dit simuleert een viewport, niet elk gedrag van een echte telefoon; een controle op een echt apparaat levert extra informatie die je door het formaat te wijzigen niet krijgt.

Belangrijkste punten

  • Het elementenpaneel toont de actuele DOM; Stijlen en Berekend helpen het uiteindelijke uiterlijk te verklaren.
  • Gewone rechtstreekse wijzigingen moeten naar bronbestanden worden gekopieerd om opnieuw laden te overleven.
  • Gebruik consolemeldingen en bronlocaties om mislukte code te onderzoeken.
  • Een fout door een ontbrekend element kan ontstaan door een verkeerde selector of doordat het script te vroeg wordt uitgevoerd.
  • Met de responsieve modus controleer je viewportafmetingen, terwijl echte apparaten zich anders kunnen gedragen.

5.3 Volg het laden in het netwerkpaneel

Het netwerkpaneel toont de afzonderlijke uitwisselingen achter een pagina. Het kan laten zien waarom één afbeelding ontbreekt, waarom opmaak is mislukt of waarom bij opnieuw laden minder gegevens zijn overgedragen dan verwacht.

Registreer voordat je opnieuw laadt

Open de ontwikkelaarstools, kies Netwerk, zorg dat de registratie actief is en laad de pagina opnieuw. Het paneel kan verzoeken die zijn voltooid voordat het werd geopend niet reconstrueren. Als de lijst leeg is, controleer dan de registratie en filters en laad opnieuw.

Rijen tonen de naam of URL, methode, status, het type, de grootte en de tijd van elk verzoek. Het watervaldiagram toont wanneer verzoeken begonnen en hoe hun tijden overlappen. Het helpt je om het laden van een pagina te zien als meerdere opvragingen van bronnen in plaats van als één ondeelbare handeling.

Open een rij voor alle aanwijzingen

Selecteer een verzoek. Headers toont de opgevraagde URL en methode, de antwoordstatus en de verzoek- en antwoordheaders. Voorbeeld toont een bruikbare weergave van ondersteunde antwoordinhoud. Antwoord toont de teruggestuurde inhoud directer, terwijl Timing de bestede tijd uitsplitst naar fasen van het verzoek.

Vergelijk bij een ontbrekende afbeelding het volledige opgevraagde adres met de werkelijke locatie van de afbeelding. Een bestandsnaam alleen kan een verkeerde bovenliggende map verhullen.

Onderzoek een voorbeeld van het laden
NaamMethodeStatusContent-TypeOvergedragen
index.htmlGET200text/html8,2 kB
main.cssGET200text/css3,1 kB
app.jsGET200text/javascript1,4 kB
Hero.jpgGET404text/html0,6 kB
logo.pngGET200image/png18,5 kB

Vijf verzoeken hebben in totaal 31,8 kB overgedragen. Het verzoek om Hero.jpg is mislukt. De kleine HTML-berichtinhoud is de foutpagina van de server, wat het mediatype text/html bij een afbeeldingsverzoek verklaart. Als het werkelijke bestand images/hero.jpg is, verander dan src="images/Hero.jpg" in src="images/hero.jpg" en laad opnieuw om de oplossing te testen.

Filter op Img om je op afbeeldingen te richten, op CSS voor stijlbladen of op een naam om een bepaalde bron te vinden. Als een stijlblad niet werkt, inspecteer dan zowel de status als Content-Type. Zelfs een 200 maakt van een HTML-antwoord geen bruikbare CSS.

Houd omleidingen en cacheantwoorden zichtbaar

Schakel logboek behouden, in Firefox Persist Logs genoemd, in voordat je navigatie volgt die je wilt onderzoeken. Een omleiding van HTTP naar HTTPS kan dan een rij met 301 en de Location-header tonen, gevolgd door een nieuw verzoek met 200.

Een rij met “(memory cache)” of “(disk cache)” betekent dat de browser opgeslagen inhoud heeft hergebruikt. Bij een 304 was er nog steeds een antwoord van de server, maar kwamen alleen headers terug. Dat bespaart een herhaalde overdracht van de berichtinhoud. De kolommen Grootte en Overgedragen beantwoorden daardoor andere vragen dan alleen de grootte van het bestand.

Gebruik Cache uitschakelen zolang de ontwikkelaarstools open zijn om te vergelijken met nieuwe opvragingen. Door netwerkvertraging te simuleren kun je zien welke inhoud bij een tragere verbinding het eerst verschijnt. De namen van snelheidsinstellingen verschillen per browserversie.

Een mislukte rij zonder antwoordstatus kan wijzen op een DNS- of verbindingsfout; Chrome kan net::ERR_NAME_NOT_RESOLVED tonen. Buiten de browser verstuurt curl -I https://example.com een HEAD en drukt het programma de status en headers af om snel een antwoord te controleren.

Belangrijkste punten

  • Open Netwerk en start de registratie voordat je de pagina opnieuw laadt.
  • Inspecteer de volledige URL, status, het mediatype en het antwoord samen.
  • Gebruik filters voor ontbrekende bronnen en logboek behouden voor navigatie of omleidingen.
  • Berichtinhoud in de cache en 304-antwoorden verminderen de overgedragen gegevens op verschillende manieren.
  • Het simuleren van netwerkvertraging toont het gedrag bij een tragere verbinding.
  • Een ontbrekende antwoordstatus kan wijzen op een fout voordat HTTP een antwoord ontving.

Browsers, servers en HTTP: voorbeelden

5 Walkthroughs

1

Volg een pagina van verzoek tot scherm

12 stappen
Volg het laden van een kleine pagina en onderscheid een ontbrekende bron van een mislukte verbinding.
  1. 1
    IntroductieBekijk hoe een pagina wordt opgebouwd

    Een pagina kan de kop al tonen terwijl een afbeelding nog laadt. Om dat te verklaren, volgen we een browser die https://example.net/trails.html opent. We onderscheiden het verzoek van de browser, het antwoord van de server en de extra bronnen die de HTML noemt. Gebruik daarna dezelfde volgorde om een fout te vinden.

  2. 2
    UitlegBepaal wie vraagt en wie antwoordt

    De browser is de client: die begint het verzoek om een bron. De server voert software uit die antwoordt met een opgeslagen bestand of gegenereerde inhoud. Dit zijn rollen. Een laptop kan zowel je browser als een lokale testserver uitvoeren.

    Bij dit bezoek vraagt de browser /trails.html op en geeft de server een antwoord terug waarvan de berichtinhoud HTML bevat.

  3. 3
    AnalogieZie een verzoek als een bestelling

    Stel je de client voor als een klant die aan een toonbank een bestelling plaatst. Het verzoek geeft aan wat de klant wil en het antwoord is wat terugkomt.

    Bij het gewoon ophalen van een HTTP-bron begint de browser de uitwisseling. De server hoeft niet te weten hoe de pagina er op je scherm uitziet; hij levert de gevraagde inhoud die de browser moet interpreteren.

  4. 4
    VoorbeeldTel het document vóór de afbeeldingen

    Stel dat de teruggestuurde HTML één stijlblad, één script en twee afbeeldingen noemt. Begin met het tellen van de HTML zelf: dat is één bron. Tel het stijlblad en het script erbij op voor drie, en daarna de twee afbeeldingen voor vijf.

    Bij een lege broncache zijn vijf verzoeken om bronnen nodig om deze bestanden op te halen. De pagina lijkt één geheel op het scherm, maar de onderdelen reizen afzonderlijk.

  5. 5
    UitdagingVoorspel wat een gedeeltelijk werkende pagina toont

    De HTML, het script en het stijlblad komen aan, maar een van de twee afbeeldingsverzoeken mislukt. Moet de hele pagina verdwijnen? Leg uit.

    ---reveal---

    Nee. De browser kan de ontvangen bronnen weergeven terwijl de afbeelding waarvan het verzoek mislukte ontbreekt. Elke bron heeft een afzonderlijke uitwisseling. Succes voor de HTML garandeert geen succes voor de afbeelding en een mislukte afbeelding wist de HTML niet.

  6. 6
    UitlegVind de host voordat je het pad opvraagt

    Bij https://example.net/trails.html herkent de browser de host example.net en het pad /trails.html. DNS levert een IP-adres voor die host, tenzij er al een recent antwoord in de cache staat.

    De browser maakt vervolgens verbinding met die bestemming. Een naamopzoeking levert het adres; de opzoeking downloadt niet de HTML of de gekoppelde afbeeldingen.

  7. 7
    KernpuntBeveilig de verbinding

    Omdat het schema https is, stelt de browser TLS-beveiliging in vóór de gewone HTTP-uitwisseling. Het certificaat van de server maakt het mogelijk zijn identiteit voor het domein te controleren.

    Dit beschermt berichten tegen lezen of wijzigen op het netwerk. Een geldig certificaat en een beveiligde verbinding bewijzen niet dat een website eerlijk handelt of eerlijke beweringen doet.

  8. 8
    VoorbeeldBouw de pagina op terwijl de bestanden aankomen

    De browser verstuurt zijn verzoek en ontvangt het HTML-antwoord. Bij het lezen van de HTML vindt hij de adressen van de CSS, het script en de afbeeldingen. De browser vraagt die bronnen op en kan de downloads laten overlappen.

    Hij bouwt het document op, past stijlen toe, voert scripts uit en tekent de pagina. Tekst kan als eerste verschijnen, waarna de afbeeldingen volgen. De browser wacht niet op elk bestand voordat hij met alle weergavetaken begint.

  9. 9
    UitdagingMaak onderscheid tussen geen adres en geen bestand

    Eén bezoek mislukt met een fout bij het omzetten van de naam en zonder antwoordstatus. Een ander geeft 404 terug voor /trails.html. Hebben beide fouten dezelfde fase bereikt?

    ---reveal---

    Nee. Bij het eerste bezoek werd het adres van de host niet gevonden, voordat een HTTP-antwoord aankwam. Het tweede bereikte een server die antwoordde maar de bron niet vond. In beide gevallen kan een browserfoutpagina verschijnen, dus inspecteer de netwerkaanwijzingen.

  10. 10
    VerbandHergebruik eerder werk bij een volgend bezoek

    Bij een later bezoek kent de browser mogelijk het adres van de host al en heeft hij nog geldige kopieën van sommige bestanden. DNS-caching voorkomt een nieuwe naamopzoeking; caching van bronnen voorkomt enkele herhaalde downloads.

    Als een opgeslagen bron moet worden gecontroleerd, kan de server antwoorden met 304 Not Modified. Die uitwisseling vindt nog steeds plaats, maar bevat geen nieuwe berichtinhoud van de bron omdat de opgeslagen inhoud bruikbaar is.

  11. 11
    UitdagingVind de fout in de volledige reeks

    De HTML van een pagina geeft 200 terug, maar het CSS-verzoek geeft 404 terug. De pagina toont tekst zonder opmaak. Welke stap is mislukt en wat moet je controleren?

    ---reveal---

    Het eerste paginaverzoek is geslaagd; een later verzoek om een bron is mislukt. Vergelijk de opgeloste URL van het stijlblad met de werkelijke locatie en bestandsnaam. De DNS-instelling opnieuw uitvoeren is geen nuttige eerste controle, omdat de server het CSS-verzoek al heeft beantwoord.

  12. 12
    SamenvattingGebruik de volgorde om een controle te kiezen

    Lees het laden als een reeks stappen: herken de host, vind het adres, maak verbinding, verstuur een verzoek, ontvang het antwoord en bouw de pagina op. Bedenk dat de HTML meestal meer verzoeken in gang zet.

    Als iets mislukt, bepaal dan eerst welke fase is mislukt. Controleer daarna de betreffende host, het pad, het antwoord of de browserhandeling.

2

Lees een URL en volg de links

14 stappen
Onderscheid adresonderdelen, controleer wie een domein beheert en bepaal waar paden door een kleine website naartoe leiden.

Sla deze les op om elke Walkthrough stap voor stap te volgen.

  1. 1
    IntroductieGeef elk adresonderdeel een taak
  2. 2
    VoorbeeldOnderscheid de bestemming van de bron
  3. 3
    UitlegOnderscheid invoer van een locatie op een pagina
  4. 4
    UitdagingVerander alleen het fragment
  5. 5
    UitlegLees een host vanaf rechts
  6. 6
    VoorbeeldInspecteer een misleidend gelijkende host
  7. 7
    UitdagingLeg uit wat registratie oplevert
  8. 8
    UitlegKies het beginpunt van de link
  9. 9
    VoorbeeldGa omhoog vanuit een geneste map
  10. 10
    VoorbeeldProbeer een ander geldig beginpunt
  11. 11
    UitdagingVind een nabijgelegen pagina
  12. 12
    TipNeem de schrijfwijze van het pad precies over
  13. 13
    UitdagingCombineer de controles van host en pad
  14. 14
    SamenvattingLees voordat je volgt
3

Lees een uitwisseling en kies de volgende controle

16 stappen
Doorloop verzoeken, cacheantwoorden, omleidingen en aanwijzingen uit statuscodes.

Sla deze les op om elke Walkthrough stap voor stap te volgen.

  1. 1
    IntroductieGebruik de berichten als aanwijzingen
  2. 2
    VoorbeeldLees de eerste regel en de host
  3. 3
    UitlegKoppel een methode aan de handeling
  4. 4
    VoorbeeldLees een kleine ingediende berichtinhoud
  5. 5
    UitdagingVoorspel wat een herhaalde inzending doet
  6. 6
    UitlegOnderscheid status, headers en berichtinhoud
  7. 7
    VoorbeeldVerbind afzonderlijke verzoeken met een cookie
  8. 8
    VoorbeeldGebruik eerst een nog geldige kopie
  9. 9
    VoorbeeldControleer nadat de geldigheid is verlopen
  10. 10
    UitdagingVerklaar een kleine overdracht
  11. 11
    UitlegGebruik de klasse om het probleem af te bakenen
  12. 12
    VoorbeeldMaak onderscheid tussen identiteit, toestemming en pad
  13. 13
    VoorbeeldVolg een nieuwe locatie
  14. 14
    UitdagingLees de foutklasse nauwkeurig
  15. 15
    UitdagingLees het antwoord achter de naam
  16. 16
    SamenvattingCombineer de berichtonderdelen
4

Zet bronbestanden om in een actuele pagina

12 stappen
Volg de taken van HTML, CSS en JavaScript en herstel daarna een script dat te vroeg wordt uitgevoerd.

Sla deze les op om elke Walkthrough stap voor stap te volgen.

  1. 1
    IntroductieVolg een knop van opmaakcode tot gedrag
  2. 2
    VoorbeeldGeef de inhoud betekenis
  3. 3
    VoorbeeldVoeg een vormgevingsregel toe
  4. 4
    UitlegReageer op de klik
  5. 5
    UitdagingKies het bestand voor de wijziging
  6. 6
    UitlegBouw de actuele boom op
  7. 7
    VoorbeeldTe vroeg uitvoeren en niets vinden
  8. 8
    VoorbeeldWacht op het geparste document
  9. 9
    KernpuntVergelijk de bron met het actuele resultaat
  10. 10
    UitdagingVerklaar een zichtbare pagina met een niet-werkende knop
  11. 11
    UitdagingCombineer aankomst, uitvoeringsmoment en actuele DOM
  12. 12
    SamenvattingVerbind elke fase met het resultaat
5

Stel een pagina in, bekijk, inspecteer en verbeter die

15 stappen
Gebruik een overzichtelijk project en drie browserpanelen om een blijvende correctie in de broncode te controleren.

Sla deze les op om elke Walkthrough stap voor stap te volgen.

  1. 1
    IntroductieMaak één wijziging die je kunt controleren
  2. 2
    UitlegOpen een project in een code-editor
  3. 3
    VoorbeeldBekijk de pagina via HTTP
  4. 4
    UitdagingZoek waarom een wijziging lijkt te ontbreken
  5. 5
    VoorbeeldInspecteer het element dat je wilt veranderen
  6. 6
    VoorbeeldTest een stijl en sla die daarna op
  7. 7
    UitdagingZoek aanwijzingen voor een knop die niet reageert
  8. 8
    TipControleer een smalle viewport
  9. 9
    UitlegLeg de volgende laadactie vanaf het begin vast
  10. 10
    VoorbeeldLees de volledige URL van een mislukte afbeelding
  11. 11
    VoorbeeldControleer het resultaat van de correctie in de broncode
  12. 12
    KernpuntOnderscheid hergebruik van een nieuwe overdracht van berichtinhoud
  13. 13
    UitdagingInterpreteer een omleiding en de bestemming
  14. 14
    UitdagingCombineer de controles in editor en browser
  15. 15
    SamenvattingRond de cyclus af in de opgeslagen broncode

Browsers, servers en HTTP: oefenvragen

40 Oefenvragen in 4 sets

Set 1: Volg adressen en verzoeken om bronnen10 Oefenvragen

Vraag 1 van 10

Een browser vraagt een wandelkaart op en een programma stuurt de afbeelding terug. Welke rol vervult het programma dat de afbeelding terugstuurt?
  1. De clientrol, omdat het een afbeelding verwerkt.
  2. De cacherol, omdat het een verzoek verwerkt.
  3. De serverrol, omdat het het verzoek beantwoordt.
  4. De browserrol, omdat het een bron levert.
Toon antwoordVerberg antwoord
Antwoord: C
Het programma vervult de serverrol omdat het het verzoek om een bron van de client beantwoordt. De browser is de client die de uitwisseling begon; het verwerken van een afbeelding bepaalt de rol niet. Client en server beschrijven wat elke deelnemer in dit gesprek doet, ook wanneer beide programma's op één computer draaien.

Vraag 2 van 10

Een nieuwe pagina heeft één HTML-bestand, één stijlblad, twee scripts en drie afbeeldingen, allemaal op één host. De DNS-cache en de broncache van de browser zijn aanvankelijk leeg. Hoeveel verzoeken om bronnen zijn nodig om deze bestanden op te halen?
  1. Zeven verzoeken om bronnen.
  2. Zes verzoeken om bronnen.
  3. Acht verzoeken om bronnen.
  4. Eén verzoek om een bron.
Toon antwoordVerberg antwoord
Antwoord: A
Tel elke bron, inclusief de eerste HTML: één pagina, één stijlblad, twee scripts en drie afbeeldingen vormen samen zeven verzoeken. De DNS-opzoeking vindt het adres van de host, maar is geen extra HTTP-verzoek om een bron. Als je alleen de gekoppelde bestanden telt, mis je het document dat ze als eerste noemt.

Vraag 3 van 10

Wat is in https://learn.example.org:9443/notes.html?unit=4#tasks het pad van het verzoek?
  1. learn.example.org:9443
  2. /notes.html?unit=4#tasks
  3. unit=4
  4. /notes.html
Toon antwoordVerberg antwoord
Antwoord: D
Het pad is /notes.html, het onderdeel na de host en de optionele poort dat de bron aanduidt. De query begint bij ? en het fragment bij #, dus geen van beide hoort bij het pad. Het HTTP-verzoekdoel kan de query bevatten en omvat dan meer dan alleen het pad.

Vraag 4 van 10

Een bericht linkt naar https://billing.example.com.check.example.net/pay. Welk geregistreerd domein beheert deze host?
  1. example.com
  2. example.net
  3. check.example.net
  4. billing.example.com
Toon antwoordVerberg antwoord
Antwoord: B
Lees de host vanaf rechts: .net is de publieke uitgang en example.net is het geregistreerde domein. De labels check, com, example en billing staan daaronder. Het bekende example.com aan de linkerkant betekent niet dat deze host via dat geregistreerde domein wordt beheerd.

Vraag 5 van 10

Een website verhuist van de hoofdmap van https://example.org/ naar https://example.org/course/, met behoud van de mapstructuur. Op course/lessons/start.html werkt ../images/map.png, maar /images/map.png niet; de kaart staat op course/images/map.png. Wat verklaart het verschil?
  1. De link vanaf de hoofdmap behoudt de oude host; de andere link verandert van host.
  2. Beide links blijven binnen lessons; de werkende kopie moet uit de cache komen.
  3. De relatieve link gaat omhoog naar course; de eerste schuine streep begint bij de hoofdmap van de host.
  4. De relatieve link begint bij de hoofdmap van de host; de eerste schuine streep blijft in course.
Toon antwoordVerberg antwoord
Antwoord: C
De map van de huidige pagina is /course/lessons/, dus ../ gaat omhoog naar /course/ voordat het images/ ingaat. Een schuine streep aan het begin vervangt het huidige pad en vraagt /images/map.png op vanuit de hoofdmap van de host. Door de mappenboom te verplaatsen bleef de relatieve verhouding behouden, maar veranderde de locatie onder de hoofdmap van de website.

Vraag 6 van 10

Een formulier maakt een nieuwe inschrijving voor een evenement aan. Welke HTTP-methode is bedoeld om de gegevens ter verwerking in te dienen?
  1. HEAD
  2. POST
  3. GET
  4. OPTIONS
Toon antwoordVerberg antwoord
Antwoord: B
POST is bedoeld om gegevens in te dienen die de server moet verwerken. Dat past bij het aanmaken van een inschrijving. GET is bedoeld om bronnen op te halen en hoort niet om die toestandswijziging te vragen. Door formuliergegevens in een URL te plaatsen wordt een leesmethode niet geschikt om een nieuwe registratie aan te maken.

Vraag 7 van 10

De HTML van een website geeft 200 terug. Het verzoek om een diagram geeft 404 terug. Wat bewijzen die aanwijzingen?
  1. De server was voor beide verzoeken onbereikbaar.
  2. De browser ontving de pagina en het diagram niet.
  3. Het diagram mislukte omdat de gebruiker authenticatie nodig heeft.
  4. De server antwoordde maar vond het gevraagde diagram niet.
Toon antwoordVerberg antwoord
Antwoord: D
Een 404 is een HTTP-antwoord dat aangeeft dat de gevraagde bron niet is gevonden. De geslaagde HTML-uitwisseling en de mislukte diagramuitwisseling staan los van elkaar, dus de pagina kan zonder dat diagram worden weergegeven. Een onbereikbare server zou het 404-antwoord niet hebben geleverd.

Vraag 8 van 10

De tekst van een kop is correct, maar er moet meer ruimte boven komen. Welke soort wijziging in de broncode past daarbij?
  1. Wijzig een declaratie voor tussenruimte in CSS.
  2. Wijzig de tekst van de kop in HTML.
  3. Wijzig de klikhandler in JavaScript.
  4. Voeg regeleinden boven de kop toe.
Toon antwoordVerberg antwoord
Antwoord: A
CSS regelt de vormgeving, waaronder de ruimte rond een kop. De bestaande kop kan zijn semantische rol en tekst behouden terwijl een stijldeclaratie de positie verandert. Als je regeleinden in de HTML toevoegt om tussenruimte na te bootsen, meng je een visuele aanpassing met de inhoudsstructuur van het document.

Vraag 9 van 10

In een voorbeeldweergave die je opent door op index.html te dubbelklikken, laadt een afbeelding op /images/compass.png niet. Het project bevat dat bestand in de map images. Welke wijziging in de voorbeeldweergave zorgt ervoor dat de eerste schuine streep naar de hoofdmap van de website verwijst?
  1. Open dezelfde pagina met een teksteditor.
  2. Geef de afbeelding een naam met hoofdletters.
  3. Bied het project via een lokale HTTP-server aan.
  4. Verplaats de afbeelding naar de browsercache.
Toon antwoordVerberg antwoord
Antwoord: C
Een lokale server geeft het project een hoofdmap voor de HTTP-website, zodat /images/compass.png vanaf die hoofdmap wordt opgelost. Een rechtstreekse file:-voorbeeldweergave interpreteert een schuine streep aan het begin vanuit de hoofdmap van het bestandssysteem in plaats van de projectmap. Dat de afbeelding binnen het project bestaat, verandert dat beginpunt niet.

Vraag 10 van 10

Je opent Netwerk nadat een pagina volledig is geladen en de lijst bevat geen van de oorspronkelijke verzoeken. Hoe kun je de eerste laadactie vastleggen?
  1. Houd de registratie actief en laad opnieuw met Netwerk open.
  2. Inspecteer de kop en schakel de CSS-regels ervan uit.
  3. Bekijk de paginabron en laat de pagina onveranderd.
  4. Sluit de ontwikkelaarstools en laad opnieuw voordat je ze opent.
Toon antwoordVerberg antwoord
Antwoord: A
Netwerk moet open zijn en registreren wanneer de verzoeken plaatsvinden. Als je opnieuw laadt met actieve registratie, worden het document en de bronnen die het opvraagt vastgelegd. Het paneel achteraf openen maakt de al voltooide uitwisselingen niet opnieuw aan; het paneel sluiten vóór een volgende laadactie herhaalt hetzelfde registratieprobleem.
Set 2: Lees berichten en volg mislukte verzoeken om bronnen10 Oefenvragen

Sla deze les op om elk antwoord te zien en elke set te oefenen.

Vraag 1 van 10

Een bibliotheekserver verstuurt bij elk verzoek hetzelfde opgeslagen bestand hours.html, maar voert een programma uit om een antwoord op een zoekopdracht in de catalogus samen te stellen. Hoe worden de twee antwoorden ingedeeld?
  1. Beide zijn dynamisch omdat browsers ze opvragen.
  2. Openingstijden zijn dynamisch; het zoekantwoord is statisch.
  3. Beide zijn statisch omdat beide HTML kunnen bevatten.
  4. Openingstijden zijn statisch; het zoekantwoord is dynamisch.
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 2 van 10

Een browser opent https://example.net/find?q=trees#results. Welk verzoekdoel gebruikt een gewoon HTTP/1.1-verzoek?
  1. /find?q=trees#results
  2. /find?q=trees
  3. example.net/find
  4. /find#results
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 3 van 10

Een pagina staat op https://example.com/help/setup/linux.html. Het stijlblad staat op https://example.com/assets/theme.css. Welk relatief pad leidt ernaartoe?
  1. ../assets/theme.css
  2. assets/theme.css
  3. ../../assets/theme.css
  4. ../../help/assets/theme.css
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 4 van 10

Een antwoord bevat Content-Type: application/json. Wat beschrijft deze header?
  1. Het formaat van de antwoordinhoud.
  2. De methode waarmee het verzoek is gestart.
  3. De naam van de server op de bestemming.
  4. Het tijdstip waarop het cachebestand verloopt.
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 5 van 10

Een beveiligd rapport antwoordt vóór het inloggen met 401. Na geldig inloggen antwoordt het met 403. Wat is er veranderd?
  1. Het rapport werd aangemaakt en daarna permanent omgeleid.
  2. Het rapport vereiste eerst identificatie en weigerde daarna nog steeds toegang.
  3. De server faalde eerst en daarna werd het rapport niet gevonden.
  4. Het rapport vereiste eerst toestemming en daarna identificatie.
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 6 van 10

Een browser verstuurt een POST naar /join; een 302 leidt om naar /register. De browser stuurt daar vervolgens een GET en ontvangt 405. /register accepteert POST met de oorspronkelijke berichtinhoud en de verhuizing is tijdelijk. Welke wijziging van de omleiding behoudt de bedoelde inzending?
  1. Gebruik 301 voor een permanente POST-omleiding.
  2. Gebruik 304 om het registratieantwoord te hergebruiken.
  3. Gebruik 308 om de verhuizing als tijdelijk te beschrijven.
  4. Gebruik 307 om de POST-methode en berichtinhoud te behouden.
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 7 van 10

Een script verandert na het laden een kop op een pagina. Waar kun je de bijgewerkte tekst van het element inspecteren?
  1. De statusregel van het oorspronkelijke antwoord.
  2. Het DNS-record voor de host in de cache.
  3. De actuele DOM in het elementenpaneel.
  4. De oorspronkelijke HTML bij Paginabron bekijken.
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 8 van 10

Een pagina die als HTML is bedoeld, is opgeslagen als home.html.txt. Welke correctie van de bestandsnaam maakt er een HTML-bronbestand van?
  1. home.html
  2. home.txt
  3. home.html.txt
  4. home-html.txt
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 9 van 10

Je test een alineakleur in het elementenpaneel en bent tevreden met het resultaat. Na opnieuw laden keert de oude kleur terug. Hoe kun je de geteste kleur behouden?
  1. Wijzig de weergegeven tekst en sluit het tabblad.
  2. Herhaal de wijziging na elke laadactie in het elementenpaneel.
  3. Sla de oorspronkelijke HTML op zonder CSS te bewerken.
  4. Bewerk de CSS-broncode, sla op en laad opnieuw.
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 10 van 10

Op https://example.org/journal/entry.html vraagt een link styles/site.css op. Netwerk toont 200, Content-Type: text/html en een HTML-terugvalpagina. De echte CSS staat op /styles/site.css. Welke correctie in de broncode en welke controle verhelpen de fout?
  1. Behoud het pad en controleer of de status 200 blijft.
  2. Gebruik /styles/site.css en controleer de CSS-inhoud en het mediatype.
  3. Gebruik journal/styles/site.css en controleer de terugval-HTML.
  4. Behoud het pad en geef de teruggestuurde HTML een .css-naam.
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Set 3: Verbind paginagedrag met netwerkaanwijzingen10 Oefenvragen

Sla deze les op om elk antwoord te zien en elke set te oefenen.

Vraag 1 van 10

Een browser heeft een nog geldig DNS-antwoord voor een host in de cache, maar geen paginabronnen in de cache. Wat kan de browser hergebruiken wanneer hij daar een pagina opent?
  1. De HTML-berichtinhoud, zonder de bron op te vragen.
  2. Het certificaat, als bewijs dat de website-eigenaar eerlijk is.
  3. Het adres van de host, zonder een nieuwe DNS-opzoeking.
  4. De antwoordstatus, zonder contact met de server.
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 2 van 10

Twee links beweren hetzelfde helpcentrum te openen: https://help.example.com/topic en https://example.com.help.example.org/topic. Beide hebben geldige HTTPS-certificaten. Welke vergelijking geeft aan welke domeinen ze beheren en wat de certificaten betekenen?
  1. Beide horen bij example.com; certificaten bevestigen een gezamenlijke eigenaar.
  2. Beide horen bij example.org; de linkerlabels selecteren de helppagina's.
  3. De hosts hebben alleen verschillende eigenaren als één certificaat ongeldig is.
  4. Hun geregistreerde domeinen verschillen; geldige certificaten bewijzen geen gezamenlijke eigenaar.
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 3 van 10

Een pagina op https://example.net/reference/start.html gebruikt ../about.html. Naar welk adres lost de browser dit op?
  1. https://example.net/about.html
  2. https://example.net/reference/about.html
  3. https://example.net/reference/start.html/about.html
  4. https://example.net/reference/../reference/about.html
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 4 van 10

Een inlogformulier gebruikt POST via gewoon HTTP. Een ontwikkelaar zegt dat het wachtwoord versleuteld is omdat het niet in de adresbalk staat. Welke wijziging biedt bescherming tijdens het transport?
  1. Behoud HTTP en hernoem de POST-velden.
  2. Gebruik HTTPS voor de formulierinzending.
  3. Gebruik GET zodat het wachtwoord query-invoer wordt.
  4. Voeg een fragment met het wachtwoord toe.
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 5 van 10

Bij opnieuw laden heeft een afbeelding een nog geldig cacheantwoord en wordt een verlopen script met 304 gevalideerd. Een gewijzigd stijlblad geeft 200 terug met 5 kB berichtinhoud. Een HTML-pagina die niet in de cache staat, geeft 9 kB berichtinhoud terug. Hoeveel gegevens aan berichtinhoud gaan er over het netwerk, zonder de headers mee te tellen?
  1. 5 kB aan berichtinhoud van bronnen.
  2. 9 kB aan berichtinhoud van bronnen.
  3. 14 kB aan berichtinhoud van bronnen.
  4. 0 kB aan berichtinhoud van bronnen.
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 6 van 10

Een knop moet bij een klik een klasse toevoegen en die klasse moet de kleuren van de pagina veranderen. Hoe verdeel je de twee taken?
  1. HTML verwerkt de klik; JavaScript definieert kleurdeclaraties.
  2. CSS verwerkt de klik; HTML verandert de klassewaarde.
  3. HTML definieert kleuren; CSS bewerkt de actuele klassewaarde.
  4. JavaScript verandert de klasse; CSS bepaalt het uiterlijk.
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 7 van 10

Een klassiek extern script in de head laadt met 200 en geeft een fout bij het aanroepen van addEventListener op null. De selector komt exact overeen met een knop verderop in de body en de uiteindelijke DOM bevat die knop. Welke wijziging verhelpt het getoonde timingprobleem?
  1. Voeg defer toe zodat het script na het parsen van HTML wordt uitgevoerd.
  2. Voeg async toe zodat het script altijd na de knop wordt uitgevoerd.
  3. Verplaats de CSS van de knop boven het scriptverzoek.
  4. Verander het URL-fragment van het script in de knop-ID.
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 8 van 10

Je slaat een kop op in projects/atlas/index.html, maar het adres van de voorbeeldweergave verwijst naar projects/atlas-copy/index.html. Na opnieuw laden zie je nog steeds de oude kop. Wat moet je eerst op elkaar afstemmen?
  1. De lettergrootte en de viewportbreedte.
  2. De netwerksnelheid en het servercertificaat.
  3. Het bekeken project en het bewerkte project.
  4. De afbeeldingsextensie en de stijlbladselector.
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 9 van 10

Welke weergave in de ontwikkelaarstools toont de uiteindelijke kleurwaarde die op een geselecteerde kop wordt toegepast?
  1. De methodekolom in Netwerk.
  2. Het tabblad met berekende stijlen.
  3. Het tabblad Paginabron bekijken.
  4. De geschiedenis van de console.
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 10 van 10

Een URL leidt tijdens navigatie om en je wilt zowel de oorspronkelijke antwoordrij als het verzoek aan de bestemming zichtbaar houden. Welke instelling in Netwerk moet je eerst inschakelen?
  1. Schakel alle CSS-declaraties uit.
  2. Schakel naar de responsieve apparaatmodus.
  3. Open alleen het filter voor afbeeldingen.
  4. Schakel Logboek behouden bij navigatie in.
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Set 4: Onderzoek een volledige lokale pagina10 Oefenvragen

Sla deze les op om elk antwoord te zien en elke set te oefenen.

Vraag 1 van 10

De HTML van een pagina komt van www.example.org, maar de foto's staan op adressen bij photos.example.net. Waar vraagt de browser de foto's op?
  1. Bij www.example.org, omdat die host de HTML stuurde.
  2. Bij photos.example.net, via het adres van elke foto.
  3. In de huidige paginamap op www.example.org.
  4. Bij de host die het stijlblad heeft geleverd.
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 2 van 10

HTML en CSS van www.example.com geven 200 terug. Een logo-URL gebruikt cdn.example.net en de rij toont net::ERR_NAME_NOT_RESOLVED zonder status. Welk deel van de laadactie is mislukt en waarom kan de tekst toch verschijnen?
  1. Het logopad ontbrak; de host gaf 404 terug terwijl de pagina laadde.
  2. De logohost was verbonden maar weigerde de afbeelding; de pagina laadde apart.
  3. De opzoeking van de paginahost mislukte; bronnen uit de cache leverden de 200-antwoorden.
  4. De naamopzoeking van de logohost mislukte; de paginabronnen zijn geslaagd.
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 3 van 10

Welk URL-onderdeel begint na # en wordt lokaal door de browser afgehandeld?
  1. De querystring.
  2. Het poortnummer.
  3. Het fragment.
  4. De hostnaam.
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 4 van 10

Een ontwikkelaar registreert een domein maar heeft nog geen paginabestanden vanaf een server beschikbaar gemaakt. Welke extra taak is nodig voor een website?
  1. Host bronnen op een server en stel de naam in om die te bereiken.
  2. Voeg DNS-records toe maar bewaar paginabestanden in een niet-aangeboden lokale map.
  3. Voeg www toe en verleng de naam zonder serversoftware uit te voeren.
  4. Gebruik localhost als openbare naam en bied de bestanden niet aan.
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 5 van 10

Een formulier verstuurt een POST naar /comments. Een 307 leidt om naar /store, dat alleen POST accepteert, één reactie per inzending aanmaakt en 201 teruggeeft. De gebruiker herhaalt de oorspronkelijke inzending één keer; de browser volgt de omleiding opnieuw. Welke methoden bereiken /store en hoeveel reacties worden aangemaakt?
  1. Twee GET-verzoeken; er worden geen reacties aangemaakt.
  2. Eén POST, daarna GET; er wordt één reactie aangemaakt.
  3. Twee POST-verzoeken; er worden twee reacties aangemaakt.
  4. Twee POST-verzoeken; er wordt één reactie aangemaakt.
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 6 van 10

Een inlogantwoord bevat Set-Cookie: session=xyz. De browser slaat de cookie op en het volgende verzoek valt binnen het toepassingsbereik van de cookie. Met welke verzoekheader kan de server dat verzoek aan de opgeslagen sessie koppelen?
  1. Set-Cookie: session=xyz
  2. Location: session=xyz
  3. Content-Type: session=xyz
  4. Cookie: session=xyz
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 7 van 10

Een pagina toont “Dat artikel is niet gevonden”, maar de documentrij heeft status 200. Hoe moet je dit resultaat beschrijven?
  1. Een soft 404: inhoud over niet vinden met een successtatus.
  2. Een DNS-fout: de server stuurde helemaal geen antwoord.
  3. Een 403: de tekst toont dat de lezer geen toestemming heeft.
  4. Een omleiding: de browser moet van adres zijn veranderd.
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 8 van 10

Een pagina gebruikt <h1> alleen om een gewone opmerking groter te maken. Welke wijziging geeft de opmerking een passende rol en behoudt de controle over de grootte?
  1. Behoud de kop en plaats er meerdere regeleinden voor.
  2. Gebruik een alinea voor de opmerking en stel de grootte in met CSS.
  3. Behoud de kop en geef die het uiterlijk van een alinea.
  4. Gebruik een lager kopniveau voor de opmerking.
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 9 van 10

Twee klassieke externe scripts staan in de head: helpers.js definieert een functie en page.js gebruikt die en een knop verderop in de body. Beide gebruiken momenteel async en de fouten verschillen met de downloadsnelheid. Welke wijziging bij het laden maakt beide afhankelijkheden in de juiste volgorde beschikbaar?
  1. Behoud async op beide en plaats page.js als eerste.
  2. Verwijder beide attributen en plaats page.js als eerste.
  3. Voeg defer aan beide toe en behoud async op helpers.js.
  4. Gebruik defer op beide, verwijder async en plaats helpers.js als eerste.
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 10 van 10

Stijlen toont color: green doorgestreept en een actieve color: maroon; Berekend meldt maroon. Je verandert de actieve waarde in teal in de ontwikkelaarstools, maar na opnieuw laden keert maroon terug. Wat tonen beide waarnemingen en hoe behoud je teal?
  1. Green is ongeldig; verwijder elke toepasselijke regel van de pagina.
  2. Teal is opgeslagen; wis CSS-filters om de bronwijziging te zien.
  3. Maroon kreeg voorrang; sla teal op in de bronregel die die waarde levert.
  4. Berekend is verouderd; blijf de doorgestreepte declaratie green wijzigen.
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Kom je niet uit je eigen opgave? Huiswerkhulp

Kernbegrippen

73 Kernbegrippen, elk met een definitie

A

absolute URL
Een absolute URL bevat zelf een schema en host, zodat de bestemming onafhankelijk van het adres van de huidige pagina kan worden bepaald.
De link https://example.net/help.html bereikt die host zowel vanaf een startpagina als vanuit een bericht in een geneste map.
antwoord met toegangsweigering
Een antwoord met toegangsweigering heeft status 403, wat betekent dat de server het verzoek heeft begrepen maar de gevraagde toegang weigert.
Een account kan ingelogd zijn en toch 403 ontvangen wanneer het geen toestemming heeft om een beveiligde bron te openen.
attribuut
Een attribuut geeft extra informatie in een HTML-openingstag, zoals href voor de bestemming van een link of src voor een afbeeldingsbron.
In <a href="team.html">Team</a> vertelt het attribuut href de browser waar de link naartoe gaat.
authenticatie
Authenticatie controleert de identiteit van degene die een verzoek doet, vaak met inloggegevens of een sessie, voordat beveiligde inhoud wordt geleverd.
Een 401-antwoord kan betekenen dat het verzoek geldige authenticatie nodig heeft voordat de server het vervult.

B

berekende stijlen
Berekende stijlen zijn de resulterende CSS-waarden die de browser voor een element bepaalt na rekening te hebben gehouden met toepasselijke regels en overerving.
Het tabblad Berekend toont de resulterende kleur van de kop wanneer meerdere toepasselijke regels kleuren opgeven.
berichtinhoud
De berichtinhoud is de inhoud die na de headers van een HTTP-bericht wordt meegestuurd, zoals ingediende formuliervelden of de bytes van een teruggestuurde afbeelding.
Een POST kan accountgegevens in de berichtinhoud van het verzoek meenemen, terwijl een GET-antwoord HTML als berichtinhoud kan bevatten.
bovenliggende map
Een bovenliggende map is de map die een andere map bevat; ../ gaat één niveau omhoog tijdens het oplossen van een relatief webpad.
Vanuit /notes/week/page.html bereikt ../index.html na één stap omhoog /notes/index.html.
bron
Een bron is iets wat door een adres wordt aangeduid, zoals een HTML-pagina, afbeelding, stijlblad, script, lettertype of stukje gegevens.
Een pagina en de vier afbeeldingen ervan zijn vijf bronnen, ook al presenteert de browser ze samen.

C

cache
Een cache is een opslagplaats voor kopieën van eerder opgehaalde gegevens die opnieuw kunnen worden gebruikt, waardoor minder herhaalde downloads of opzoekingen nodig zijn.
Een nog geldig logo in de cache kan bij je volgende bezoek verschijnen zonder de berichtinhoud van dezelfde afbeelding opnieuw te downloaden.
certificaat
Een certificaat levert identiteitsinformatie waarmee een browser kan controleren of een server bevoegd is het gevraagde domein aan te bieden.
Een geldig certificaat ondersteunt de controle van een beveiligde verbinding, maar ook een oneerlijke website kan er een hebben.
client
Een client is een programma of apparaat dat een verzoek aan een ander programma begint, zoals een browser die een pagina bij een webserver opvraagt.
Als je een link volgt, vervult je browser de rol van client en vraagt die de bron op dat adres op.
code-editor
Een code-editor is een programma voor het schrijven van bronbestanden als platte tekst, met hulpmiddelen zoals syntaxisaccentuering, automatisch aanvullen en een projectbestandsboom.
Als je de websitemap in een editor opent, zie je de HTML-pagina naast de mappen voor CSS en afbeeldingen.
console
De console is een paneel in de ontwikkelaarstools dat berichten en fouten toont en JavaScript kan evalueren die voor de huidige pagina wordt ingevoerd.
Een consolefout die app.js:8 noemt, wijst je naar de scriptregel die bij de mislukte bewerking betrokken is.
Content-Length
De header Content-Length geeft een aantal bytes voor de inhoud van een bericht aan; dat aantal is niet noodzakelijk gelijk aan het aantal leesbare tekens.
Bij een PNG-antwoord beschrijft Content-Length: 24576 24.576 bytes, of ongeveer 24,6 kB aan inhoud.
cookie
Een cookie is een kleine opgeslagen waarde die de browser kan terugsturen bij verzoeken waarop de cookie van toepassing is, zodat een server die verzoeken aan sessiegegevens kan koppelen.
Een server verstuurt een sessiewaarde met Set-Cookie; de browser stuurt die later terug in Cookie.
CSS
CSS, Cascading Style Sheets, beschrijft de vormgeving van documentelementen, waaronder hun kleuren, tussenruimte, lettertypen en lay-out.
Een gedeeld CSS-bestand kan kopkleuren op meerdere pagina's veranderen zonder de tekst te herschrijven.

D

declaratie
Een declaratie is een CSS-eigenschap-waardepaar, zoals color: teal;, dat één vormgevingsinstelling binnen een regel vastlegt.
In p { color: navy; margin: 1rem; } stellen twee declaraties de kleur en marge van alinea's in.
DNS
DNS, het Domain Name System, is het gedistribueerde naamsysteem waarmee browsers netwerkadressen kunnen vinden die bij domeinnamen horen.
Voordat de browser verbinding maakt met een nieuwe host, haalt hij het adres op via DNS of uit een recent antwoord in de cache.
DOM
De DOM, of Document Object Model, is de actuele boom van documentelementen en tekst die de browser opbouwt en die scripts kunnen wijzigen.
Nadat een script een alinea heeft toegevoegd, toont het elementenpaneel de nieuwe DOM-knoop, ook al bevat de paginabron die alinea niet.
domeinnaam
Een domeinnaam is een leesbare internetnaam die bestaat uit labels gescheiden door punten en via DNS naar een netwerkbestemming verwijst.
De naam docs.example.com is gemakkelijker te onthouden dan het numerieke adres dat DNS ervoor kan teruggeven.

F

fragment
Een fragment is het URL-onderdeel na # dat de browser lokaal afhandelt, vaak door naar een element met een overeenkomende ID te gaan.
Het fragment #contact kan het opgehaalde document laten scrollen zonder contact naar de server te sturen.

H

host
Een host is de bestemming die in een web-URL wordt genoemd, meestal met een domeinnaam of IP-adres, voordat het pad begint.
In https://learn.example.net/intro is de host learn.example.net en het pad /intro.
HTML
HTML, HyperText Markup Language, geeft pagina-inhoud structuur en betekenis via elementen zoals koppen, links, afbeeldingen en formulieren.
Een kopelement duidt een sectiekop aan, ook wanneer het externe stijlblad van de pagina niet laadt.
HTTP-header
Een HTTP-header is een benoemd HTTP-veld met informatie over een verzoek, antwoord of berichtinhoud, meestal weergegeven als Name: value.
De verzoekheader Accept: text/html geeft aan dat de client een HTML-antwoord kan verwerken.
HTTP-methode
Een HTTP-methode geeft de beoogde handeling van een verzoek aan, zoals GET om een bron op te halen of POST om gegevens ter verwerking in te dienen.
Een zoekopdracht met GET haalt resultaten op, terwijl een POST een reactie kan indienen die de server moet opslaan.
HTTPS
HTTPS is HTTP over een door TLS beveiligde verbinding die de berichten versleutelt en de server voor het domein authenticeert.
Een HTTPS-verbinding beschermt een ingediend formulier tijdens het transport, ook als het formulier met POST wordt verstuurd.

I

idempotente methode
Een idempotente methode heeft bij herhaling van een identiek verzoek hetzelfde beoogde effect op de server als wanneer het verzoek één keer wordt verstuurd.
Een DELETE herhalen vraagt niet om nog een afzonderlijke verwijdering, ook als de tweede antwoordcode verschilt.
internet
Het internet is het wereldwijde netwerk van verbonden computers dat gegevens vervoert voor het web en andere diensten, waaronder e-mail.
Een e-mailprogramma en een webbrowser kunnen beide het internet gebruiken terwijl ze verschillende diensten bieden.
IP-adres
Een IP-adres is een numeriek netwerkadres dat wordt gebruikt om een bestemming aan te duiden, geschreven in een formaat zoals IPv4 of IPv6.
Het IPv4-voorbeeldadres 203.0.113.10 kan een serverbestemming voorstellen in een diagram over het laden van een pagina.

J

JavaScript
JavaScript is een programmeertaal die in browsers wordt gebruikt om op gebeurtenissen te reageren, de actuele pagina te veranderen en extra gegevens op te vragen.
Een klikhandler kan een klasse aan de body toevoegen, zodat het stijlblad een ander thema weergeeft.

L

label
Een label is één onderdeel van een domeinnaam tussen punten; gewone hostlabels gebruiken letters, cijfers en koppeltekens en hebben een beperkte lengte.
De host help.example.org heeft drie labels, die je van de algemene uitgang naar de specifieke naam leest.
lay-outberekening
De lay-outberekening is de berekening van de afmetingen en posities van elementen door de browser nadat die de relevante stijlen voor die elementen heeft bepaald.
Als je een lange alinea toevoegt, kunnen nieuwe lay-outberekeningen nodig zijn omdat de inhoud eronder naar beneden schuift.
leeg element
Een leeg element is een HTML-element dat geen kindinhoud kan bevatten en geen sluitingstag heeft, zoals img, meta of link.
Het element <img src="map.png" alt="Trail map"> beschrijft een afbeelding zonder bijbehorende sluitingstag.
logboek behouden
Logboek behouden is een optie in Netwerk die vastgelegde verzoekrijen bewaart tijdens het navigeren tussen pagina's en zo een reeks uitwisselingen zichtbaar helpt maken.
Schakel Logboek behouden in voordat je een adres opent dat omleidt, zodat het eerdere antwoord zichtbaar blijft.
lokale webserver
Een lokale webserver is serversoftware die op je computer draait om projectbronnen via HTTP aan te bieden voor ontwikkeling en tests.
Een voorbeeldweergave op http://localhost:5500/ behandelt een pad vanaf de hoofdmap van de website als webpad in plaats van als pad vanaf de hoofdmap van de schijf.
loopbackadres
Een loopbackadres stuurt netwerkverkeer terug naar dezelfde computer, zoals 127.0.0.1 in IPv4 of ::1 in IPv6.
Als je een server op 127.0.0.1 opent, maakt je browser verbinding met een dienst die op je eigen computer draait.

M

mediatype
Een mediatype, ook MIME-type genoemd, duidt het formaat van de berichtinhoud aan, zoals text/css voor CSS of application/json voor gegevens.
Als een CSS-verzoek text/html teruggeeft, onderzoek dan of de server in plaats daarvan een foutpagina heeft geleverd.

N

netwerkfilter
Een netwerkfilter beperkt de vastgelegde verzoekrijen op basis van criteria zoals brontype of naam, zodat je je op een vermoedelijke fout kunt richten.
Selecteer het CSS-filter om een ontbrekend stijlblad te vinden terwijl de andere verzoeken van de pagina uit beeld blijven.
netwerkvertraging simuleren
Netwerkvertraging simuleren bootst een tragere netwerkverbinding na in de ontwikkelaarstools, zodat je de volgorde en timing van het zichtbare laden van de pagina kunt inspecteren.
Bij een voorbeeldweergave met een traag netwerk merk je gemakkelijker dat tekst verschijnt voordat een grote afbeelding klaar is.
nog geldig cacheantwoord
Een nog geldig cacheantwoord is een antwoord in de cache dat nog binnen de periode valt waarin de cacheregels hergebruik zonder controle bij de server toestaan.
Een antwoord met max-age=600 kan 10 minuten geldig blijven voordat opnieuw over de geldigheid moet worden beslist.

O

omleiding
Een omleiding is een antwoord dat een client naar een ander adres stuurt, dat normaal in de Location-header staat bij een omleidingsstatus.
Een 301 vanaf een HTTP-adres kan de browser het HTTPS-adres in een tweede uitwisseling laten opvragen.
ontwikkelaarstools
Ontwikkelaarstools zijn browserfuncties om de actuele structuur, toegepaste stijlen, scripts, fouten en netwerkuitwisselingen van een actieve pagina te inspecteren.
Als je Inspecteren op een kop kiest, openen de tools met dat deel van de huidige pagina geselecteerd.
overgedragen gegevensgrootte
De overgedragen gegevensgrootte meet de gegevens die voor een vastgelegd verzoek over het netwerk zijn verstuurd en kan verschillen van de opgeslagen grootte van de berichtinhoud van een bron.
Een 304 draagt headers over zonder de berichtinhoud van de afbeelding, dus is de vastgelegde overdracht veel kleiner dan die afbeelding.

P

pad
Een pad is het URL-onderdeel dat een bron op een host aanduidt. Het komt soms overeen met mappen en bestanden en wordt soms door software afgehandeld.
Het pad /images/map.png vertelt de server welke bron de browser na het verbinden wil hebben.
pad vanaf de hoofdmap
Een pad vanaf de hoofdmap begint met / en duidt een locatie aan vanuit de hoofdmap van de huidige website in plaats van de map van de huidige pagina.
Vanaf elke pagina in een geneste map op example.org begint /images/logo.svg bij het bovenste padniveau van die host.
parsen
Parsen is het proces waarbij brontekst volgens de regels van een taal wordt gelezen en omgezet in een structuur die de browser kan gebruiken.
Terwijl de browser HTML parset, bouwt hij elementen op en ontdekt hij de externe bestanden die het document noemt.
poort
Een poort is een nummer dat een dienst op een host selecteert; HTTP gebruikt normaal standaard 80 en HTTPS normaal standaard 443.
De 8080 in http://localhost:8080/ selecteert de poort die deze lokale testserver gebruikt.
projectmap
Een projectmap bevat de bijbehorende bronbestanden en ondersteunende websitebestanden voor een website en biedt een duidelijke basis om paden te ordenen en wijzigingen te bekijken.
Als je index.html, styles/ en images/ bij elkaar houdt, kun je gemakkelijker controleren of een link overeenkomt met een bestand.

Q

querystring
Een querystring is de URL-invoer na ?, gewoonlijk ingedeeld als name=value-paren die door & zijn gescheiden en met het verzoekdoel worden meegestuurd.
In /search?q=css&page=3 levert de query zowel de zoekterm als de gevraagde pagina met resultaten.

R

registrar
Een registrar is een organisatie die domeinregistraties en verlengingen van klanten verzorgt voor de domeinuitgangen die zij ondersteunt.
Een website-eigenaar verlengt een geregistreerde naam via een registrar om het recht op gebruik voor een volgende periode te behouden.
registry
Een registry is de organisatie die de gezaghebbende registraties voor een topleveldomein en de daaronder geregistreerde namen bijhoudt.
De registry houdt de domeinregistraties van het TLD bij, terwijl een registrar de registratie van de klant verzorgt.
relatieve URL
Een relatieve URL laat sommige adresonderdelen weg en wordt opgelost op basis van het adres van de huidige pagina, vaak beginnend in de map waarin die pagina staat.
Vanuit /guide/start.html bereikt de link images/icon.png de map images binnen /guide/.
responsieve modus
De responsieve modus is een voorbeeldweergave in de ontwikkelaarstools die viewportafmetingen aanpast om lay-outs bij verschillende schermgroottes te inspecteren.
Een smalle responsieve voorbeeldweergave kan horizontaal overlopende inhoud zichtbaar maken, al blijft een aparte controle op een echte telefoon nodig.

S

selector
Een selector is het onderdeel van een CSS-regel dat bepaalt welke elementen de vormgevingsdeclaraties van de regel krijgen.
De selector h2 in h2 { color: teal; } komt overeen met kopelementen van het tweede niveau op de pagina.
server
Een server is een programma, of de computer waarop het draait, dat verzoeken ontvangt en opgeslagen bronnen of gegenereerde antwoorden terugstuurt.
Een testserver op je laptop kan de browser antwoorden terwijl beide programma's op dezelfde computer draaien.
soft 404
Een soft 404 is een antwoord waarvan de inhoud aangeeft dat een bron niet is gevonden, terwijl de HTTP-status gewoon succes meldt.
Een pagina die “Hier staat niets” toont met status 200, verschilt van een antwoord waarvan de werkelijke status 404 is.
statuscode
Een statuscode is een HTTP-antwoordwaarde van drie cijfers die het resultaat van één verzoek beschrijft, waarbij het eerste cijfer de klasse aangeeft.
Een pagina kan 200 voor de HTML en 404 voor één afbeelding hebben, omdat de bronnen afzonderlijke verzoeken hebben.
subdomein
Een subdomein is een naam die ontstaat door labels links van een domein toe te voegen en die onder het beheer van dat domein valt.
De houder van example.com kan een dienst op support.example.com instellen zonder een nieuw domein te registreren.

T

tekenen
Bij tekenen geeft de browser de pagina weer in pixels nadat de benodigde stijlen en lay-out zijn bepaald.
Als een zichtbare tekstkleur verandert, tekent de browser de betreffende tekst in de nieuwe kleur.
time-out van de gateway
Een time-out van de gateway is een 504-antwoord dat aangeeft dat een tussenliggende server niet op tijd antwoord van een achterliggende server ontving.
Een proxy kan 504 teruggeven terwijl die wacht op de applicatieserver die de pagina had moeten samenstellen.
TLS
TLS, Transport Layer Security, is de technologie die HTTPS gebruikt om berichten tijdens het transport te beschermen tegen lezen of wijzigen.
De browser stelt TLS-beveiliging in voordat hij een gewoon HTTPS-verzoek naar de bestemming stuurt.
toestandsloos protocol
Een toestandsloos protocol behandelt elke uitwisseling afzonderlijk zonder die automatisch te koppelen aan eerdere uitwisselingen van dezelfde client.
Een later HTTP-verzoek moet een cookie of vergelijkbare identificatie meesturen als de server een sessie moet herkennen.
topleveldomein
Een topleveldomein, of TLD, is het meest rechtse niveau in het domeinnaamsysteem, zoals .com, .org of de landcode .nl.
In news.example.org is het TLD .org; news is een specifieker label onder de geregistreerde naam.

U

uitgesteld script
Een uitgesteld script is een klassiek extern script met defer dat na het parsen van HTML wordt uitgevoerd, waarbij zulke scripts de documentvolgorde behouden.
Een uitgesteld script voor een knop kan een knop selecteren die later in de HTML is gedefinieerd, omdat het parsen is voltooid.
uitvoeringsfout
Een uitvoeringsfout treedt op terwijl code wordt uitgevoerd; als die niet wordt opgevangen, beëindigt de fout de huidige uitvoering en worden latere instructies daarin overgeslagen.
Een methode aanroepen op null kan verhinderen dat een script zijn knop instelt, ook al is het script met succes gedownload.
URL
Een URL, of Uniform Resource Locator, is een adres dat een bron aanduidt en beschrijft hoe die toegankelijk is, met optionele query- en fragmentonderdelen.
In https://example.org/help.html#hours is het hele adres de URL; example.org is alleen de host.
URL-schema
Een URL-schema is het eerste onderdeel van een URL dat aangeeft hoe die wordt behandeld, zoals https voor versleuteld HTTP of file voor een lokaal bestand.
Het schema in http://localhost:8080/ vertelt de browser HTTP te gebruiken voor het lokale verzoek om een voorbeeldweergave.
UTF-8
UTF-8 is een tekencodering die tekens als bytes weergeeft en de vele schrijfsystemen ondersteunt die vaak in webinhoud worden gebruikt.
Sla een pagina op als UTF-8 en geef die codering op, zodat de browser namen met accenten consistent leest.

V

veilige methode
Een veilige methode is een HTTP-methode die bedoeld is om informatie te lezen zonder om een wijziging van de servertoestand te vragen, zoals GET of HEAD.
Een gewone paginalink openen hoort inhoud op te halen zonder een bestelling te plaatsen of opgeslagen gegevens te verwijderen.
verzoekdoel
Een verzoekdoel duidt de in een HTTP-bericht gevraagde bron aan, meestal met het pad en de query, zonder het URL-fragment.
De URL die eindigt op /guide?mode=short#tips levert bij een gewoon verzoek het verzoekdoel /guide?mode=short op.
viewport
Een viewport is het gebied waarin de browser een pagina indeelt en weergeeft; de breedte ervan beïnvloedt hoe de inhoud op het scherm past.
Als je de responsieve viewport verkleint tot 375 CSS-pixels, kun je een menu ontdekken dat niet meer past.

W

watervaldiagram
Een watervaldiagram is de tijdweergave in het netwerkpaneel die toont wanneer verzoeken beginnen, hoelang ze duren en waar hun looptijden overlappen.
Overlappende afbeeldingsbalken tonen dat de browser meerdere afbeeldingen in dezelfde periode heeft opgehaald.
web
Het web is een dienst van gekoppelde bronnen die door webadressen worden aangeduid en via HTTP over het internet worden uitgewisseld.
Als je een paginalink volgt, gebruik je het web; het internet vervoert ook diensten waarbij geen webpagina's betrokken zijn.

Over deze les

Door StudeliFout melden

Maak je eigen Studiemateriaal

Maak van je aantekeningen, slides en documenten Leermodules, Oefenvragen, Flashcards en 6 andere tools.

Aan de slag