DAVID MALAN: Okej. Detta är CS50. Och detta är början på veckan sju. Så idag, kanske tack och lov, Vi börjar vår övergång från den lägre nivån värld av C-programmering till den högre nivån värld av webbprogrammering. Och med det kommer vi att ta en titt på exakt hur internet fungerar, vad dessa maskiner och dessa internets att du har använt i flera år nu faktiskt gör under huven mot en bättre förståelse för hur det hela fungerar och hur du kan få det att fungera för dig. Mot detta, varför inte vi ta ett först titta på ett klipp från ett TV-program kallade Numb3rs, som kommer att få oss igång om exakt hur internet fungerar. [VIDEOAVSPELNING] -Det Är en 32-bitars IPP4 adress. -IP. Det är på internet. -Privat Nätverk. Det är Amita privata nätverk. Åh, hon är så fantastiskt. -Oh, Charlie. -Det Är en spegel IP-adress. Hon låter oss titta på vad hon gör i realtid. [END VIDEOAVSPELNING] DAVID MALAN: Så det finns en hel mycket fel med den TV-show. Så låt oss retas isär exakt ett av de första sådana saker och se om vi inte kan linda våra sinnen runt den. Så den sista bildrutan i att filmen, av den show är detta en här, vilket tyder på att detta är vad vissa hackare använder att komma in i något system. Men nej. Om du zoomar in på denna källkod, som är ett språk som kallas Mål C vilka iPhone appar, iPad appar och Mac OS apps är skrivna, du kommer att se att detta är för någon form av ritprogram som har en färgkrita som en variabel. Så dessutom kanske du har märkt denna adress här. Nu är detta ett lika fel. Och det är antagligen medvetet valt att vara en ogiltig adress, så att den inte leder någonstans Om en TV-tittare som faktiskt besöker den. Men det här numret här, något dot något dot något dot något är det som är allmänt känd som en IP-adress. Och det är faktiskt en bra segue till detta ämne mer allmänt, känd som IP, Internet Protocol. Så du har förmodligen åtminstone hört denna fras innan. Men vad är IP eller Internet protokoll som ni förstår det i dag? Oddsen är, om vi bad om en handuppräckning, de flesta av er har nog sagt det ord IP adress innan. Så vad menade du? PUBLIK: [OHÖRBAR]? DAVID MALAN: Vad är det? PUBLIK: [OHÖRBAR]? DAVID MALAN: Ännu en gång. PUBLIK: Adress till datorn. DAVID MALAN: Den adressen för datorn. Så det är exakt rätt. Det visar sig att varje dator på internet, och dessa dagar, varje telefon i ditt ficka och tablet i ryggsäcken, har en IP-adress, internet IP-adress, vilken är en unik adress som identifierar Det hela internet. Nu är det lite av en vit ljuga eftersom världen är faktiskt få slut på IP-adresser. Så vi har börjat använda privata IP-adresser. Men mer om det i ett ögonblick. Men du kan tänka dig en IP-adress som som din postservice street adress. Vi har använder exemplet med Maxwell Dworkin, CS byggnad, på förhand 33 Oxford Street Cambridge, Mass, 02138, USA. Det är dess unika adress i världen. På liknande sätt göra datorer har unika adresser. De råkar bara ser lite annorlunda- ett antal dot ett antal dot ett antal dot ett nummer. Och är det någon som faktiskt vet vad gäller nummerserie är för var och en av dessa hashar? Yeah. PUBLIK: 0 till 255? DAVID MALAN: Exakt. 0-255. Och även om du inte visste att nu dra en slutsats, hur många bitar som används för att representera var och en av dessa siffror då? Åtta uppenbarligen på grund av det högsta du kan räkna är 255, det är ett 8-bitars värde. Så totalt är en IP-adress med 32 bitar. Så snabbt vidarebefordran till matematisk slutsats, hur många möjliga IP-adresser finns det i världen, då? Så det är 8 plus 8 plus 8 plus 8, så det är 32 bitar. Och vi har alltid sagt att 2 till 32 är ungefär? OK. Jag ska sätta in den här. Fyra miljarder. Och vi pratade om det i veckan noll när vi pratade om telefonböcker med galna antal sidor. Men den typ av det är att det finns ett begränsat antal IP-adresser. Och även om fyra miljarder kan tyckas som mycket, vi människor har konsumerar en hel del av dem för alla våra servrar och enheter och så vidare. Så detta är faktiskt att bli ett problem. Nu finns det en tendens att vara en system bakom vem som har vilken IP. Till exempel, många av datorerna på Harvard har unika adresser som börjar med en av dessa två värden. MIT, på liknande sätt, har ett prefix. Och en hel del företag och universitet har sina egna unika prefix. Och då de flesta av oss för vårt hem Internet-anslutningar och liknande, Vi delar vissa prefix som Comcast eller någon som råkar äga. Och detta är bara att säga att om du tittade på de flesta datorer på campus, De skulle förmodligen ha en IP adress som ser ut så här. Nu kanske du också ibland se en IP-adress börjar så här. Faktum är att om någon av er växte upp med tillgång till internet i hemmet, och du var aldrig tillräckligt tekniskt nyfiken att rota runt egna datorinställningar, du förmodligen istället såg en adress som ser mer ut som detta, som började med 10, eller 172,6, eller 192.168, eller vissa varianter därav. Och det betyder bara att världen avsätts en hel massa siffror att vara privat, vilket betyder du kan använda dem i ditt hem, du kan även använda dem på din campus och inom företaget, men du kan inte använda dem på internet i stort. Och så dessa privata IPs ha varit en lösning mot att se till att åtminstone så långt som att hela världen är berörda, vi inte använder så många IP-adresser. Men åtminstone, kan vi, på vårt eget campus, har ganska mycket som många IP-adresser som vi vill. Men vem bryr sig? Vad är betydelsen av allt detta till en faktisk användning av internet? Nåväl, låt oss ta en titt på kanske en enkel bild här. Låt mig genom båda dessa upp på skärmen. Och förlåt min handstil här. Men om vi tänker på oss själva som är denna lilla laptop här någonstans på campus, dessa dagar har Wi-Fi. Men i förr och om du hittar rätt adapter, Det kan ha en Ethernet-kabel vilket skulle på liknande sätt låta du ansluter till någon form av anordning. Och du kan kalla detta valfritt antal saker. Men jag ska gå vidare och kalla detta, för nu, vad sägs om en accesspunkt? Så det här är min laptop. Detta är min AP, eller åtkomstpunkt, och detta är en del trådlösa enheten, Inte olikt de som Harvard har över taken och väggar runt campus som har blinkande lampor och det är vad dina bärbara datorer brukade prata trådlöst till resten av nätet. Så på något sätt denna laptop talar till det där på väggen, i matsalen, eller någon annanstans. Nu, under tiden, är att accesspunkt ansluten till något annat på campus. Och det är förmodligen något känd som en omkopplare. Och de ser mycket mer intressant än bara dessa box diagram. Men på något sätt, det är sak ansluten till en omkopplare. Och i sin tur, på något sätt att omkopplaren är ansluten till en enhet som är nog en lite större, en så kallad router. Och sedan, under tiden, Harvard är ansluten till hela internet som vi ska dra så detta moln här, via någon antal trådar eller trådlös teknik. Så det finns en hel del steg mellan mig och resten av världen. Och faktiskt, även inom denna bild här, finns det några andra servrar eller tjänster som berörs. Och jag kommer bara att dra dessa något abstrakt bara så att vi har förkortningarna framför oss. En heter DHCP. Och en annan, lite mer intressant för idag, kallas DNS. Så dessa är servrar som är på något sätt tillgänglig för min dator också. Så nu ska vi retas isär lite jargong. Så åtkomstpunkten är just denna trådlösa enheten ofta med antenner som faktiskt kan du prata med en trådlöst. Hemma kan du ringa detta är en router. Det kan göras av Linksys, eller Apple, eller D-Link, eller valfritt antal företag. Som i sin tur är ansluten till en omkopplare av något slag. Eller hemma, vad är din Wi-Fi enheten antagligen ansluten till istället? Eftersom du gör antagligen inte äger all denna utrustning. Yeah. Kabelmodem eller DSL-modem hemma att du fick från Verizon, eller Comcast, eller en av transportörerna. Så tänk på allt detta komplexa att stödja ett universitet eller egentligen ett företag som Comcast. Och egentligen, grejer det är i ditt hem är antagligen på denna sida av stängslet plus kanske en av dessa hem route-- en av dessa är kabelmodem eller DSL modem som de kan erbjuda. Så en switch är bara en enhet med en hel massa uppgifter uttagen i den. Faktum är att om du minns att nyheterna betänkande vi spelade på den stora skärmen ett par veckor sedan var vi talade om shell shock, och hur illa det var? Och det fanns av dessa fotografier av kablar och domkrafter, och saker som ser tekniskt? Det var bara dumma växlar som bara internet ansluter datorer genom att koppla kablar i dem. Så det är allt en switch är. Nu, dessa enheter får en lite mer intressant. DHCP. Om du har petade runt dator hemma eller på campus, du kanske har sett denna akronym. Vet någon vad en DHCP-server? Dynamic Host Configuration Protocol? Inte den typ av sak som du verkligen behöver skriva ner. DHCP. någon alls? Okej. Så låt oss spola tillbaka berättelsen. Om historien här till hands är lovad på min att ha en unik adress i världen, en IP-adress, var kommer det ifrån? I förr, när du har fått till campus, du faktiskt hade be någon på Harvard, vad ska min IP-adress vara. Och du skulle manuellt skriva in det i datorn. Men på senare tid, teknik finns som gör att du kan dynamiskt, DHCP, får en IP-adress bara när du ansluter till campus trådlöst eller med en tråd. Så DHCP-server är bara en server som ger din dator en unik IP adress, något slumpmässigt eller via någon algoritm. Men om du tänker tillbaka en några veckor eller några år, när du först registrerade datorn på campus, du berättade Harvard, tillåta mig att ge mig en IP-adress. Nu DNS börjar få en lite mer intressant. Domännamnssystemet. Finns det någon som vill ta ett knivhugg på vad den här saken är här? Det är en eller flera servrar som utföra en relativt enkel uppgift som är slags viktiga. Yeah. PUBLIK: Översätter webbadresser [OHÖRBAR]. DAVID MALAN: Ja. Det översätter webbadresser till IP adresser och vice versa. Betrakta, trots allt, att när du går på hemsidan, du skriver in något i stil facebook.com, eller google.com eller harvard.edu, du säkert aldrig har skrivit mest sannolikt en numerisk IP-adress. Och du kan tänka på anledningen. Tillbaka i dag, till och med nu i viss utsträckning, när du gör en telefon kalla till ett företag, de försöker verkligen svårt att köpa sig ett 800 nummer som faktiskt har ord i det, som 1-800-collect eller något det är minnesvärda sådär så att människor behöver inte komma ihåg vad C-O-L-L-E-C-T faktiskt expanderar. Så vi har sett denna heuristisk i det förflutna. Och faktiskt, det är vad IP-adresser och vad vi ska kalla värdnamn eller fullständigt kvalificerad domännamn göra för oss. Det ger oss möjlighet att adress servrar med ord istället för siffror. Så hur gör vi faktiskt se denna omvandling. Jag kommer att gå vidare och öppna upp ett program. Jag kommer bara att gå vidare och öppna upp ett terminalfönster. Och jag kommer att gå vidare och visa dig vad en DNS-server gör. Till exempel, om jag ville se vad IP-adressen är Facebook, Jag kan skriva på en terminal uppmana liknande this-- och du kan göra detta även inuti apparaten. Och det är lookup facebook.com. Och jag ser en massa saker. Denna första reaktion är Harvards DNS server-- den bilden som jag har dras där. --that s talar om för mig att Facebook IP adress är tydligen detta. Så låt mig gå vidare och kopiera det 173.252.120.16. Och låt mig öppna Chrome på min Mac. Och låt mig gå till http: // och klistra den IP-adressen i och tryck på Retur. Och faktiskt, jag befinner mig på Facebook. Så på något sätt att konvertering, faktiskt hände. Och om jag gör det igen, låt oss do nslookup, www.google.com. Jag får tillbaka en hel massa svar. Och faktiskt, det finns olika sätt att företagen genomföra detta. Ibland är de berätta för världen de har en IP-adress. Men att en IP-adress blir löst eller mappas till flera servrar. Eller i fallet med Google, De berätta för världen, Vi har en hel massa IP-adresser. Din bärbara dator är välkomna att prata kontakta någon en av dessa servrar. Så alla som pågått på under huven. När du skriver in www.google.com Enter i din webbläsare, webbläsaren, och i sin tur ditt operativsystem, Mac OS eller Windows, eller Ubuntu Linux, be närliggande DNS-server, vilken är den verkliga adressen till denna server. Eftersom den sista enheten på den här bilden, en router, är den vars syfte i livet är att ruttinformation, route-paket så att säga, höljen av digital information innehåller nollor och ettor från avsändare till destinationen, från ursprunget till mottagaren. Och så en router vägar grejer. Så varför är det allt särskilt relevant? Nåväl, låt oss ta en titt på hur detta skulle kunna användas. Antag att jag har här en bild av Rob Boden. Så antar att jag vill Skicka denna bild av Rob Boden till Dan i ryggen i föreläsningssalen. Så jag är en dator som min laptop, och Dan är en annan dator på internet. Och jag vill skicka ett paket av information från mig till honom. Det väcker frågan, hur gör jag faktiskt väg detta paket till honom. Tja, i mänskliga termer, skulle jag säga, hej, kan du skicka det till Dan? Och sedan, ett gäng dig förmodligen skulle passera det tillbaka och tillbaka fram och tillbaka tills småningom gör sin väg över till Dan. Men det är lite otydligt. Datorer behöver antagligen vara lite mer metodiskt. Så nog har Dan en IP-adress. Så vad egentligen jag ska göra är att jag borde ta, till exempel, ett tomt hölje så här. Och jag vet inte vad Dan IP-adress är. Så jag ska bara generalisera det som Dan IP. Och jag kommer att sätta detta i det att sätta in i mitt kuvert. Och under tiden, jag har en IP-adress. Det spelar ingen roll i dag vad det är. Så jag ska bara säga min IP i ryggen hörnet finns. Och sedan kommer jag att gå vidare och lägga denna bild på insidan av detta anslag. Och sedan, var och en av er, förmodligen, som routrar på internet, är förkonfigurerade med människor i allmänhet eller ibland med automatiserade algoritmer för att veta att Om Dan IP-adress börjar med en 1, det ska gå den vägen. Om Dan IP-adress börjar med en 2 bör det gå den vägen. Kanske en 3 går på det sättet. Kanske en 4 går på det sättet. Och det är lite överdrivet. Naivt men det är den allmänna idén. Var och en av dessa routers-- och det kanske vara så många som 30 mellan mig och Dan. --have något slags kalkylblad insidan av sitt minne, en databastabell, som bara säger: IP-adress som ser ut så här, går det här sättet. En IP-adress som ser så här, går den vägen. Och det är hur det är ganska enkla beslut. Men det visar sig att dessa routrar något mer än så, eventuellt. De tillåter datorer till garanti leverans, åtminstone med hög sannolikhet. Så du kanske också har hört, även om du har aldrig riktigt brytt eller undrat vad det är, kanske du har hört av något av denna akronym. Låt oss gå tillbaka hit för bara ett ögonblick och dra upp det. TCP, Transmission Control Protocol. Ett annat tekniskt sätt att bara beskriver en annan teknik som också användes på internet. Så IP, Internet Protocol används för adressering. Det någon standard att världen kom upp med det sagt, du sätter en IP-adress här för Dan, och en IP-adress här för dig själv, och sedan lägga några information på ett kuvert. Men TCP är en annan teknik, används tillsammans med IP. Och faktiskt, om du har någonsin sett dessa akronymer förut, Du har förmodligen sett TCP slash IP som just innebär att människor tenderar att använda dem tillsammans. Tja, är TCP slags coolt eftersom det tillåter du kan öka sannolikheten att uppgifterna är faktiskt kommer att få från mig till Dan. I själva verket är internet en galen plats. Det finns ingen garanti för att om jag skicka data på detta sätt att det kommer att gå så nästa gång. Det kan gå den vägen eller så. Det kortaste avståndet mellan två punkter är inte nödvändigtvis en rak eller samma linje. Dessutom har några av er killar kan göra misstag eller få överväldigad med för många kuvert kommer din väg. Så du ska bara ge upp och bokstavligen tappar en del av dessa kuvert på golvet. Och på samma sätt kan data släpps på internet av routrar. Så för att minska oddsen för detta, jag ska att ta min lilla säkerhet sax här och klippa Rob in i, låt oss säga, fyra stycken, fyra segment. Och nu kommer jag att gå vidare och lägga ytterligare en bit information På detta anslag. Jag kommer att säga något i stil med, 1 av 4. Så nu, min sista kuvertet, vid stone det första, ser ut så här. Jag kommer att gå vidare och sätta detta i här. Och för tiden skull, kommer jag att märka de andra på samma sätt som två av fyra, 3 av 4, 4 av 4. Återigen, med Dan IP-adress i framför den och med min IP-adress på baksidan till vänster, men jag kan inte skicka dem ännu. Eftersom det visar sig att på internet, servrar kan göra flera saker. I själva verket kan vi alla använder webben ganska lite, webben, http: // oavsett. Men det finns andra tjänster på Internet. Vilka är några andra tjänster, sortera användar, konsumentvänliga tjänster som kommer att tänka förutom en webbläsare-programtyp? PUBLIK: Email. DAVID MALAN: E. OK. Bra. Vad är en till? PUBLIK: Chatt. DAVID MALAN: Så chatta, oavsett det är Skype, eller Gchat, eller något så. PUBLIK: Förvaring. DAVID MALAN: Så någon form av lagringstjänst, förvisso. Något i stil med Dropbox, eller Box eller liknande. Så det finns olika tjänster på Internet. Och det visar sig att Dan, om han verkligen är en dator, måste inte vara tilldelad till en sak i livet. Han kan faktiskt göra flera saker. Och faktiskt, kan han vara en e-postserver. Han kan vara en webbserver. Han kan vara en chattserver. Men det tyder på att Dan behöver veta i förväg vad är det Innehållet i dessa meddelanden. Är detta en webbsida jag skickar honom? Är det ett mail jag skickar honom? Är det ett ögonblick budskap jag skickar honom? Så vi behöver ytterligare en bit av information om dessa kuvert så att Dan, när han får detta anslag, vet vad programmet ska användas för att visa den. Är det en webbläsare? Är det Google? Är det Skype? Eller är det Outlook eller något andra program helt och hållet? Och så, kommer med TCP bara en mänsklig konvention. Världens beslutade några år sedan att associera unika heltal med de mest populära tjänsterna. Ens kallas File Transfer Protocol, FTP, även om det är lite gammal nu. Men dess unika identifierare är 21. SMTP för utgående e-post, dess unika identifierare är 25 bara för att. DNS, det som vi talat om tidigare, tar med antalet 53 för sina frågor. Liksom vad är IP adress google.com? Och nu, ju mer bekant du kan ha någonstans någon gång sett nummer 80 och kanske 443. De som är den unika identifierare för HTTP, vilket är det språk Vi kommer snart att se använt för webbtrafik mellan webbläsare och servrar. Och 443 är för säker version därav. Så en sista detalj är jag ska sätta på min kuvertet är att jag inte tänker skicka detta bara för att Dan IP. Jag kommer att skicka det till något att säga, : 80, om vad jag försöker att skicka honom är en webbsida, en webbsida som innehåller Rob Bodens bild. Så jag kommer att göra samma sak sak på de här andra kuvert. Och sedan slutligen, kommer jag att släppa dessa av med närmaste router, erkänner att det router kanske inte nödvändigtvis ta samma väg varje gång. I själva verket kan jag ha första paketet kommer detta sätt. Andra paket skulle gå den vägen. Tredje packet-- starta routing. --might gå hit. Och i theory-- inte kan hålla det. I teorin, alla fyra av dessa paket bör så småningom väg sin väg, emellertid effektivt eller ineffektivt, hela vägen till baksidan. Vid vilken punkt, Dan, efter kvitto, kan sätta ihop dem baserad on-- det roliga är, Vi vet alla vad resultatet här kommer att bli. Dan kommer att få en bild av Rob. Men låt oss se hur detta fungerar. Tja, snarare, är Dan kommer att få del av en bild på Rob. Mycket bra. Allas deltagande i dag. Okej. Så när Dan börjar att ta emot dessa paket, låt oss ställa en fråga. Vad händer om en av er blir lat, överbelastad, skadlig, eller bara driven av, och en eller flera av de Paketet gör det inte till Dan? Hur är Dan kommer att veta att han inte gjorde det få ett av segmenten i fyra Jag skickade honom? Precis intuitivt, vad kan vi göra? Yeah? PUBLIK: [OHÖRBAR]. DAVID MALAN: Exakt. Därför att jag har individuellt numrerad dem, och Jag har angett hur många segment där borde vara, kan han dra slutsatsen att vilken, om någon, av segmenten han är faktiskt saknas. Och vad TCP berättar datorer till gör, om datorer, som Mac OS, och Windows och Linux-stöd och förstå TCP, vilket de gör, TCP dokumentation huvudsak säger att Dan skulle skicka mig ett meddelande tillbaka säger, hej, David, Jag saknar paket nummer 1 av 4, eller 3 av 4, det är vilket som. Och så är mitt jobb att ta en annan bild av Rob, där vi har extra av för senare i dag Om du vill ta med dig, och då kan jag skicka det segmentet av Rob hela vägen till baksidan. Så enkla som denna mekanism är att är vad som händer nästan när som helst du gör något på internet, särskilt för dessa mest populära av tjänster. Det finns andra protokoll, andra tekniker förutom TCP som fungerar lite annorlunda. Men så många av de tjänster som vi normalt Använd egentligen lita på dessa protokoll. Så Dan, fick du fullständig bild tillbaka dit? Ja. Vi har ihop Rob i ryggen. Tack så mycket för routrarna. Antag, jag vill faktiskt se routrar mellan mig och MIT, ungefär som ni var routrarna mellan mig och Dan. Väl, snarare än nslookup för namnserver lookup, Jag kan istället skriva trace route, vilket faktiskt kommer att göra vad den säger. Och jag kommer att göra och lugnt läge med streck 1. Det är en Kommandoradsargumentet som bara säger, prova detta en gång och inte flera gånger. Och nu kommer jag att skriva www.mit.edu. Nu är utsignalen ganska snabbt och kryptiska. Men vad är snyggt om det här är att var och en av dessa rader väsentligen representerar en student i denna publik om du var vägen mellan mig och MIT. Vad du ser här uppe, första, är det domännamn som jag skrev in, eller fullständiga domännamn namn som det korrekt heter. Och detta tydligen är den IP-adressen för www.mit.edu. Min dator räknat ut för mig. Detta här är ett löfte att vi bara tänker att försöka nå MIT inom 30 humle. Det är bäst att inte mer än 30 elever mellan mig och Dan. Och nu, var och en av dessa rader utgör bokstavligen en router mellan mig och Dan, bokstavligen en av er. Och så detta verkar inte att ha ett namn, ett domännamn. Det har bara en IP. Och det tog bara 0,662 millisekunder att komma från mig till den första routern. Nästa man inte var så mycket längre bort. Det tog bara en millisekund för att komma dit. Och nu, tack och lov, saker bli lite mer användarvänligt med namn som är kryptiska men lite mer att berätta. Detta är uppenbarligen en router i Kärnan i Harvards nätverk inrymt, bara för att folk har berättat för oss Detta, i Science Center, SC. Och GW är bara en förkortning notation för gateway som är en synonym för router. Så detta är något system administratörens upphöjd väg att namnge en av servrarna i Science Center. Samtidigt är den servern tydligen förbundna genom någon form av kabel till en annan router som är smeknamnet gräns gateway ena streck något, oavsett dessa siffror betyder. Och sedan, som synes, Harvard har en anslutning det är en annan millisekund bort till något kallas de norra vägskäl som är en vanlig peering punkt mellan stora platser som Harvard där massor av kablage går i och möjliggör sammankopplingar mellan olika enheter. Steg sex, tyvärr, inte har ett giltigt namn. Och steg sju blir intressant. Jag har ingen aning vad de flesta av dessa innebär. Men NY gör hoppar ut på mig. Och vad betyder det antagligen betyda? Det är inte ens tekniskt. Bara New York. Så ja, vad är vanligt mänskligt konvention inte garanteras men gemensamt konventionen är att namn routrar som på grund av staden eller flygplats kod som de är närmast. Så med en viss sannolikhet, denna router nummer sju förmodligen är, faktiskt, i New York. Och detta verkar bekräfta detta antagande eftersom det är sex millisekunder i stället för bara en eller så för något här på campus. Men nu ta hänsyn till, rätt på Megabus eller whatnot, det kan ta fyra, fem, sex timmar för att få en mänsklig härifrån till New York. För att få en bit av uppgifter, det tar bara sex millisekunder för att få ett paket från mig till Dan, om han var hela vägen i New York. Sedan slutligen, tydligen är detta domännamn för www.mit.edu. De har tydligen outsourcat sina webbservrar till ett företag som heter Akamai vilket innebär något annat företag driver sina servrar. Och det är därför vi ser som konstig sak där. Nåväl, låt oss göra detta en gång till. Låt oss gå vidare och göra ett spår vägen till vår vän professor Nick Parlante vid Stanford som har en server kallad nifty.stanfor.edu. Enter. Och nu ska vi se förmodligen en något längre väg som går igenom några fler städer. Så här dessa namnlösa Harvard servrar här. Vi är i kärnan av Harvard, gräns porten till Harvard, de norra korsningen, överallt där det är. Och nu, det börjar bli en lite mer intressant. Jag gissar att routern nummer åtta är i vilken stad? PUBLIK: [inplacering RÖSTER] DAVID MALAN: Chicago förmodligen, baserad om detta, på grundval av denna sak här. Och nu har vi Salt Lake City kanske, kanske Los Angeles här, och sedan LAX, Japp, detta är förmodligen LA från botten. Tills sist, det går från södra Kalifornien hela vägen upp till norra Kalifornien där Stanford i Palo Alto. Så ganska cool. Och låt oss ta detta ett steg längre. Det skulle tydligen ta dig 82 millisekunder att skicka ett meddelande till Dan om du var i Kalifornien istället för New York. Låt oss göra något som spårvägar, en försöka www.cnn.co.jp för Japanska versionen av CNN: s hemsida. Och nu är vi fortfarande i Boston verkar just nu. Ett par servrar sex och åtta svarar inte eftersom de är att vara lite privat. Men till slut, det verkar vara något intressant på gång mellan, låt oss säga, steg sju och nio. Vad är troligen mellan sju och nio, och säkerligen mellan sju och steg 17? Det finns ett stort hopp i tid det tar för data att gå från en av dessa humle, en av dessa routrar till en annan. Så oddsen är, någonstans i Här finns det nog, speciellt just här, det finns nog en mycket stor mängd vatten som har några trans Pacific eller trans Atlantkabeln som faktiskt kräver ännu mer tid för data till ta sig från en punkt till en annan. Men återigen, tänk timmar det skulle ta flugan till Japan. Här, i några 200 millisekunder, boom, är ditt budskap egentligen finns. Så du kan leka med detta på apparaten eller i Windows eller Mac OS med lite olika kommandon. Ibland får du dessa stjärnor, liksom i raderna sex och åtta, som bara innebär routrar konfigureras inte att ge dig ett svar för privatlivet skull. Men i allmänhet, denna teknik skulle i själva verket fungerar. Så visar det sig också att det finns andra saftig information som lurar i verktyg att du tar för givet varje dag. Så till exempel, om du får ett e-postmeddelande, uppriktigt som en del av er kan ha en tid, av tvivelaktig ursprung, om du har aldrig såg på Gmail-gränssnittet innan, oavsett om det är för college-gränssnittet eller din personlig, du kan se ditt inkorgen ser ut så här. Och i själva verket är detta en e-post Jag skickade, malan@harvard.edu, till jharvard@cs50.harvard.edu i morse bara så jag kunde ta en skärmdump. Men det visar sig, alla denna gång i Gmail, finns det där lilla triangeln mot den övre högra där bredvid Harvard crest att om du klickar, kan du klicka på Visa original. Och om du gör det, kommer du faktiskt se ett gäng mycket esoteriska uppgifter som tidsstämplar, och IP adresser och domännamn. Men du ser, kort sagt, rubriker som hela tiden har drabbats i varje e du skickar och tar emot. Och det är dessa rubriker som människor kan använda, datavetare eller på annat sätt, att faktiskt sluta med viss sannolikhet där och från vem ett mail faktiskt kom. I själva verket kommer vi att tala in senare veckor om hur e-post själv kan genereras programmässigt som är en mycket bra sak för en webbplats som vill skicka e-post till användarna. Men vi får se, också, hur trivialt det är att skapa e-post från någon till någon annan, om du faktiskt vet hur man kontrollerar rubrikerna. Och även det är en förlorande proposition dessa dagar. Så med det sagt, låt oss gå ett lager upp. Vi började med IP som tar upp paket för oss, ger dem unika adresser. TCP, som, kort sagt, garanterar leverans eller åtminstone ökar sannolikheten därav med lägga till saker som segment, 1 eller 4, 2 av 4, 3 av 4, och fyra av fyra. Och nu ska vi lager på toppen av att ett annat protokoll. Alla dessa saker är protokoll, datakonventioner att diktera hur två datorer tala med en annan. HTTP, slutligen i dag är hypertextöverföringsprotokoll. Och detta är det protokoll att webbläsarna använda när du talar till webbservrar. Så när du drar upp en webbläsare som Chrome eller IE eller Firefox, eller Safari, eller vad som helst, och du skriver in något som facebook.com och tryck på Enter, inte bara gör din dator först översätta facebook.com i vad? En IP-adress. Det converts-- då det sänder sedan ett meddelande till den IP-adressen säger, ge mig dagens hemsida eller ge mig inloggningsskärmen på Facebook. Eller om du redan är inloggad, ge mig standardvyn för min tidslinje. Så det är vad HTTP säger. Och mer dagligt tal, om jag är en webb server och du är-- vad heter du, igen? PUBLIK: Margot. DAVID MALAN: Margot är en webb server, och jag är en webbläsare, och jag vill bara hämta min tidslinje från Margot, margot.com, Jag skulle säga, hej, jag är David. PUBLIK: Hej, jag heter Margot. DAVID MALAN: Och du skulle då svara med ytterligare information till mig. Så vi har denna dumma människa konvention för instance-- tack. --Med skaka varandras händer. Och datorer har samma idé där en klient, som en webbläsare, frågar en server för att göra något på hans eller hennes räkning. Och så här är en bild, till exempel. Till vänster är en dator bärbar dator, stationär, vad som helst, eller till och med en telefon. Och till höger är en mycket daterad vy av en server. De ser vanligtvis mindre och sexigare dessa dagar. Men poängen är helt enkelt att det finns någon form av kommunikation mellan klient och server. Och kunder i den mening av någon i en restaurang och servitör eller servitris, Samma idé med datorer. Klienter och servrar, en ber om information, man svarar med information. Nu, hur fungerar det information som kommer tillbaka? Tja, överväga detta. Få är typ av standard way-- och det är en super enkel term. --that bara dikterar hur en webbläsare får information från en server. Med andra ord, snarare än enbart goof-ily utvidga min hand till Margot, om jag var verkligen en webbläsare, jag skulle stoppa inuti ett kuvert, som jag gjorde med Rob foto innan, en textmeddelande som bokstavligen säger ungefär så här, get / http / 1.1hostwww.google.com eller margot.com eller vad serverns namn kanske råkar vara. Och sedan, dot dot dot, några andra saker. Men bokstavligt, insida av ett kuvert skulle vara ganska enkel text meddelande så. Att vid mottagandet, Margot skulle öppna, läsa innehållet, och reagera därefter. Nu är det lite icke uppenbara med detta exempel. Men få /, vad är snedstreck hänvisar troligen till, bara baserat på din förtrogenhet med surfar på webben i det dagliga livet? Vad är slash? PUBLIK: [OHÖRBAR]. DAVID MALAN: An escape-sekvens. Inte en dålig idé, men i allmänhet fly sekvenser gå åt andra hållet. Det skulle vara ett omvänt snedstreck vanligt. Men inte en dålig tanke. Yeah? En pekare. Också bra tanke, men ännu enklare än så. Hemkatalogen. Roten till en hårddisk, så att säga. De flesta av oss inte skriver detta. Men tekniskt sett, om du ville att vara super korrekt i dessa dagar, du skulle gå till något liknande http://www.facebook.com/. Nu, sa jag de flesta av oss skulle inte bry skriva snedstreck. Och ärligt talat, de flesta webbläsare, ingår Chrome, försök inte ens att visa oss snedstreck dessa dagar bara för att de gillar att vara enkel och koncis. Men snedstrecket betyder bara gå till www.facebook.com och få snedstreck, roten av hårddisk, standardsidan på facebook.com. Använda vilket protokoll? Jo, genom att använda version 1.1 av denna sak som kallas HTTP. Servern eller Margot-- och förresten, gör du något emot att jag använder dig i dessa? OK. Så vi är bra nu. Så Margot gensvar nu med ett hölje av hennes egna, innanför vilken är en likaledes textmeddelande. Den första raden i vilket, Japp, jag talar HTTP version 1.1. 200 är statuskoden vilket bara innebär att allt är OK. Jag har sidan du letar efter. Samtidigt Content-Type: text / html, detta är Margot halvmystiska sätt att säga, vad du har begärt en webbsida. Och det är typ, så att speak-- nästan som en variabel bemärkelse, men detta är mycket högre nivå nu. Dess datatyp är text men specifikt HTML. Språket ska vi snart se. Och sedan finns det några andra saker. Så andra saker är bokstavligen vad Facebook svarar med. Så låt oss se detta också. Låt mig gå vidare och öppna upp Chrome på min laptop som du kan göra på din egen dator också. Och jag kommer att gå vidare och öppna upp www.facebook.com. Enter. Och jag får detta familjära skärmen här. Men nu ska jag göra något annat. Jag kommer att gå vidare och gå till Visa, Developer. Och gå till utvecklare Verktyg, som du bör har inom Chrome på datorn, åtminstone inom din apparat. Jag kommer att rulla ut sak här uppe, och du är kommer att se en hel drös av kryptisk text här. Det visar sig att det som Margot sätta in av detta kuvert som svar på mig är ett språk som kallas HTML, Hypertext Markup Language. Det är inte en programmerings språk eftersom du inte kan, det saknar loopar, villkor, och funktioner, och sånt. Det är ett märkspråk. I detta har den speciella syntax kallas taggar och attribut som berättar en webbläsare vad som ska visas på skärmen och hur du vill visa det. Ska centreras? Ska det vara djärva ansikten? Röd, grön, blå? Det är ett märkspråk. I det, berättar den en webbläsare vad som ska visas på skärmen. Så det här är, bokstavligen, alla de HTML och mer att Facebook-server spotta ut och att Chrome och IE och Firefox har ritats av deras respektive författare att förstå. Och i själva verket är det en litet smutsigare än så. Om du istället gå till Visa, Utvecklare, Visa källa, Detta är faktiskt vad Facebook är ute sätta. Sortera på noll för fem för stil, rätt, om vi dra slutsatsen att detta är förmodligen inte den bästa. Men ärligt talat, kan de komma undan med det eftersom om du tjänar upp miljarder webbsidor per dag, du verkligen vill inte slösa tid och bytes, och pengar i slutändan i sändning saker som ny rad tecken och mellanslag och tabbar eftersom du spenderar på bandbredd onödan med din ISP. Så ja, detta innebar som skall minified på detta sätt. Men vad Chrome gör för oss är, det tar denna HTML, som helt ser ut en enda röra och obegripligt för människors, och det är bara att formatera den. Det är ganska skriva ut det så att Vi kan svepa våra sinnen runt det lite mer lätt. Men mer intressant är det. Om jag klickar nu i Chrome, inte delar utan nätverk, Jag kommer att se en liten loggning skärm som är kommer att visa mig alla av HTTP-förfrågningar som faktiskt kommer tillbaka och tillbaka mellan mig och Facebook eller mig och Margot om jag gör mer än en begäran. Så jag ska gå vidare och klicka reload-ikonen här uppe i Chrome. Och nu, ett helt gäng grejer flög förbi i botten. Jag kommer att rulla tillbaka upp till toppen. Och nu, märker detta, den begära allra första min webbläsare gjorde var till www.facebook.com. Det är med hjälp av get mekanism som just innebär det talar textspråk att vi såg ett exempel på en stund sedan. Och dessutom visar det sig att svaret att Facebook gav mig är 200 OK, vilket betyder att jag hittade webbsidan i fråga. Om jag klickar på denna rad, jag kan faktiskt se dessa rubriker lite mer tydligt. Dessa kommer att vara bättre inom kort. Men märker att min webbläsare skickar en hel del uppgifter som värd, och metod, och cookies. Vi ska återkomma till dem inom kort. Och du kommer äntligen förstå vad en cookie egentligen är och hur du kommer snart att skicka dem. Och du kan se vad Facebook skickar tillbaka, inklusive innehållet typ av text HTML, aktuellt datum tid, dess integritet politik, eller brist på sådan, och sedan slutligen ett antal cookies som håller på att på datorn också. Men vi ska retas dem ifrån varandra inom kort. Men kort sagt, varje gång du besökte en webbsida, nu i flera år, du har att skicka meddelanden till den jag skickade i ett kuvert till Margot och Dan. Och du har varit att få tillbaka svar som denna från Facebook. Men dessutom, gissa vad som är utlämnas till Facebook och Google, och alla andra varje gång du besöker en webbsida? Vad är på utsidan av varje Kuvert datorn har skickat ut? Din IP-adress, eller hur? Kanske inte ditt namn per se, men din IP-adress. Och precis, låt oss ansluta prickar senare, om du använder tjänster som på webben, eller BitTorrent, och livet, och du har registrerat en dator på en plats som Harvard, någon någonstans vet att John Harvards IP-adresser här, dot detta, dot detta, prick här. Och faktiskt, loggar kan han höll både på campus så här, på en Comcast nätverk på Verizon, eller ärligt talat, på NSA som vi nyligen har lärt sig, som loggar i princip allt att du gör på internet. Och vi ska återkomma till Detta framtiden klassen om konsekvenserna av dessa beslut och säkerhetsdesign. Men sanningen är, du verkligen har inte så mycket integritet. Varje gång du har besökt någonstans på webben, du har att visa din hand och avslöjar åtminstone din IP-adress. Så skrämmande notera åt sidan, vad kan vi göra för att bädda saker som katter på en webbsida? Så vi har en massa svar som kan komma tillbaka från servern. Och vi kommer inte att se alla dessa i dag. Men 200 är bra. Och du förmodligen inte sett alla dessa som människa förut. Men du har säkert sett åtminstone en av dessa. Vilken av dessa kan se ut bekant? PUBLIK: 404 DAVID MALAN: Så 404. Filen hittades inte. Och faktiskt, du kommer att se detta programma själv. 404 betyder bara filen du begärde, snedstreck eller snedstreck något, helt enkelt inte existerar. Och en webbserver typiskt svarar med 404 som ett resultat Under tiden kommer vi snart se att innehållet i detta meddelande är detta språk som kallas HTML. Och detta är en super enkel sträng med HTML det gör ingenting annat än visa hallå världen på skärmen. I själva verket ser du på toppen av detta något som kallas en dokumenttyp deklaration som bara säger hej, värld. Denna fil innehåller HTML. Och sedan, nästa bit av HTML att du kommer att skriva, den har en öppen hållare, och sedan ordet HTML, sedan en sluten konsol, och sedan öppen huvud, och nära fästet. Så kort sagt, låt oss faktiskt göra detta mer mekaniskt. Låt mig gå in i min apparat, men du kan göra det var som helst att du har en textredigerare för att. Jag kommer att gå vidare och spara en fil som heter hello.html. Jag ska sätta upp det på mitt skrivbord till hålla saker super enkel just nu. Och jag kommer att göra exakt vad jag såg precis. Så doc typ HTML, öppen fäste HTML. Och nu, meddelande, jag ska göra motsatsen förebyggande syfte. Och tvärtom, menar jag samma etikett, så att säga, men det börjar med ett snedstreck. Och sedan, här borta, Jag kommer att säga, huvud, eftersom det visar sig att varje webbsida har ett så kallat huvud, som är saker som går i titeln bar, högst upp på sidan. I titeln är bara kommer att bli hej här. Och nu kommer jag att ha en kropp på denna webbsida. Så varje webbsida har både ett huvud där uppe och en kropp vilket är tarmar av sidan. Och här, jag ska bara säga något i stil hallå världen. Och jag kommer att spara filen. Om jag nu minimera gedit, titta, det finns en liten fil på mitt skrivbord som heter hello.html. Nu, det är inte på server ännu, per se, i själva verket, är det bara på min egen personliga skrivbord här. Men om jag öppnar Chrome och slog kontroll O-- finns katten i fråga. --and jag går till mitt skrivbord. Och jag öppnar hello.html, där, i Faktum är min super enkel webbsida. Kroppen av min sida och denna vita fönster här är kroppen med hallå världen. Och titeln i huvudet av sidan är på fliken där. Och vi kommer att se snart att det är super enkel att öppna andra sidor också. Till exempel kommer jag att gå i några av de distributionskoden för denna vecka, källa sju, och jag kommer att öppna upp inte JPEG som den här killen är här. Men jag kommer att öppna upp image.html, vilket i slutändan ser ut så här. Men låt mig nu öppna upp detta i gedit, och gå in i Dropbox källa sju, och image.html. Det mesta av detta är bara kommenterar som vi snart får se. Men om jag vill sätta Grumpy Katt insidan av denna webbsida, räcker det att sätta en annan öppen fäste, och sedan nyckelordet bild eller img för korta, och därefter alternativ text för tillgänglighetsskäl om någon har en skärm läsare eller något liknande. Källa som är, vad är det namnet på filen, cat.jpeg. Och sedan, eftersom detta taggen är lite speciell, vi sätter snedstreck, som vi får se, insidan av etiketten. Men slutresultatet är en webb sida som ser ut så här. Så kort sagt, vad vi kommer att bli gör nu med tiden använder webben och skapa webbsidor till i slutändan vara containrar inte bara för dumma saker som bilder och länkar, och tabeller, och punktlistor och liknande, men också för att ge oss själva ett grafiskt användargränssnitt, ett grafiskt gränssnitt, inte olikt vad vi gjorde vi Breakout. Men inom denna miljö, är vi kommer att börja använda språk som PHP, och JavaScript, databasen språk som kallas SQL, en klient-side skriptspråk kallas JavaScript för att faktiskt skapa alla mer dynamiska gränssnitt men i en mycket, mycket mer bekant sammanhang. Men innan dess, låt oss avsluta idag med en blick, som utlovat, om vad som verkligen händer under huven med internet självt. Före för idag att internet kan användas för att överföra saker liknande webbsidor över HTTP ungefär som jag skakade Margot hand tidigare. Men det finns så många andra tjänster som använder TCP och IP att vi tar för givet att arbetet som vi får se här i denna film som ska ta oss till slutet i dag. [VIDEOAVSPELNING] -För Första gången i historia, människor och maskiner är att arbeta tillsammans, att förverkliga en dröm. En sammanhållande kraft som vet inga geografiska gränser. Utan hänsyn till ras, religion eller hudfärg. En ny era där kommunikation verkligen förenar människor. Detta är början på nätet. Vill du veta hur det fungerar? Klicka här för att börja resa in i nätet. Nu, exakt vad som hände När du klickat på den länken? Du startade ett flöde av information. Denna information färdas ner till din personliga postrummet när Mr IP Pack det, etiketter den och skickar den på väg. Varje paket är begränsad storlek. Postrummet måste bestämma hur man kan dela informationen och hur du paketera det. Nu behöver förpackningen en etikett innehåller viktig information, såsom avsändarens adress, mottagarens adress, och vilken typ av paket det är. Eftersom denna speciella paket går ut på Internet, det blir också en adress för proxyservern, vilket har en speciell funktion som vi ska se senare. Paketet är nu lanseras på ditt lokala nätverk eller LAN. Detta nätverk används för att ansluta alla de lokala datorer, routrar skrivare, et cetera för informationsutbyte inom den fysiska väggarna i byggnaden. LAN är en ganska okontrollerat plats och tyvärr olyckor kan hända. Motorvägen i LAN är packad med alla typer av information. Dessa är IP-paket, Novell paket, Apple Talk-paket. De kommer mot trafiken som vanligt. Den lokala routern läser adress och, om nödvändigt, lyfter paketet till ett annat nät. Ah, routern. En symbol för kontroll i en synes oorganiserat världen. Där är han, en systematisk, likgiltig, metodisk, konservativ, och ibland inte riktigt upp farten. Men åtminstone är han exakt för det mesta. När paketen lämnar router, de gör sin väg i företagets intranät och huvudet för routern switch. Lite mer effektiv än routern, routern switch spelar snabb och lös med IP-paket, skickligt leda dem på vägen. En digital Pinball Wizard om du kommer. -Här Vi går. Här kommer en till. Och det är en annan. Titta på den här, mamma. Här är går. Hoppsan. Runt ryggen. Hej. I det. I det. Över till vänster. Över till höger. Över till vänster. Över till höger. Du fick det. Här går. Han skjuter. Han poäng. Det kommer. Vänta. Hej, se upp. Här kommer en till. Åh, nu kör vi. -Som Paket anländer till sin destination, de är plockas upp av nätverksgränssnittet, redo för att skickas till nästa nivå, i detta fall, den proxy. Fullmakten används av många företag som en slags mellanhand i syfte att minska belastningen på sin internetuppkoppling och av säkerhetsskäl också. Som ni ser, paketen är alla av olika storlekar, beroende på deras innehåll. Fullmakten öppnar paketet och letar efter en webbadress eller URL. Beroende på huruvida adressen är acceptabel, paketet skickas vidare till Internet. Det finns emellertid en viss adresser som inte gör det träffa med godkännande av proxy, det vill säga, företags- eller förvaltnings riktlinjer. Dessa är summariskt behandlas. Vi kommer att ha inget av det. För dem som gör det, det är på väg igen. Nästa upp, brandväggen. Företagets brandvägg tjänar två syften. Det förhindrar några ganska elaka saker på internet från att komma in i intranätet. Och det kan också förhindra känslig företagsinformation från att skickas ut på internet. En gång genom brandväggen, en router plockar upp paketet och placerar den på en mycket smalare väg eller bandbredd, som vi säger. Självklart är inte den rad tillräckligt bred för att ta dem alla. Nu kan man undra, vad händer med alla dessa paket vilket inte gör det på vägen. Jo, när Mr IP inte får en bekräftelse att ett paket har varit inkommit i rätt tid, han sänder helt enkelt en ersättningspaket. Vi är nu redo att gå in i värld av internet, en spindel väv av sammankopplade nätverk som sträcker sig över hela vårt klot. Här, routrar och switchar upprätta förbindelser mellan näten. Nu är ett helt nätet annorlunda miljö än vad du hittar i den skyddande väggarna i ditt LAN. Här ute är det vilda West, gott om utrymme, massor av möjligheter, massor av saker att utforska, och platser att gå. Tack vare mycket lite styrning och reglering, nya idéer hitta bördig jord för att driva kuvertet av deras möjligheter. Men på grund av denna frihet, vissa faror lurar också. Du vet aldrig när du möta den fruktade ping dödens, en speciell version av en normal begäran ping som någon idiot trodde upp att röra upp intet ont anande värdar. Vägen våra paket tar kanske via satellit, telefonlinjer, trådlöst, eller till och med transoceana kabel. De tar inte alltid den snabbaste eller kortaste rutterna möjligt, men de kommer att få det, så småningom. Kanske det är därför det är ibland kallas den världsomspännande vänta. Men när allt är fungerar smidigt, du skulle kunna kringgå jordklotet fem gånger vid släpp av en hatt, bokstavligt, och allt för Kostnaden för ett lokalt samtal eller mindre. Nära slutet av vår destination, vi hittar en annan brandvägg. Beroende på din perspektiv som ett datapaket, brandväggen kan vara en bastion säkerhet eller fruktade motståndare. Det beror på vilken sida du är på, och vad dina avsikter är. Brandväggen är konstruerad för att släppa in endast de paket som uppfyller dess kriterier. Denna brandvägg är i drift på Port 80 och 25. Alla försök att komma in genom andra portar är stängda för företag. Port 25 används för postpaket. Medan port 80 är ingången för paket från internet till webben servern. Innanför brandväggen, paket screenas mer noggrant. Vissa paket gör det lätt genom tullen, medan andra ser bara lite tveksam. Nu brandväggen officer är inte lätt att luras, som när denna ping Dödspaket försök att dölja sig själv som en normal ping-paket. -Move Tillsammans. Det är OK. INGA PROBLEM. Ha en bra dag. Låt mig härifrån. Hej då. -För Dessa paket tur tillräckligt för att göra det här långt, resan är nästan över. Det är bara en linje upp på gränssnittet som skall tas upp i webbservern. Numera kan en webbserver köras på många saker, från en stordator, till en webbkamera, till datorn på skrivbordet. Varför inte ditt kylskåp? Med rätt inställda upp, kan du ta reda på om du har förutsättningar att kyckling cacciatore eller om du måste gå och handla. Kom ihåg att detta är början på nätet. Nästan allt är möjligt. En efter en, paketen är emot, öppnas, och packas upp. Den information de innehåller, som är din begäran om information, skickas vidare till webben serverapplikation. Paketet självt återvinns. Redo att användas igen och fylldes med din begärda informationen, riktat, och skicka ut på sin väg tillbaka till dig. Tillbaka förbi brandväggar, routrar, och vidare genom att Internet. Tillbaka genom företagets brandvägg. Och på din gränssnitt. Redo att leverera din webbläsare med den information du begärt. Det är denna film. Nöjda med sina insatser och lita på en bättre värld, våra trogna datapaket rida ut lyckligt in i solnedgången på en annan dag, att veta helt de har tjänat sina herrar väl. Nu är inte det ett lyckligt slut. [END VIDEOAVSPELNING] DAVID MALAN: Det är det för CS50. Vi kommer att se dig nästa vecka. [MUSIK - Katy Perry, "dark horse"]