1 00:00:02,719 --> 00:00:07,360 Het internet: HTTP en HTML 2 00:00:07,360 --> 00:00:11,740 Ik heet Jasmine en ik ben programmamanager van het XBOX One engineringteam. 3 00:00:11,759 --> 00:00:18,700 Een van onze grootste voorzieningen heet XBOX Live. Het is een online dienst die 4 00:00:18,700 --> 00:00:24,099 gamers wereldwijd verbindt, en wij vertrouwen op het internet dat dat lukt. 5 00:00:24,099 --> 00:00:30,500 Dit is geen gemakkelijke taak en er gebeurd veel achter de schermen. 6 00:00:30,500 --> 00:00:36,280 Het internet verandert compleet de manier waarop mensen communiceren. Maar hoe 7 00:00:36,280 --> 00:00:43,489 werkt het? Hoe communiceren computers wereldwijd in feite met elkaar? Laten we 8 00:00:43,489 --> 00:00:50,199 het surfen onder de loep nemen. Eerst open je een browser. Het is de app die je gebruikt 9 00:00:50,199 --> 00:00:55,899 om pagina's te bezoeken. Daarna typ je het adres of URL in, dat staat voor Uniform Resource Locator, 10 00:00:55,899 --> 00:01:06,810 van de website die je wilt bezoeken, zoals tumblr.com. Hallo, ik het David Karp, ik ben de oprichter van Tubmblr, 11 00:01:06,810 --> 00:01:12,560 en hier leggen we uit hoe die browser die we elke dag gebruiken eigenlijk werken. Je hebt je waarschijnlijk wel 12 00:01:12,560 --> 00:01:16,350 eens afgevraagd wat er gebeurd als je een adres in je browser invoert en daarna 13 00:01:16,350 --> 00:01:21,020 op enter drukt. Het is net zo gek als je je kunt voorstellen. Op dat moment begint 14 00:01:21,020 --> 00:01:25,930 je computer met een andere te praten, een server, die meestal duizenden kilometers 15 00:01:25,930 --> 00:01:32,450 ver weg staat. En in milliseconden vraagt je computer aan de server om een website, en 16 00:01:32,450 --> 00:01:39,530 die server begint te praten met je computer in een taal die HTTP heet, HTTP staat voor 17 00:01:39,530 --> 00:01:43,680 Hyper Text Transfer Protocol. Je kunt zien de taal die de ene computer gebruikt om 18 00:01:43,680 --> 00:01:48,009 aan de andere computer naar een document te vragen. Het is eigenlijk heel eenvoudig. 19 00:01:48,009 --> 00:01:52,540 Als je een conversatie tussen je computer en een server op het internet zou 20 00:01:52,540 --> 00:01:56,670 onderscheppen, dan zie je dat het voornamelijk bestaat uit "GET"-verzoeken. Die bestaan 21 00:01:56,670 --> 00:02:01,590 eenvoudig uit het woord GET en de naam van het document dat je verzoekt. Dus als je 22 00:02:01,590 --> 00:02:06,360 probeert in te loggen in Tumblr en je ons inlogscherm laat, dan is het enige dat je 23 00:02:06,360 --> 00:02:14,290 doet een GET-verzoek sturen naar de server van Tumblr dat zegt Get /login. En dat 24 00:02:14,290 --> 00:02:21,800 zegt de server van Tumblr dat je alle HTML- code wilt voor het inlogscherm van Tumblr. 25 00:02:21,800 --> 00:02:26,470 HTML staat voor Hyper Text Markup Language, en dat kun je zien als de taal die jij gebruikt 26 00:02:26,470 --> 00:02:30,540 om een browser te vertelen hoe een pagina eruit moet zien. Als je denkt aan bijvoorbeeld 27 00:02:30,540 --> 00:02:35,630 Wikipedia, niets anders dan een groot eenvoudig document, dan HTML de taal die je gebruikt om 28 00:02:35,630 --> 00:02:42,690 det titel groot en vet te maken, het juiste lettertype in te stellen, en te linken naar bepaalde andere pagina's, 29 00:02:42,690 --> 00:02:46,740 tekst vet of cursief te maken, een afbeelding in het midden van de pagina te plaatsen, en de pagina 30 00:02:46,740 --> 00:02:52,990 rechts of links uit te lijnen. De tekst van een pagina wordt altijd direct meegenomen in de HTML, 31 00:02:52,990 --> 00:02:58,380 maar andere delen zoals afbeeldingen of video's zijn aparte bestanden met hun eigen URLs waarom 32 00:02:58,380 --> 00:03:04,540 verzocht moet worden. De browser stuur aparte HTML-verzoeken naar elk van deze en toont hen 33 00:03:04,540 --> 00:03:11,670 zodra ze binnenkomen. Als een webpagina veel verschillende afbeeldingen heeft, dan heeft 34 00:03:11,670 --> 00:03:20,780 elk van hen een apart HTTP-verzoek en laadt de pagina langzamer. Soms als je surft op het web 35 00:03:20,780 --> 00:03:25,880 verzoek je niet alleen om pagina's met GET-verzoeken. Soms stuur je informatie als je bijvoorbeeld 36 00:03:25,880 --> 00:03:32,300 een formulier invult of een zoekopdracht geeft. Je browser stuurt deze informatie in platte tekst 37 00:03:32,300 --> 00:03:39,090 naar de server door middel van een HTTP POST-verzoek. Laten we aannemen dat je inlogt op Tumblr. 38 00:03:39,090 --> 00:03:45,360 Het eerste dat je doet is POST-verzoek maken, dat is een POST naar het inlogscherm van Tumblr 39 00:03:45,360 --> 00:03:49,680 waaraan wat data is gekoppeld. Het heeft je e-mailadres, en je wachtwoord. Dat gaat naar de 40 00:03:49,680 --> 00:03:55,350 server van Tumblr. Deze server ontdekt dat jij David bent. Het stuurt een pagina terug naar 41 00:03:55,350 --> 00:04:00,480 Je browser en die zegt, Gelukt! Ingelogd als David. Maar naast die website 42 00:04:00,480 --> 00:04:07,000 voegt het ook wat ontzichtbare cookiedata toe die je browser ziet en weet op te slaan. 43 00:04:07,000 --> 00:04:11,360 Dat is echt belangrijk omdat het de enige manier is dat een website kan onthouden 44 00:04:11,360 --> 00:04:16,940 wie je bent. Die cookiedata is niets anders dan een ID-kaart voor Tumblr. Het is een 45 00:04:16,940 --> 00:04:21,790 nummer dat jouw als David identificeert. Je browser onthoudt dat nummer en de 46 00:04:21,790 --> 00:04:26,660 volgende keer dat Tumblr ververst, de volgende keer dat je naar Tumblr.com gaat 47 00:04:26,660 --> 00:04:30,930 zal je browser automatisch dat ID-nummer toevoegen bij het verzoek dat het naar de servers van Tumblr stuurt. 48 00:04:30,930 --> 00:04:35,970 Nu zien de server van Tumblr dat het verzoek van jouw browser komt, zien het ID-nummer en weten 49 00:04:35,970 --> 00:04:43,940 "OK, dit is een verzoek van David." Het internet is helemaal open. Alle verbindingen 50 00:04:43,940 --> 00:04:49,350 worden gedeeld en de informatie wordt in platte tekst verzonden. Dit stelt hackers 51 00:04:49,350 --> 00:04:55,630 in staat om te snuffelen naar persoonlijke informatie die jij over het internet verstuurd. 52 00:04:55,630 --> 00:05:00,970 Maar veilige websites verhinderen dit, door aan je browser te vragen te communiceren 53 00:05:00,970 --> 00:05:07,630 via een veilig kanaal met behup van Secure Sockets Layer, en de opvolger daarvan Transport Layer Security. 54 00:05:07,630 --> 00:05:14,000 Zie SSL en TLS als een beschermingslaag om je communicatie om deze te beschermen 55 00:05:14,000 --> 00:05:20,530 tegen rondsnuffelen of knoeien. SSL en TLS zijn actief als je het kleine slotje in de 56 00:05:20,530 --> 00:05:27,440 adresbalk van je browser, naast de HTTPS. De HTTPS-protocollen garanderen 57 00:05:27,440 --> 00:05:33,840 dat jouw HTTP-verzoeken veilig en beschermd zijn. als een website aan je browser vraagt 58 00:05:33,840 --> 00:05:39,500 mee te doen in een beveiligde verbinding, geeft het eerst een digitaal certificaat. 59 00:05:39,500 --> 00:05:45,140 Dat is een soort officiële ID-kaart welke bewijst dat de website is die het claimt te zijn. Digitale 60 00:05:45,140 --> 00:05:49,900 certificaten worden gepubliceerd door bevoegde instanties die vertrouwde entiteiten zijn die 61 00:05:49,900 --> 00:05:55,280 de identiteit van websites verifiëren, en certificaten voor hen uitgeven. Net als een overheid IDs of 62 00:05:55,280 --> 00:06:01,030 passpoorten kan verstrekken. Als een website probeert een veilige verbinding te openen zonder 63 00:06:01,030 --> 00:06:09,590 de juiste verstrekte digitale certificaten, dan zal je browser je waarschuwen. Dat is de basis van 64 00:06:09,590 --> 00:06:17,010 surfen op het web! Het deel van het internet dat we dagelijks zien. Samenvattend, HTTP en DNS 65 00:06:17,010 --> 00:06:23,450 regelen het verzenden en ontvangen van HTML, mediabestanden of alles op het web. Wat dit 66 00:06:23,450 --> 00:06:30,370 mogelijk maakt onder de motorkap zijn TCP/IP en router- netwerken die informatie afbreken en transporteren in 67 00:06:30,370 --> 00:06:36,670 pakketjes. Deze pakketjes zelf bestaan uit binaire codes, reeksen uit enen en nullen die 68 00:06:36,670 --> 00:06:42,550 fysiek door elektrische kabels, glasvezel en draadloze netwerken worden verzonden. 69 00:06:42,550 --> 00:06:47,440 Gelukkig geldt, dat zodra je hebt geleerd hoe een laag van het internet werkt, je erop 70 00:06:47,440 --> 00:06:52,070 kunt vertrouwen zonder alle details te hoeven onthouden. En we kunnen erop vertrouwen 71 00:06:52,070 --> 00:06:59,090 dat al die lagen zullen samenwerken om informatie op schaal en betrouwbaar aan te leveren.