Frontend samenvatting Eloquent Javascript hoofdstuk 18 - norakramer1/blokTech GitHub Wiki

Chapter 18 HTTP and Forms

HTTP: Hypertext Transfer Protocol is het protocol waarmee data word aangevraagd op het internet. De browser zoekt eerst de server die erbij hoort, als dit lukt krijg je de pagina te zien, de server reageert daarna met een 200 protocol.

GET /18_http.html HTTP/1.1 Method // path of resource // versie van http protocol Headers bevatten extra informatie over het document zoals content-length: 4829

Browsers en http

Als de method van een form bijv GET is word de informatie toegevoegd aan het einde van de url als een query string.

encode en decodeurlcomponent gebruik je om de formatting van sommige characters te endoden of decoden omdat je het vraagteken (?) vaak zo in de url ziet (%3F), ze kunnen zo escaped worden

Fetch

de interface waarmee browser javascript request worden gemaakt heet fetch. Met fetch kun je een “promise” oplossen naar een respons object wat informatie over de server’s response vasthoud zoals statuscode en headers. Fitch vraagt eerst een url op, als deze niet begint met http bijv. dan is het relative wat het relatief maakt aan het document. / betekend replace current path als dit niet zo is word het deel can het pad en het nieuwe pad voor de relatieve url geplaatst.

HTTP sandboxing

Browsers laten het niet toe om HTTP requests te maken naar andere domeinen voor de veiligheid, soms heb je dit toch nodig maar hiervoor gebruik je een header die dit specifiek aangeeft. communicatie tussen client en server-side javascript kan op verschillende manieren.

remote procedure calls: communicatie volgt het normale patroon maar de functie runt op een andere machine waarvoor je een request naar de server moet maken met de functienaam en argumenten

security en https

Om data veiliger te houden is er een HTTPS protoco, hiervoor moet de client verifien dat de server echt is wie het zegt dat het is door een cryptografisch certificaat te laten zien

storing data client side

Als je de pagina refresht worden de javascriptbindings altijd verwijderd, als je dit langer wil bewaren kun je eenserver opzetten maar dit is veel werk, met het localStorage object kun je data opslaan ook als je refresht, het blijft staan tot het overwipten is of de gebruiker local data verwijderd