Web-1

Uit Inf2019
Naar navigatie springen Naar zoeken springen
Web1
Netwerken

Zie ook Regels en richtlijnen
Zie ook Artikelen bewerken

Web1: het web voor makers (van webservers)

In deze module behandelen we een aantal principes van het web, in het bijzonder aan de kant van de webserver. Het uitgangspunt van deze module is: het web, dat maak je zelf. Hoe werkt het web-protocol (HTTP), hoe werkt de samenwerking tussen de server en de client (browser)? Hoe kun je dat gebruiken voor het maken van een eigen website, en voor het inrichten van een eigen webserver?

Voor het maken van een website heb je nog andere kennis en vaardigheden nodig, bijvoorbeeld: HTML/CSS/JavaScript; en enige kennis van databases. We gaan ervan uit dat je daarvan enige (voor)kennis hebt.

Voor het experimenteren met een eenvoudige webserver gebruiken we NodeRed.

Een overzicht van de onderwerpen die aan de orde komen:

  • Web-1/Client-server Achtergrondinformatie/theorie
    • het HTTP-protocol; client-server interactie; http-request, response;
    • URL; opbouw van URL: protocol; domeinnaam; padnaam; parameters; (inhoud/body)
    • alternatieven voor HTTP: bidirectionele verbindingen (websockets); publish/subscribe (MQTT);
    • wat merk je hiervan in de browser?
  • Web-1/NodeRed
    • installeren en configuren
    • hoe werkt een flow?
    • eerste flow (inject/debug)
    • exporteren en importeren van flows
  • Web-1/Statische website
    • http-flow
    • NodeRed: configureren van statische pagina's
    • gebruik van CSS en Javascript
  • Web-1/Templates
    • website met meerdere pagina's
    • template-concept
    • templates voor een uniforme layout
  • /HTML formulieren
    • HTML formulier
    • HTTP-POST request; formulier-data
    • HTTP-POST flow
    • templates en data
  • /Server state
    • NodeRed: globale variabelen (context)
    • uitbreiden van form-flow met extra pagina, met naam van de gebruiker
    • (voorbeeld van gebruikers-voorkeuren)
  • /Gebruikers en sessies - en cookies
    • levensduur van een cookie; "persistent" client-state
    • /Headers
  • /AJAX
    • client-side rendering
    • asynchrone acties in JavaScript
  • /Websockets
    • websockets voor "push" vanuit de server
    • en voor client-server interactie met lage overhead, lage latency
  • /Server database
  • /Web services
    • vb: weerdienst
  • /Authenticatie en autorisatie
  • /REST

Concepten

Voorkennis

  • Web0; html, css, javascript
  • Databases ("wat is een database? waarvoor gebruik je die?")
  • Werken met Linux/Cloud9 (incl. eenvoudig gebruik van Linux shell)
    • wat is een absolute padnaam?
    • hoe achterhaal je het absolute pad van een bestand?
    • hoe maak je een bestand aan (met de Cloud9 editor)?
    • hoe verander je de naam van een bestand?
  • JSON - wordt o.a. gebruikt in de Mustache template-voorbeelden.

Toetsvragen

I.h.b.: diagnostische vragen. T.B.D.

/Toetsvragen

Webserver in NodeJS