Inhoud leereenheid 15 Internet (1): enkele toepassingen Introductie Leerkern 1 2 3 4 5 6 73 74 Inleiding 74 World wide web: een inleiding 74 2.1 Webpagina’s bekijken 74 2.2 Wat is het world wide web? 75 2.3 HTML 77 Enkele belangrijke begrippen 79 3.1 Client-server-model 79 3.2 Protocollen 81 3.3 De structuur van www-adressen 82 Het www nader bekeken 83 4.1 Een webpagina ophalen 83 4.2 HTTP nader bekeken 85 4.3 Toestandloosheid van HTTP en cookies 86 E-mail 87 5.1 Inleiding e-mail 87 5.2 E-mail nader bekeken 89 5.2.1 E-mail versturen en ontvangen 89 5.2.2 De communicatie tussen de mailservers 91 5.2.3 De communicatie tussen mailserver en user agent 5.3 Het format van e-mail 94 De applicatie DNS 96 Samenvatting Zelftoets 98 99 Terugkoppeling 1 2 72 100 Uitwerking van de opgaven 100 Uitwerking van de zelftoets 101 93 Leereenheid 15 Internet (1): enkele toepassingen INTRODUCTIE U hebt ongetwijfeld wel eens informatie opgezocht op het world wide web. Vermoedelijk verstuurt u en ontvangt u ook regelmatig e-mails. Dat betekent dat u enige, of mogelijk zelfs veel, ervaring hebt met enkele applicaties of toepassingen op internet. Het world wide web en e-mail zijn twee opvallende en belangrijke applicaties, maar het zijn zeker niet de enige. Mogelijk gebruikt u ook andere applicaties, zoals chatten, videoconferencing en het uitwisselen van muziekbestanden. De leereenheden 15 en 16 gaan nader in op internet en applicaties die gebruikmaken van internet. In leereenheid 15 ligt de nadruk op de applicaties world wide web en e-mail. We bekijken deze applicaties nader en bespreken wat er globaal gebeurt als u een webpagina ‘ophaalt’ en als u e-mails verstuurt en ontvangt. Aan de hand daarvan voeren we verschillende concepten in die centraal staan in dit vakgebied. Het meest centrale concept dat aan de orde komt, is het protocol. Overal waar sprake is van communicatie tussen twee computers, zijn er protocollen nodig waarin de syntaxis en semantiek van die communicatie heel precies is vastgelegd. In deze leereenheid gaan we nader in op diverse protocollen. Een daarvan is u ongetwijfeld wel eens opgevallen: HTTP, dat een rol speelt bij het ophalen van webpagina’s. In leereenheid 16 gaan we vervolgens nader in op vragen als: – Hoe gaat het transport van gegevens over internet precies in zijn werk? – Hoe is internet opgebouwd? LEERDOELEN Na het bestuderen van deze leereenheid wordt verwacht dat u – kunt uitleggen wat een webpagina is – het principe van hypertekst kunt uitleggen – kunt omschrijven wat het world wide web is – het verschil tussen internet en www kunt uitleggen – het client-server-model kunt uitleggen – het nut van protocollen kunt uitleggen – kunt uitleggen wat een URL is en hoe een URL is opgebouwd – globaal kunt beschrijven wat er gebeurt als u een webpagina ophaalt – globaal kunt beschrijven wat er gebeurt als u een e-mail verstuurt – het protocol HTTP globaal kunt beschrijven – het principe van cookies kunt uitleggen – globaal de protocollen kunt beschrijven die gebruikt worden bij het ontvangen van e-mail – de applicatie DNS globaal kunt beschrijven. OU 73 Inleiding informatica Studeeraanwijzingen De opgaven in paragraaf 7 hebben de vorm van practicumopdrachten. Deze opgaven behoren wel tot de leerstof, maar u hoeft ze niet per se op een computer te maken. De studielast van deze leereenheid is ongeveer 6 uur. LEERKERN 1 Internet Communicatiekanaal Host Router Applicatie PDA = personal digital assistent Inleiding Als we spreken over internet, dan bedoelen we een netwerk van onderling met elkaar verbonden computers. Onderling verbonden wil zeggen dat er communicatie tussen deze computers mogelijk is. Die communicatie vindt plaats via communicatiekanalen, die bestaan uit diverse typen media, zoals koperdraden, glasvezels en de ‘ether’ (voor draadloze communicatie). Tot de computers die deel uitmaken van internet horen pc’s, maar ook systemen die webpagina’s en e-mailberichten opsturen en opslaan, PDA’s, laptops enzovoort. Dergelijke computers worden in het computerjargon hosts genoemd. Naast hosts maken nog andere machines deel uit van internet, zoals routers. Routers sturen berichten door die op weg zijn van de ene host naar de andere. In leereenheid 16 gaan we nader in op de structuur van internet. Internet maakt het mogelijk dat toepassingen of applicaties die op verschillende hosts draaien, met elkaar communiceren. Voorbeelden van dergelijke applicaties zijn programma’s voor het verzenden en ontvangen van e-mail, het surfen op het world wide web (www), chatten, telefoneren via internet en nog heel veel meer. In deze leereenheid ligt de nadruk op applicaties. Twee daarvan, www en e-mail, zullen we tamelijk uitvoerig bekijken. Aan de hand van deze beide applicaties bespreken we diverse concepten en onderwerpen die een centrale rol spelen in dit deelgebied van informatica. 2 World wide web: een inleiding Deze paragraaf is bedoeld als een inleiding op de applicatie world wide web. Er komen vragen aan de orde als: – Wat is een webpagina? – Wat is het world wide web? – Hoe zijn webpagina’s opgeslagen? In de paragrafen 3 en 4 gaan we dieper in op de achtergronden van het world wide web. 2.1 Webbrowser 74 WEBPAGINA’S BEKIJKEN Als u een webpagina van internet wilt bekijken, moet er een applicatieprogramma op uw computer aanwezig zijn waarmee u dat kunt doen. Dit programma heet een webbrowser of kortweg browser. Bekende browsers zijn Microsoft Internet Explorer, Mozilla Firefox en Google Chrome. U weet globaal hoe dat werkt. Een van de mogelijkheden is dat u een adres intypt in het adresveld bovenin het scherm dat door de browser is geopend. In figuur 15.1 is dat (denkbeeldige) adres http://www.ou.nl/open-index/studenten.htm. Vervolgens drukt u op de Entertoets. OU Leereenheid 15 Internet (1): enkele toepassingen FIGUUR 15.1 Adresveld webbrowser De webbrowser neemt dan contact op met de host waar zich de betreffende pagina bevindt. In dit geval is die host een machine van de Open Universiteit. Er vindt enige communicatie plaats, die ertoe leidt dat de pagina naar de browser wordt verzonden. De browser zorgt er tenslotte voor dat u de betreffende webpagina te zien krijgt. De rol van de browser is dus tweeledig: communiceren met de host waar zich de pagina bevindt, én de pagina zichtbaar maken op het scherm van uw pc. Webpagina Maar wat is een webpagina eigenlijk? Het woord webpagina bestaat uit twee delen: web en pagina. We beginnen met het woord pagina. Dat zegt iets over het uiterlijk van het document wanneer het met een browser wordt weergegeven. Op een beeldscherm ziet het er dan uit als een pagina in een (plaatjes)boek. Toch zijn er verschillen. U kunt de (web)pagina niet zomaar omslaan. Wat meestal wel kan, is met de muisaanwijzer ergens op de pagina klikken waardoor weer een nieuwe pagina verschijnt. We maken dan gebruik van een link. Een link of voluit een hyperlink is een, in de pagina opgenomen verwijzing naar een andere pagina die ook ergens op een (meestal) andere host staat. Door te klikken, vragen we de browser die pagina op te halen en op onze pc weer te geven. Het eerste deel ‘web’ van het woord webpagina zegt dat de pagina onderdeel is van het world wide web. Hyperlink 2.2 World wide web (www) Informatiesysteem Verschil internet en www WAT IS HET WORLD WIDE WEB? Het world wide web is niet hetzelfde als internet. Internet is een netwerk van computers en het world wide web is een applicatie die door internet mogelijk wordt gemaakt. Het world wide web, kortheidshalve ook wel ‘het web’, www of W3 genoemd, is preciezer gezegd een applicatie die op internet wordt aangeboden als een hypermedia-informatiesysteem dat – platformonafhankelijk – dynamisch – wereldwijd – gedistribueerd – interactief is. Op de verschillende aspecten van deze omschrijving zullen we nader ingaan. OU 75 Inleiding informatica Hypertekst Website Hypermedia-informatiesysteem De applicatie www is gebaseerd op hypertekst. Onder een hypertekst verstaan we een (elektronisch) document dat door (hyper)links verwijst naar een of meer andere documenten. Op deze wijze kunnen op het web aanwezige documenten op willekeurige wijze aan elkaar gerelateerd worden. In het algemeen herkent u een link aan een onderstreept woord of zinsnede met een andere kleur dan de omringende tekst. Vaak ook verandert de muisaanwijzer van vorm als deze zich op een link bevindt. Klikt u met de muisaanwijzer op zo’n link, dan wordt er doorgeschakeld naar de pagina waarnaar die link verwijst. Een verzameling met elkaar samenhangende, met behulp van hyperlinks gekoppelde documenten, heet een website. Een schematische voorstelling van een website staat afgebeeld in figuur 15.2. FIGUUR 15.2 Startpagina Homepage Index Applet Script 76 Schematische voorstelling van gekoppelde pagina’s De pagina boven in deze structuur van pagina’s wordt de startpagina, homepage of index genoemd. Hyperlinks behoeven niet uitsluitend te verwijzen naar tekstuele documenten. Ze kunnen ook verwijzen naar plaatjes, grafieken, videofragmenten, geluidsfragmenten en dergelijke. Dat verklaart het woord media in het woord hypermediasysteem. Ook bestaat de mogelijkheid om bijvoorbeeld in de pagina een programmaatje op te nemen dat uitgevoerd kan worden als de computer daar voor geschikt is. Dit kan een zogenaamde applet zijn, die door de, op de computer aanwezige, Java-programmatuur uitgevoerd wordt. Ook kan het een script zijn, geschreven in een zogenaamde scripttaal, zoals Javascript, dat door de browser zelf uitgevoerd kan worden. Hierdoor kunnen allerlei extra functies aan een pagina toegevoegd worden, zoals animaties, interactieve invulschermen of statistische analyse van het gebruik van de pagina. OU Leereenheid 15 Internet (1): enkele toepassingen Interactief en wereldwijd gedistribueerd De pagina’s die u op uw computer bekijkt, kunnen zich overal bevinden. Het klikken op een link kan u verbinden met een geheel andere computer van internet. U bepaalt door te klikken (dus in interactie met de geboden pagina’s) zelf welke weg u bewandelt via de hyperlinks. Hierdoor is het www dus een interactief informatiesysteem. Omdat alle met elkaar verbonden documenten zich op verschillende computers over de gehele wereld kunnen bevinden, is er sprake van een wereldwijd gedistribueerd (of verdeeld) informatiesysteem. Interactief Wereldwijd gedistribueerd Platformonafhankelijk en dynamisch De computers waarop de pagina’s staan, kunnen van verschillende makelij zijn en kunnen verschillende besturingssystemen bezitten. Het www ‘werkt’ op al die computers en besturingssystemen. We spreken daarom van een platformonafhankelijk informatiesysteem. Met platform wordt bedoeld het computersysteem (combinatie computer en besturingssysteem) waarop de pagina aanwezig is. Omdat de informatie over zoveel computers met zoveel verschillende beheerders is verspreid, wordt (on)regelmatig de informatie aangepast, verwijderd of uitgebreid. Het geheel is dan ook een dynamische vorm van informatievoorziening, met alle voor- en nadelen van steeds wijzigende informatie. Platformonafhankelijk Dynamisch OPGAVE 15.1 Noem enkele voordelen en nadelen van het dynamische informatiesysteem dat het world wide web is. Het world wide web is dus een applicatie op internet waarbij allerlei webpagina’s, die op verschillende aangesloten computers aanwezig zijn, naar elkaar verwijzen en via internet geraadpleegd kunnen worden. Door al die onderlinge verbindingen heeft het de naam web gekregen. Het is in feite een groot spinnenweb geworden dat met hyperlinks aan elkaar hangt. 2.3 HTML Webpagina’s zijn opgeslagen in bestanden. Voordat een browser een pagina kan tonen, moet een kopie van het betreffende bestand eerst naar de browser worden gestuurd. Om de toegestuurde pagina te kunnen weergeven, moet de browser de pagina kunnen ‘begrijpen’. Om daarvoor te zorgen, zijn pagina’s veelal in een gestandaardiseerde taal beschreven: HTML. Die afkorting staat voor hypertext markup language. HTML is geen programmeertaal, maar een opmaaktaal waarmee de lay-out van de op het scherm te tonen pagina wordt bepaald. In figuur 15.3 zien we een eenvoudige webpagina weergegeven door de browser, met als scherm daar overheen de broncode (source) van deze webpagina. HTML Opmaaktaal Broncode Voorbeeld We zien in de broncode de tekst terug met een heleboel extra codes daar tussendoor. Al die codes staan tussen vishaken. Dat zijn de HTML-codes die voor de juiste lay-out zorgen en links mogelijk maken. OU 77 Inleiding informatica FIGUUR 15.3 Eenvoudige webpagina, met de broncode Via uw webbrowser kunt u zelf ook de HTML-code van een pagina bekijken, bijvoorbeeld via de optie Bron of Source. In de broncode komt de volgende regel voor: <H2><EM>Openingstijden<EM></H2> Het paar <H2> ... </H2> geeft aan dat de tekst die daartussen staat (hier: Openingstijden), als een kop van niveau 2 (de H van H2 staat voor header) moet worden afgedrukt. Daardoor wordt bijvoorbeeld de afmeting van de letters bepaalt. Het paar <EM> ... </EM> geeft aan dat de tekst die daartussen staat, nadruk moet krijgen (EM is de afkorting van emphasis: nadruk). De betreffende tekst kan nadruk krijgen doordat de letters cursief worden afgedrukt. Figuur 15.3 toont een zeer eenvoudige webpagina. Meestal zijn webpagina’s veel ingewikkelder. In veel gevallen is de pagina zoals de browser die toont op het scherm, niet in één bestand beschreven, maar in meerdere. Vaak is er een HTML-bestand dat als basis dient, en zijn er vanuit dat bestand links naar diverse objecten, zoals plaatjes en geluidsfragmenten, die in andere bestanden staan beschreven. Een voorbeeld van die structuur is te zien in figuur 15.4. 78 OU Leereenheid 15 Internet (1): enkele toepassingen FIGUUR 15.4 Een pagina wordt opgebouwd uit diverse bestanden. Dat een pagina uit verschillende bestanden moet worden opgebouwd, kunt u soms zien aan de wijze waarop een pagina op uw beeldscherm wordt opgebouwd. U ziet dan dat niet de hele pagina in een keer op het scherm verschijnt, maar dat het bijvoorbeeld voor diverse figuren even duurt voordat ze op het scherm verschijnen. Dat komt omdat de betreffende bestanden niet tegelijkertijd worden opgehaald, maar na elkaar. Bij de manier waarop de HTML-code wordt vertaald naar een opgemaakte pagina, zijn kleine verschillen mogelijk tussen de webbrowsers. Hoe een pagina er precies uitziet, is dus afhankelijk van de gebruikte browser. In leereenheid 19 kijken we nader naar HTML en het ontwerpen van websites, waarbij de centrale vraag is hoe we gebruikersvriendelijke websites kunnen maken. 3 Enkele belangrijke begrippen Voordat we het www nader bekijken, bespreken we enkele belangrijke begrippen. 3.1 Client Server server = dienaar CLIENT-SERVER-MODEL Bij het ophalen van een pagina op het web, is er sprake van twee partijen: de client en de server. Deze termen worden gebruikt omdat de ene partij de rol van klant speelt, die diensten afneemt, en de andere de rol van dienstverlener. De client is in dit geval het programma dat verzoekt om de pagina, en de server is het programma dat daarop reageert door de pagina te versturen. De client op de ene host communiceert dus met de server op de andere host (zie figuur 15.5). OU 79 Inleiding informatica FIGUUR 15.5 Proces Leereenheid 14, paragraaf 3 Clients halen informatie op bij de server. In termen van besturingssystemen moeten we eigenlijk niet van programma’s spreken, maar van processen. Het zijn niet de stukken software die met elkaar communiceren, maar processen. Een proces kunnen we opvatten als een programma dat wordt uitgevoerd op een systeem. De termen client en server worden overigens in dit vakgebied niet alleen voor programma’s en processen gebruikt, maar ook voor machines. Een voorbeeld daarvan is de mailserver. Daarmee wordt een machine bedoeld die een rol speelt bij het versturen en ophalen van mail. Meestal zal uit de context duidelijk zijn of we een proces of een machine bedoelen; indien nodig zullen we dit expliciet aangeven. Client-server-model We spreken in dit verband van het client-server-model. We hebben dat gepresenteerd aan de hand van het ophalen en versturen van webpagina’s, maar het wordt veel breder toegepast. Allerlei andere applicaties op internet werken volgens hetzelfde model. Voorbeeld Ook de applicatie chatten werkt volgens het client-server-model. Allerlei gebruikers chatten met elkaar via hun clients. Als een gebruiker iets intypt, stuurt de client de tekst naar een server. De server zorgt ervoor dat de teksten op een leesbare manier worden toegevoegd aan de bestaande teksten en stuurt het resultaat terug naar alle clients. Elke gebruiker kan dan zien wat iedereen heeft getypt. In figuur 15.6 is deze gang van zaken geschetst. Links ziet u gebruikers die een tekst intypen, rechts ziet u dat het resultaat naar alle gebruikers wordt gestuurd. FIGUUR 15.6 80 OU Server en clients bij de applicatie chatten Leereenheid 15 Internet (1): enkele toepassingen De applicatie e-mail is ook gebaseerd op het client-server-model. In paragraaf 5 komen we daar nog uitvoerig op terug. Peer-to-peer Peer = gelijke Ter vergelijking noemen we nog een applicatie die niet gebaseerd is op het client-server-model: peer-to-peer-communicatie. Bij dit soort applicaties kunnen gebruikers op gewone pc’s rechtstreeks met elkaar communiceren, zoals aangegeven in figuur 15.7. Elke persoon kan met ieder ander communiceren. Er is geen vaste scheiding tussen clients en servers. De betrokken partners zijn ‘peers’: elkaars gelijken. Een bekende toepassing is het onderling uitwisselen van MP3-bestanden. FIGUUR 15.7 Peer-to-peer: geen vaste clients en servers Bij het client-server-model zijn dus twee processen betrokken. Het clientproces verzendt een bericht over het netwerk naar het serverproces. Wanneer het serverproces het bericht ontvangt, voert het de gevraagde actie uit en zendt het doorgaans een reactie terug naar de client. Kenmerkend is dus dat de client steeds het initiatief neemt en dat de server daarop reageert. Er is dus een asymmetrie in functie: de client wil iets en de server voldoet daaraan. Een ander verschil dat daarmee samenhangt, is dat een server altijd beschikbaar moet zijn, in afwachting van verzoeken van clients. Clients zijn alleen actief als hun dat zo uitkomt. 3.2 Protocol PROTOCOLLEN Als u een webbrowser een pagina wilt laten ophalen die zich op een andere host bevindt, is daarvoor communicatie nodig. Er worden berichten uitgewisseld tussen de client op uw pc en de server op de andere host voordat u het resultaat ziet op uw scherm. Die uitwisseling van berichten vindt plaats volgens een bepaald protocol. Een protocol bepaalt hoe communicatiepartners met elkaar communiceren en welke acties ze daarbij ondernemen. In een protocol is precies vastgelegd: – welke berichten kunnen worden uitgewisseld en wat de syntaxis daarvan is (voorbeelden daarvan zijn berichten waarin de client een verzoek doet aan een server, en berichten waarin de server dat verzoek beantwoordt; de syntaxis van dergelijke berichten wordt precies omschreven door een protocol) – de volgorde van de uitgewisselde berichten – de acties die ondernomen worden bij het versturen van berichten en bij het ontvangen van berichten. OU 81 Inleiding informatica Ook mensen communiceren via protocollen met elkaar. Neem als voorbeeld Else die in een onbekende stad de weg vraagt aan Michiel: Else: “Hallo.” Michiel: “Hallo.” Else: “Bent u hier bekend?” Michiel: “Een beetje.” Else: “Kunt u mij dan de kortste weg naar het station wijzen?” Michiel: “Eerste weg rechts, uitlopen, aan het eind links.” Else: “Dank u wel.” Michiel: “Graag gedaan.” Ook in dit geval is er sprake van specifieke berichten die in een bepaalde volgorde worden verzonden (al is de syntaxis in dit geval minder streng beschreven), en verwachten de communicatiepartners specifieke reacties op ontvangen berichten. Als Else bijvoorbeeld het initiatief heeft genomen door ‘hallo’ te zeggen, verwacht ze dat Michiel ook iets zegt, om aan te geven dat hij naar haar luistert. Als Michiel inderdaad ‘hallo’ gezegd heeft, verwacht hij dat Else een vraag zal stellen. Hij verwacht niet dat zij zich omdraait en hard wegrent. Het staat Else vrij om dat te doen, maar dan houdt ze zich niet aan het (impliciete) protocol. In een protocol wordt dus vastgelegd hoe een bij elkaar horende client en server met elkaar communiceren. Dat ‘bij elkaar horen’ is ook van belang. Zoals we nog zullen zien, moet de communicatie plaatsvinden met de juiste partners. HTTP Webserver Elke applicatie op internet heeft haar eigen protocol of protocollen. Zo verloopt het ophalen van een webpagina volgens het protocol dat HTTP heet: hypertext transfer protocol. Als de client op de door HTTP voorgeschreven manier een verzoek indient bij de server, dan zal de server dit verzoek weer op de door HTTP voorgeschreven manier afhandelen en op de voorgeschreven manier de gevraagde pagina terugsturen. We zien dus dat HTTP een clientkant heeft en een serverkant. De clientkant van HTTP is geïmplementeerd in de webbrowser. Op dezelfde manier is de serverkant geïmplementeerd in software die de webserver wordt genoemd. De term webserver wordt overigens ook wel gebruikt om een host aan te duiden waarop zich een bepaalde website bevindt. We zullen zien dat bij de applicatie e-mail diverse protocollen betrokken zijn, die we in paragraaf 5 bespreken. 3.3 Adres URL DE STRUCTUUR VAN WWW-ADRESSEN Webpagina’s verwijzen naar elkaar met behulp van (hyper)links. De link naar een pagina bevat het adres van het bestand waarin die pagina is opgeslagen. Zo’n adres noemen we een URL (uniform resource locator). Iedere webpagina heeft zijn eigen URL. Een voorbeeld dat we al eerder zijn tegengekomen, is: http://www.ou.nl/open-index/studenten.htm 82 OU