[Powered by Google Translate] [Week 7, vervolg] [David J. Malan, Harvard Universiteit] [Hierdie is CS50.] [CS50.TV] Alles reg. Welkom terug. Dit is CS50, en dit is die einde van die week 7. So een van hierdie stupid klein dingetjies wat gaan oor die Internet en ons slurp, en dit behoort nou 'n bietjie van geeky sin vir jou maak. Wel, dit was snaakser aan hierdie man as wat dit was vir julle ouens. Praat van, wel, ouens, vandag is Nate se verjaarsdag. Gee jou 'n gevoel van hoe goed Nate en ek is op die web-ontwikkeling wat gebaseer is op Maandag se klas en wat gebaseer is nou op hierdie, Ek het gedink ek wil trek Nate se tuisblad, indien jy dit nog nie gesien het nie. Dit is hier ia Nate se HTML. So sien sy bronkode as jy wil om te sien hoe om dit te doen, en Nate, as ons kan jy net kortliks embarass, die personeel het jy 'n bietjie iets as jy wil 'n nagereg te deel met 'n paar van die kinders in die klas hier. As jy wil om op neer te kom. Julle almal verwelkom en is baie mooi, maar niemand sit oral naby Nate, vir een of ander rede, in die rug sone. So miskien kan jy sommige mense vind dit te geniet met. Happy Birthday, Nate. Bykomende hellos: Ons het 'n paar clips van ons CS50x studente. As jy wil om te sien wie anders is dit in die wêreld wat die volgende saam, kan jou kop na hierdie URL, waar Josef, een van ons TFS, het saam 'n montage van spesies van almal wat die indiening van hierdie video's, onder hulle Rick Astley. En as jy blaai deur middel van hierdie, dit is regtig baie inspirerende die diversiteit van die lande en stede waaruit mense afkomstig te sien. So as jy wil 'n blik op te neem, sal deur middel van die einde van die semester. Vandag is ons voortgaan om ons blik op die web, web ontwikkeling, HTML en dies meer, en ons het ook middagete kom hierdie Vrydag as jy wil, en in die besonder, nog nie gedoen het voor. Hierdie Vrydag se tema sal Nate se verjaarsdag, so as jy wil verjaarsdag middagete te hê met Nate en die ander, sommige van ons vriende uit die industrie, asseblief kop tot dat die URL daar. Ruimte, soos altyd, is beperk. Ook, as jy vergeet het, besef dat volgende week is die sperdatum vir die probleem gestel 4 aasdier jag, waardeur ná al van daardie JPEG card.raw, jy en jou artikel maats, as jy wil, kan probeer om te fotografeer soveel van die rekenaar wetenskaplikes van daardie geheue kaart as moontlik, en jy en jou artikel sal dan 'n fantastiese prys te wen. Verwys terug na pset 4 se spesifikasie as wat om te dien en wanneer. Ook, as jy graag wil hê jou handewerk verewig op die kursus se webwerf en sy geskiedenis van klere, weet dat jy nou is welkom om te begin met die indiening van ontwerpe vir hierdie jaar se T-hemde en sweetpakke en dies meer. Ons sal ons bes doen om so veel as wat ons kan te sluit, maar ons sal 'n paar lede van die personeel oorsig van die ontwerpe om seker te maak hulle is in ooreenstemming met die spesifikasies, en ons dan oor die algemeen kies 'n handjievol van hulle uitgestal word. So as jy die ontwerp tipe, weet net dat die vereistes graphics is PNG, minstens 200 dpi, hulle moet nie meer as 4000 x 4000 pixels, en nie meer as 10 MB, maar jy is welkom om dinge te gebruik soos Photoshop of GIMP of verskillende grafiese programme, alles wat jy het tot jou beskikking. Ook op die horison is die finale projek. Die finale projek is werklik die hoogtepunt van 50, waardeur van al die opdragte in die kursus, dit is jou geleentheid regtig om jou eie ding te doen. En dit kan net wees om iets te doen vir die pret, dit kan wees om 'n paar dringende probleem op te los jou studentegroep het, vir 'n paar nuwe webwerf, 'n paar nuwe versameling meganisme vir die data. Dit kan 'n mobiele aansoek vir Android, vir IOS. Regtig, die hemel is die limiet, en oor die volgende paar weke, as ons oorgang vanaf C na hierdie hoër vlak tale soos PHP en JavaScript, jy vind jouself al hoe meer vertroud met 'n paar werklike wêreld tegnieke, Sommige werklike wêreld gereedskap, en vul dat weet dat die kursus het 'n geskiedenis van seminare, waardeur oor die volgende paar weke, 'n paar van die doserende personeel en vriende van ons op die kampus sal bied opsionele seminare wat bo en behalwe wat tipies in artikel gedoen gaan om u bekend te stel aan dinge soos Android programmering, om u bekend te stel aan dinge soos IOS programmering of meer gevorderde web-ontwikkeling tegnieke. Daar is 'n hele geskiedenis van hierdie reeds aanlyn is. As jy na cs50.net/seminars, het ons om dit te doen vir 'n paar jaar, en jy sal sien dat hier die argief met PDF-lêers en video's en dies meer is 'n paar dosyn video's van seminare. Verlede jaar, byvoorbeeld, ons het 'n seminaar oor die acing van jou tegniese onderhoude, As jy op soek om te gaan uit en doen 'n internskap of voltydse gig. Windows Mobile-ontwikkeling, Android ontwikkeling, Google Maps, API, CSS, ontwikkel vir die BlackBerry, Emacs. Regtig, is jy welkom om te neem 'n blik op enige van hierdie seminare op jou gemak. En ons sal hou n paar nuwes hierdie semester, as well. So, wat is voor met die finale projek? Wel, die eerste, hoewel hierdie datum nie is ietwat dreigende, Hierdie is eintlik net 'n geleentheid om denke oor die finale projek te baie realisties begin. Ons weet net die begin van 'n paar van wat ons sal steeds wees wat in die kursus, HTML, PHP en dies meer, maar jy vertroud is met die web, en ek vooroordeel net omdat hierdie gesprek na die Web die meeste mense beland Web-gebaseerde finale projekte te doen, maar dit is geensins vereiste. Die gebruik van C is fyn, objektiewe C, Java, enige ander taal wat jy dalk weet of wil weet is baie fyn. Maar die sappe vloei aanvanklik te kry, sal ons verwag dat die indiening van 'n preproposal wat, volgens die PDF op die webwerf, wat is nou op cs50.net en in die boonste linkerkantste jy sal sien finale projek is die spesifikasie vir die finale projek, en daar is besonderhede oor die preproposal en die wil. Dit pretty much kom neer op 'n e-pos aan jou onderrig mede net om te staak 'n gesprek met hom of haar oor wat jy dink. Op projects.cs50.net is 'n bewaarplek van die idees van die mense op die kampus as jy sukkel om te kom met 'n idee, en manual.cs50.net/APIs is 'n bewaarplek van skakels na API's. Wat is, is 'n API? Wat is 'n API? Ek het gesê dit ten minste twee keer, volgens die transkripsies van die afgelope paar weke. Wat is dit? [Student, onverstaanbaar] >> Goed. So iets programming interface. Application Programming Interface, en dit kan verskeie vorms aanneem, maar wat dit werklik kom neer op is die kode dat iemand anders hs geskrewe of data wat iemand anders versamel wat aan u beskikbaar gestel word in sommige programmatiese manier. Jy kan skryf kode in C, PHP, Python, Ruby, ongeag die taal van jou keuse is tipies, en jy kan op een of ander manier bou op iemand anders se funksionaliteit of iemand anders se datastel. Byvoorbeeld, as ek gaan na hierdie skakel hier, en jy sal sien 'n paar van die skakels op die daaropvolgende bladsy waardeur ons CS50 se eie API's, wat baie Harvard-sentriese, en dan 'n derde-party API's. Onder die derde-party API's is werklik nuttige dinge soos om kan SMS aan mense te stuur, in staat is om sms-boodskappe te ontvang van mense. En sulke dinge wat jy dalk nie 'n idee hoe om jouself te implementeer, maar te danke aan dienste, gratis en 'n paar kommersiële, jy kan bou bo-op hierdie en doen iets van belang vir jou. Onder CS50 die API's is hierdie kampus-sentriese dinge soos Harvard kursusse, energie, gebeure, voedsel, kaarte, nuus, tweets en Shuttleboy se eie, en dit is APIs wat lyk 'n bietjie iets soos hierdie. Laat my trek die HarvardFood API. As jy al ooit aan HUD se webwerf, het jy waarskynlik is daar om net te sien wat is vir aandete of om te sien wat die ure vir 'n paar d-saal. Wel, dit is nie baie maklik om te navigeer, en so wat ons het 'n tyd gelede het ons geskryf sagteware, dit gebeur om te wees in PHP, wat eintlik skerm skraap die geheel van HUD se webwerf. Skraap om iets te sif beteken om 'n program te skryf in 'n taal soos PHP wat voorgee om 'n leser te wees, selfs al het jy dit kan hardloop by 'n opdrag prompt, wat voorgee om 'n leser te wees, verbind aan 'n webwerf, downloads sy HTML, die taal waarin dit geskryf is, en lees dan is dit, of meer spesifiek, ontleed dit van bo na onder, links na regs. En wat ons gedoen het, was ons ons kode geskryf het in so 'n manier dat enige tyd wat ons gesien het iets in daardie HTML wat lyk soos iets op die spyskaart, soos 'n hamburger, sou ons dan dat in ons eie databasis invoer. En enige tyd het ons gesien voedingswaarde, sou ons invoer wat in ons eie databasis. En wat ons gedoen het, was die invloed van die feit dat HUD se webwerf, selfs al is dit dalk 'n bietjie van 'n uitdaging vir ons mense om te navigeer onder die kap, word al die HTML gegenereer deur hul eie rekenaar programme. So was dan al van hul HTML, selfs al is dit dalk lyk slordig, soos die meeste webwerwe onder die enjinkap is dit volg 'n patroon. Sodat ons net spandeer 'n paar uur die uitzoeken van die patroon sodat in die einde, het ons weggooi al die morsige HTML, al die estetika van vet belegsel en kursief en dies meer, en wat ons is dan in staat om dit te doen is bloot dat dieselfde data. Byvoorbeeld, op hierdie manier. Sodat ons, volgens die dokumentasie hier, het die wêreld dat as u 'n URL wat lyk soos hierdie, food.cs50.net / iets, en jy bied sekere parameters, wat ons sal praat oor vandag, soos einde datum, tyd, start datum, maaltyd en so meer, wat ons bedieners sal na julle terugkeer, byvoorbeeld, 'n CSV-lêer, komma separted waardes soos 'n Excel-lêer, met alles wat vir die ontbyt op hierdie spesifieke datum in Maart verlede jaar toe ek gebeur het om hierdie dokumentasie te skryf. Vir diegene wat vertroud is, CSV is nie die enigste lêer formaat. Daar is 'n ander formaat wat al die meer veelsydige genoem into, JavaScript Object Notasie. Die data kan terug kom in daardie formaat. So het die afhaal hier is dat of jy duik in hierdie API of enige ander van CS50 of iets daar buite op die internet, of glad nie besef dat die wêreld toenemend begin te standaardiseer hoe masjiene omgaan. Ons gebruik standaard data formate soos CSV of JSON. En wat beteken dit vir jou is kan jy die interessante deel van 'n program skryf wat kan jou gebruikers soek 'n eetsaal menu, waarmee hulle lys van gunstelinge waarmee hulle kry teks Aanduidings van werke skep wanneer hul gunsteling maaltyd is om bedien te word in 'n paar d-saal deur die gebruik van iemand anders se datastelle en gebou op die top van hul API. Sodat meer op wat in die vorm van seminare en die dokumentasie wat jy hier aanlyn. Sodat diegene, dan, is API's. Dit bring ons terug na HTML. Vinnige recap. Wat is HTML? [Student, onverstaanbaar] >> Goeie. HyperText Markup Language. Iemand anders, wat is Hypertext Markup Language? HyperText Markup Language. Okay. So HTML, HyperText. HyperText verwys net na die Web, vir die grootste deel. Markup beteken dat dit nie eintlik 'n programmeertaal, HTML. Dit is nie 'n taal wat jy logika kan uitdruk. Dit hoef nie loops. Dit hoef nie voorwaardes. Dit hoef nie funksies, per se. Inteendeel, dit het hierdie dinge tags genoem, of meer korrek, elemente. En hierdie elemente het begin tags en einde tags, of oop tags en geslote tags, en wat daardie tags in die algemeen beteken vir 'n leser is, begin om iets te doen en dan stop om iets te doen, maar daar is uitsonderings op hierdie. Soms is dit net 'sit 'n lyn breek hier, byvoorbeeld. En ons het voorbeelde van wat die ander dag, tussen vet belegsel, lyn breek, en dan 'n paar van die ander tags. So HTML is die taal waarin webblaaie geskryf word. So as ek gaan iets soos Google.com en trek net hul tuisblad, onthou dat as jy regs kliek of beheer kliek en kyk na View Page Source, tipies dit is 'n volledige gemors deesdae onder die kap, maar dit is omdat rekenaars omgee nie oor wit ruimte, sodat dit nie om te kyk mooi. Maar as ons zoom in op dele van dit, agterkom dat Chrome, net lekker wees, kleurgekodeerde dinge. Trouens, dit is die heel eerste tag wat ons gesien het in 'n web bladsy. En weer, HTML 5, die nuutste weergawe van hierdie taal, hierdie ding aan die begin, > Ja, het ons opgelos dit voor deur uitdruklik vertel die leser 'sit 'n lyn breek hier. " En dit is omdat, weer, 'n leser is net gaan om te doen uitdruklik wat die opmaak taal vertel om dit te doen, so selfs al is jy dalk getref het een of twee keer of selfs tien keer betree, dit gaan te kombineer in 'n enkele ruimte, net deur die konvensie. So as jy regtig wil 'n lyn breek, moet jy die Br-tag om te gebruik, en nou kennisgewing, soos Maandag, Ek het die binnekant van hierdie tag / net omdat dit net nie reg voel nie 'n lyn breek om te begin en stop dit dan met niks tussen in. So het die konvensie in HTML is om oop te maak en sluit 'n tag gelyktydig. As 'n eenkant, sal jy sien 'n baie van die webwerwe in boeke nie om dit te doen. Dit korrek is om te doen of nie te doen nie, maar ons wil argumenteer dat die ontwerp-wyse en stilisties, dit is net beter want dan elke tag is beide geopen en gesluit op een of ander manier. So nou, laat stoor en oproep. Gaan terug na die leser, okay. Nou het ons 'n mate van vordering, maar dit is nie heeltemal genoeg. Kom ons gaan voort en begin tik in sommige langer liggaam van die teks. So kom ons sê, "'n vinnige bruin jakkals spring oor 'n lui hond." En nou, laat my net kopieer en plak dit 'n paar keer sodat ons 'n paragraaf van die teks. Laat my terug te gaan oor hier. Sodat dit nie lyk baie goed. Ek het 'n line break, so dis oukei, maar nou, sodra ons om tot die punt van 'n web bladsy wat het baie van die inhoud en nie net enkele lyne te demonstreer HTML, ons kan begin om te dink van hierdie dinge as 'n werklike paragrawe. En ons kan begin om ons webblad om 'n bietjie meer skoon te struktureer. En inderdaad, wat ek kan doen is om te gaan hier binnekant van my liggaam tag, en jy weet wat, indien "Dit is CS50. . ' regtig demarks die begin van 'n paragraaf, Wel, laat ons merk dit as sulks. Laat my streepje die teks, net deur die konvensie, laat my sê dat hierdie paragraaf eindig hier, en dan eerder as hierdie lyn breek, laat ek net sê dat dit hoort daar en as 'n nuwe paragraaf, en Ek sal vinnig net streepje deur net beuken al hierdie dinge. So nou het ons 'n ingekeepte paragraaf, en nou is ons opmaak begin om 'n bietjie meer te kry semanties in ooreenstemming met wat ons probeer om te doen. Ons het 'n paragraaf, so kom ons noem dit 'n paragraaf met die p-tag. Ons het 'n tweede paragraaf, so kom ons noem dit 'n paragraaf met die p-tag. En nou, wat die leser sal tipies doen is net soos in 'n Engelse boek of opstel, waar jy gewoonlik sien 'n paar lyn breek tussen paragrawe. Browsers sal doen wat vir jou outomaties. So nou het ons twee paragrawe en ons kan voortgaan. Maar, natuurlik, wanneer jy op die web, liggame van die teks dit is nie tipies net groot druppels van die teks. Daar is dikwels hyperlinks daar. So as ons wil, byvoorbeeld, sluit 'n paar skakels daar, veronderstel wat dalk van belang in watter web bladsy wat ek hier skep, is - laat my gaan na Google.com, en laat my soek vir 'n vinnige bruin jakkals. Gaan na Google Images, en, hoe oor - dit is 'n oulike. Ons gaan met hierdie. So hier is ons het 'n vinnige bruin jakkals spring oor 'n lui hond. So wat ek gaan doen, net ter wille van die demonstrasie, is veronderstel dat hierdie beeld was op my server, en ek het hierdie beelde te skep. Wat ek het net reg is klik of kliek op die beeld te beheer, en wat jy sien in die meeste blaaiers is 'n bietjie menu - ophou om dit te doen - 'n bietjie menu wat jou toelaat Kopieer Link plek of afskrif URL te kies. So laat my terug te gaan nou na my HTML, en dink dat ek wil hê hyperlink hierdie na 'n ander web bladsy. Wat was die tag wat vir daardie? [Student, onverstaanbaar] >> Ja. So 'n href vir hiper verwysing. Laat my gaan voort en plak dat. Dit is 'n redelik lang URL, so laat my terug uitzoomen. Close hakies, so moet julle nou sien ek hier omdat die URL gebeur redelik lank te wees. Laat my scroll oor hier aan die einde van die vinnige bruin jakkals, en laat my dan hierdie merker sluit met . So alles by die top in die blou is net 'n comment. Dit is my DOCTYPE verklaring, wat weer, jy kan net kopieer en plak op geloof, vir nou. Dit vertel net die leser, "Hier kom 'n paar HTML 5. Hieronder wat on line 14, is die eerste van my werklike tags, en dit sê net, soos voorheen, sommige HTML kom hier, hier kom die hoof van my bladsy, hier kom die titel, en dan, omgekeer, wat is dit vir die titel, wat is dit vir die kop. Hier kom nou die liggaam van my bladsy. So 'n paar nuwe tags: h1 staan ​​vir rubriek 1. Daar is 'n tradisie in HTML vir baie jare terug met verskillende groottes van die teks. En terug in die dag, elkeen bedoel, in die algemeen, net groot en vet. Maar daar is ook h2, wat is groot, maar nie so groot en vet. Daar is h3, wat is 'n soort van die groot, maar nie naastenby so groot en vet, en so meer, al die pad af na h6. Hierdie dae, al is, is regtig H1, H2 en H3 bedoel meer semantiese betekenis aan hulle te hê, waardeur h1 is regtig 'n opskrif: die opskrif van 'n web bladsy, die opskrif van 'n kolom of iets soos dié van die teks. Daarom het ek doelbewus sê h1 CS50 soek> h1 specifiy dat dit werklik is die opskrif, die titel van my bladsy. Nie die titel in die titelbalk sin, maar die titel wat jy sien in die webblad self, in die liggaam. Nou hierdie, kan jy waarskynlik raai wat dit is, selfs al het ons het 'n paar nuwe stukke van die sintaksis. Dit is 'n vorm. So die web regtig interessant raak wanneer webwerwe insette van gebruikers. In hierdie klas, in die probleem op die web programmering, Ons gaan nie 'n webwerf, per se te maak, met statiese inhoud wat toon foto's wat jy geneem het, of dit is my CV, en dinge oor my, want hierdie dinge is relatief maklik om saam te stel. Dit is moeilik om te maak dinge mooi op die web, maar ten minste die opstel van inhoud is redelik triviaal. Maar dinge regtig interessant wanneer iemand jou webwerf besoek en insette lewer en kan vorms invul, blok kan kyk en kan interaksie met jou webwerf. En inderdaad, waarskynlik elke webwerf wat jy omgee hierdie dae, in enige detail, is een of ander manier interaktief. Facebook, Google, en dies meer, wat 'n toevoer van die gebruiker en persoonlike uitset. So laat ons begin om dit te doen nou. Kom se oorgang nou van net die gebruik van HTML-kode vir winsgrens van statiese inhoud as plaas 'n leweringsmeganisme vir dinamiese inhoud. En die rigting van die einde, laat ons ons eie soektog te implementeer. Kom ons doen dit soos volg. Hier is die vorm tag. Die aksie attribuut bepaal dat wanneer die gebruiker vul hierdie vorm met die sleutelbord, sal dit voorgelê word aan hierdie URL hier. So ek is soort van bedrog. Dit gaan ons 'n bietjie langer neem as een klas die hele soektog uit te voer, so ons sal net doen die voorkant, om so te praat. Ons sal die deel waarmee die gebruiker soek doen, en ons sal soort van punt na Google die harde deel van die vind van die resultate, maar spesifiek, ek gaan om te praat met Google se web-bediener met behulp van een van twee baie gewilde metodes. Een wat kry, ander, dat ons uiteindelik sal sien, post, maar daar is ander wat minder dikwels gebruik word. So kry net roep die idee van, ek wil inhoud te kry, kry 'n paar resultate. Hierdie, kan jy dalk raai wat dit doen. Dit is 'n soort van die insette, is dit in werklikheid gaan om te kyk soos 'n teks-veld, en die naam van die insette, die naam van die veranderlike, om so te praat, gaan word q vir navraag deur konvensie. En weer, is die tipe van hierdie insette nie gaan om 'n boks te wees; dit gaan nie om 'n spyskaart te wees, dit gaan om 'n teks-veld soos aangedui deur hierdie kenmerk hier, en hierdie teks boks, soos 'n lyn breek, is óf daar is of nie. So ons het 'n leë element met die streep binne daardie merker. Dan gaan ek 'n lyn breek te sit, en jy kan dalk raai wat dit gaan doen. Dit is 'n ander soort van vorm insette. Hierdie een gaan om gebruik te word vir die indiening van die vorm. So dit gaan om die groot-knoppie wat die gebruiker kan kliek om die vorm in te dien, en die etiket op die knoppie gaan wees CS50 Soek. " Close vorm, beslote liggaam, naby HTML. Kom ons kyk wat ons het in die vorm van hierdie web bladsy. So laat ek gaan na my browser, laat my gaan, nog steeds aan die plaaslike gasheer. Dit is nog steeds index.html, so as ek wil om te sien van hierdie lêer genaamd search0, Ek kan net doen / search0.html, tree - en die eerste van my foute. What's going on? Ek duidelik het nie toestemming om om hierdie lêer oop te maak, om die een of ander rede. Maar dit is omdat, in teenstelling met die werk het ons tot dusver gedoen het in C, waar die programme wat jy skryf, word aanvaar dat die draaibaar deur u, uitvoerbare deur u, dit is nie regtig die geval op die web, waardeur soms moet jy dalk wil lêers te skep op 'n bediener, maar jy nie wil hê dat die hele wêreld in staat te wees om hulle te sien. Nee, jy wil die wêreld 'n paar lêers te sien maar nie ander nie, net vir privaatheid se onthalwe. So dit is meer van 'n opt-in basis wanneer jy dinge doen op die web. En laat my daarom eintlik ls hier tik, en jy sien die lêers wat ek het, maar onthou dat as ek dit doen ls-l vir 'n lang, Ek kry 'n langer lys wat gee my 'n paar meer besonderhede oor hierdie lêers wat is nou regtig, vir die eerste keer op ons betrekking het. Let daarop dat op die ver regs is die name van my lêers, en dan is die tyd wat hulle was laas verander of kopieer. Hierdie getal hier is wat? Onthou jy? Die grootte in grepe, hoe groot die lêer is. So dit lyk asof ek 'n soort van die logo hier te hê wat groter is as al die ander lêers. Dit is wie ek is, dit is wat ek is en watter groep ek. Maar dan, hier aan die linkerkant is 'n bietjie van kriptiese volgorde, en ons het gepraat, dink ek, kortliks hieroor in die verlede, maar dit het te doen met permissies. En selfs indien dit is 'n bietjie vaag, RW beteken waarskynlik lees & skryf. So dit blyk dat hierdie koppeltekens dui verskillende stelle regte vir verskillende mense. En die patroon is, in wese, soos volg. Wanneer jy sien 'n volgorde van koppeltekens, hulle lyk soos volg. Daar is 'n stamp, dan is daar drie koppeltekens, dan is daar nog drie, dan is daar nog drie. Die eerste een is 'n bietjie of dit se advertensie vir directory. Sodat 'n mens is redelik maklik. As dit is 'n gids, dit sê d, anders is dit 'n koppelteken. Daar is 'n paar ander gevalle, maar vir nou sal ons net omgee vir lêers en directories. Hierdie volgende drie koppeltekens - en ek het kunsmatig ingevoeg die spasies in. Hulle was natuurlik nie daar toe ons sien dat hulle 'n oomblik gelede. Dit is die lêer eienaar se regte, en onthou van 'n tweede gelede dat dit lees & skryf. Dit was omdat ek, as die persoon wat die lêer geskep het 'n oomblik gelede, Ek, net by verstek, op 'n Linux-rekenaar, het die vermoë om voort te gaan lees en skryf dat 'n lêer. So die bedryfstelsel gee net my RW outomaties. Die middel wat verband hou met my groep, dat van die studente, wat is 'n soort van betekenisloos op die toestel, want ek is die enigste persoon wat die gebruik van die toestel. So laat my net waai my hande vir nou. Maar die laaste is baie belangrik vir die Web. Dit is almal anders in die wêreld, en die feit dat --- beteken dat niemand anders in die wêreld het enige regte tot hierdie lêer. Duidelik 'n probleem nie, so ek nodig het om dit op te los deur die een of ander manier om die wêreld wat? Lees & skryf? Dit is waarskynlik dom, reg? Ek wil nie enigiemand op die web om te gaan om my blad te besoek en op een of ander manier om die lêer te verander, selfs al is hulle werklik kon nie met 'n HTML-lêer, maar net in beginsel, waarskynlik net wil hê hulle moet in staat wees om dit te lees. Wat beteken dit om dit te lees? Dit beteken nie hulle gaan omgee oor die werklike HTML, maar die leser moet in staat wees om daardie opmaak taal te ontleed, van bo na onder, links na regs. So iemand op die web moet in staat wees om dit te lees nie, so ek minimaal nodig het om te gee dit 'r. Ek kan dit doen in 'n paar verskillende maniere, maar miskien die eenvoudigste is om hierdie opdrag om hier te hardloop. Chmod, verandering af, dan 'n + r so almal, almal in die wêreld + lees, en dan die naam van die lêer search0.html. Maar as ek doen ls-l weer opmerk dat dat die lêer verander is, en inderdaad, ek het op 'n r vir almal. Ek het ook het dit vir my groep, maar dit is fyn, want as ek draai in my groep is vir almal, 'n subset van daardie. So dit is fyn. Dit beteken net die rekenaar nou het dit leesbaar. Nou laat my gaan terug na my browser, kliek herlaai. Ah-ha. Ons nou het CS50 Soek. Ek het in 'n bietjie kunsmatig - pretty afskuwelike soektog vergrote. Maar laat ons kyk of dit regtig werk. Eerste, laat my doen 'n vinnige gesonde verstand tjek, laat my beheer kliek en sien bladsy bron. Let daarop dat binne Chrome ons nou sien dieselfde HTML-dat ek myself geskep. Nie hier kry verwar, though. Ek kan nie begin om die kode te verander, omdat die leser 'n lees-alleen die lig van hierdie kode. Die blaaier het net gevra om plaaslike gasheer vir 'n lêer genaamd search0.html. Dit is nou toevallig dat die toestel gebeur te wees op dieselfde rekenaar as my browser. Ek kon net gelykerwys, getik in www.facebook.com/search0.html, en as Facebook het 'n lêer met die naam dat ek sal dan sien hulle HTML. En, natuurlik, kan ek nie verander nie die lêer wat kom terug van Facebook, nie. So nou is ons soort van vervaag die lyne. Die toestel is beide 'n bediener, die versorging van web bladsye, maar dit is ook 'n kliënt in die sin dat ek 'n leser is die gebruik van om werklik te praat met die bediener. So laat ons sien as my Google-soektog werk. Laat my voort te gaan en te deursoek vir 'n vinnige bruin jakkals, betree. En voila, ek het nou my eie soektog. Maar hoe werk dit? N bietjie van 'n rek, maar - en nou kan jy nie sien nie, juis die deel wat van belang is. Let op wat gebeur. Let op die URL. Dit blyk dat hierdie metode, genoem kry, is 'n super-eenvoudig. As jy spesifiseer in 'n vorm wat jy wil 'get' resultate van 'n paar bediener, wat dit gaan doen, vat wat jy getik in die vorm en sit dit in die URL. Dit gaan hoe dit kry in die URL soos volg te standaardiseer. Let daarop dat hierdie is die URL wat die waarde van my optrede kenmerk. Dit is waar ek wou die vorm aan die einde. Maar dan agterkom hierdie vraagteken. Dit is 'n konvensie op die web waardeur die toevoer van die gebruiker te voorsien na 'n webwerf, kan jy voeg aan die URL in 'n vraagteken, en dan moet jy 'n hele klomp van die sleutel-waarde pare. Die naam van 'n sleutel, andersins bekend as 'n parameter in die web, dan moet jy 'n gelyke teken, dan moet jy die waarde van die parameter. So dit is in wese 'n veranderlike naam en 'n veranderlike waarde, maar dié veranderlike se name en waardes van die HTML-vorm gekom het. Waarom is die plus punte daar, dink jy? Want ek het nie tik + tussen my woorde. [Student, onverstaanbaar] >> Ja, dit is net vir die spasiëring. Kans is, wanneer jy 'n URL gesien, daar is nooit enige spasies in dit, indien net omdat as daar was, kan jy nie regtig kopieer en plak dit in 'n IM of in 'n e-pos, want dit sou breek. Jy wil die hele ding om een ​​aaneenlopende string karakters. Sodat die leser is slim genoeg om te besef, uh-uh. Moenie net sit daar 'n ruimte. Laat my enkodeer die ruimte in 'n standaard manier. Een van die konvensies om dit te doen is om die leser te hê outomaties 'n + waar jy andersins sou 'n spasie. So nou, kennisgewing Google soort van gebruikers-vriendelike. Ek het beslis nie hierdie webblad skep, maar hulle het ingestuur hul eie teks veld met presies wat ek getik. Gestel ek wil om te soek vir iets anders, soos 'n lui hond. Ek kan tik net hier, re-soek. Let daarop dat die URL verander hier, maar dan sien dat ek eintlik kan soek vir enigiets wat ek wil net deur te verstaan ​​hoe URL's werk. Ek lui kat kan doen, betree, en nou merk ek kry 'n baie lui - moet ons? Ek voel soos ons behoort. Ek kry 'n baie lui kat. Alles reg. Dit is een van die domste dinge wat ons gedoen het. Maar dit is 'n lui kat. Anyhow, wat is die sleutel afhaal hier? Nou het ons is soort van speel in die wêreld van die HTTP. HTML is net hierdie opmaak taal, oop tag, naby tag, wat vertel 'n leser hoe om inhoud te lewer op 'n web bladsy. Maar wanneer jy begin met die oordrag van data oor die Internet tussen webblaaier en bediener, dit is waar hierdie protokol bekend as die HyperText Transfer Protocol oorneem. Dit is die soort van menslike konvensie; wanneer Sam en ek het hande geskud op Maandag, die begin van 'n verband en dan die sluiting van 'n verbinding, dieselfde idee hier. Hoe Google se resultate terug kom na my toe? Hoe is my vorm voorlegging gaan na Google? Wel, onthou van die ander dag dat wat werklik aangaan onder die kap wanneer jy 'n webblad versoek is, jou browser is die stuur van 'n ietwat kriptiese boodskap soos KRY / HTTP/1.1 vir die standaard tuisblad. Of, in hierdie geval, omdat ek spesifiek versoek vroeër search0.html, dit sou dan die ietwat kriptiese boodskap dat my browser stuur na die toestel. Of, in hierdie geval van Google, is eintlik wat gestuur is 'n versoek aan / soek, en dan q =? lui kat, met 'n plus daar. So hierdie boodskap, dat ek, die mens is nooit te tik, maar word gestuur deur my browser, dit is hoe HTTP gebeur. Dit is die ekwivalent van ons hand geskud. Dit is die versoek, en die bediener is oor 'n reaksie te stuur. So laat ons neem 'n blik op hierdie onder die kap. Soos voorheen, kan ons oop te stel hierdie spesiale veld in 'n leser. Sien bladsy, inspekteer elemente. So onder inspekteer element, sien dat wat gebeur het in Chrome, en IE en Firefox het soortgelyke meganismes, ons het hierdie ontwikkelaar gereedskap toeganklik vir ons. Normale mense gebruik nie hierdie tabs. Maar nadat ons, nou, belangstel in wat gaan aan onder die kap op die netwerk. So as ek trek die netwerk vlak, laat my voort te gaan en uit te brei hierdie venster, oop te maak hierdie inligting ingesleutel is hier, en kyk na die headers. So, wat gebeur wanneer ek 'n lêer van 'n web-bediener is my browser stuur 'n hele klomp van die dinge. En laat my Bekyk bronteks. So onder versoek headers, en dit is net Chrome wat my 'n paar diagnostiese opbrengs, soort van soos 'n debugger van een of ander aard, agterkom dat wat ek hier uitgelig is presies wat Chrome is na die bediener stuur ten einde 'n lêer genaamd search0.html aan te vra. Dit is die bediener vertel wat hulle dink sy naam is, te danke aan hierdie leërmag kolon veld, dan is daar is 'n paar mooi esoteriese dinge hier, soos iets wat te doen het met die datums en tye, iets te doen het met die tale wat die leser verstaan, maar die werklik belangrike lyne is die eerste twee hier. Wat beteken die bediener reageer met? Wel, as ons scroll down hier en sien die bron van hierdie ding, sien dat die bediener het gereageer met 'n ietwat kriptiese boodskap as 304 nie verander nie. Dit is 'n bietjie vreemd, laat my eintlik probeer om dit op te los. Laat my af te hou en skuif en klik herlaai hier die leser te dwing om werklik te maak dit versoek vir die eerste keer. Laat my dan zoom in, en ons sal nou sien dat die bediener se reaksie, want Ek het verskuiwing, is 200 OK. So jy het waarskynlik nog nooit gesien dat die getal 200 in die konteks van die web, maar wat getalle het jy soms onverwags gesien vanaf 'n bediener? 404, lêer nie gevind nie; 403, verbode; 500, bediener fout. So is daar hierdie numeriese kodes wat die wêreld gebruik in die Web foute, net soos C funksies aan te dui kan terugkeer foute en hoof uitgang kodes kan terugkeer. 200, maar jy selde sien, want dit beteken dat alles goed gaan. En 304 het jy waarskynlik nooit sien nie, want wat is dit dui? Dat niks het - laat ons kyk of ons kan simuleer dit weer - O, nou is dit nie saamwerk nie. 304 gesê nie verander, so waarom die bediener is selfs reageer? Wel, vir doeltreffendheid, 'n web bediener outomaties vir jou, indien die lêer nie verander het nie, sal dit nie weer te stuur die hele HTML-lêer. Dit sal net vertel die leser dit het nie verander nie. Net gebruik maak van die kopie wat jy reeds het. So daar is hierdie idee van caching op die web vir prestasie, sodat jy mors nie tyd en afval bandwydte die aflaai van lêers weer en weer onnodig. Maar hierdie webblad, was nou, super-eenvoudige, en dit het vir my gewys net die HTML wat terug gekom het. Kom ons eintlik gebruik die netwerk blad nou 'n Google-soektog te doen soos vinnige bruin jakkals. Laat my dan kliek op CS50 soek, en nou, let op in die onderste hier om 'n hele klomp van die dinge kom terug want as Ek besoeking doen 'n webwerf soos Google.com, hulle het beelde, teks, hulle het 'n taal genaamd JavaScript daar. Sodat elke ry in die tabel hier onder iets wat Google spoeg uit in reaksie op my enkel versoek. Die een wat ek omgee, al is, is die eerste een. En as Ek gegaan na die soek, versoek, kliek Bekyk bronteks hier, Let op dat, inderdaad, die kriptiese boodskap wat my browser gestuur na Google hierdie twee lyne was hier, gevolg deur sommige arcane inligting hier onder, wat sal ons ignoreer vir nou. Maar kennisgewing, te, wat Chrome is redelik handig met, dit is ook wat my die query string wat gestuur is. So eerder as my hierdie, wat letterlik gestuur, as ek dit sien gedekodeer, Chrome, net vir ontfouting doeleindes, dit is vir ontwikkelaars soos ons, net wat vir my 'n mens-vriendelike weergawe van die - dit is nie hoe jy dit spel jakkals, blykbaar. Ek is net merk dit nou - maar dit wys jou wat ek glo, getik. Intussen het die reaksie wat terug gekom het van die bediener is weer 200 OK. Maar ingesluit in daardie antwoord, natuurlik, as ons werklik sien die bladsy se HTML - Jammer, hierdie is 'n klein sleutel kombenasie verkeerd geloop vandag. Ek sal later gaan met hierdie. So as ons eintlik sien die bladsy se bron, wat ek hier kan doen deur te kliek reaksie, dit is wat eintlik terug spoeg in bykomend tot daardie kriptiese 200 OK boodskap van die bediener. 'N bietjie kripties, maar waar is al hierdie kom uit? Wel, laat ons 'n ander ding doen hier. Nog 'n ietwat kripties opdrag, maar hierdie een se soort van netjies in die sin dat dit wys vir ons presies wat gaan aan onder die enjinkap. Dus is ek terug op my Mac, ek het verbind deur middel van 'n program met die naam van SSH, Secure Shell, na 'n ander bediener omdat die meeste van Harvard se rekenaars blok die opdrag wat ons is oor om te hardloop want daar is hierdie opdrag op sommige bedieners genoem trace route wat u toelaat om die roete tussen die punte a en b op te spoor, en tot dusver het ons heeltemal neem as vanselfsprekend aanvaar dat ek kan tik in Google.com en op een of ander manier kry data terug van halfpad oor die land of halfpad oor die hele wêreld. Met trace ons kan eintlik duik in 'n bietjie dieper hoe die Internet werk, en kyk wat gaan aan onder die enjinkap. So laat ons gaan voort en arbitrêr spoor om 'n roete te sê, Stanford.edu, wat regoor die land, en druk enter. Hierdie opdrag kan wees super-vinnige of super-stadige, maar wat ons nou sien, reël vir reël, is elkeen van die stappe of hoep tussen ons en Palo Alto, of Stanford, waar hulle hul webbediener. So wat beteken elk van hierdie lyne verteenwoordig meer konkreet, al is? 'N stukkie van die jargon van die Internet? [Student, onverstaanbaar] >> Wat is dit? [Student, onverstaanbaar] >> O, so daar is tye, maar wat elke ry nie - wat beteken dat ek nie deur hop? Wel, daar is hierdie dinge op die internet genoem routers. En routers, soos die naam aandui, roete-inligting vanaf punt A na punt B. Maar daar is 'n paar punte buite a en b. Daar is c en d en e en f tussen ry 1, wat gebeur met my rekenaar se IP-adres, of my numeriese adres, wat uniek my rekenaar identifiseer, en stap 15, wat eintlik die sesde webbediener, glo, wat ek afleidings van hierdie, of weergawe 6 van hulle webbediener by Stanford. Maar wat is soort van netjies is, kan ons sien die pad dat my 0 en 1 se neem van my rekenaar na Stanford. So stap 1 is my eie rekenaar se adres. Elke rekenaar op die Internet het 'n unieke identifikasienommer wat lyk soos hierdie. Number.number.number.number. Iewers op hierdie kampus, waarskynlik in die wetenskap sentrum, word 'n router genoem Core Gateway 2-te83, wat dit ook al beteken, so dit is een van Harvard se groot fancy routers wat 'n baie van hulle verkeer roetes. Hier is nog een van Harvard se routers, hierdie een is Border Gateway, grens betekenis is dit waarskynlik iewers op die rand van die kampus. Dan is daar nox een, ry 4, wat is Noord Crossroads, wat 'n groot ISP, Internet Diens Verskaffer, dat plekke soos Harvard verbind tot. Maar toe het dinge 'n bietjie interessant in reël 6. Waar is my stukkies al van 'n skielike? Kansas. Die wêreld het 'n gewoonte van die lughawe kodes gebruik in 'n baie van hierdie dinge, of ten minste afkortings vir state of stede, sodat dit lyk soos, in net 60 ms, 'n pakkie van inligting, 0 en 1 is van my laptop het al die pad na Kansas, en weer, in 60 ms. Buitendien, ná Kansas, hulle het 'n toer deur middel van Houston, waarskynlik, soos voorgestel deur die naam van hierdie bediener. Dus, net soos 'n bediener op die internet moet 'n numeriese adres, Dit kan ook opsioneel, 'n effens meer mens-vriendelike adres dat mense vorendag gekom met. Nou, in stap 8, doen ons nie weet wat dit is. Soms routers net soort van ignoreer jou, en hulle het net nie die vrae beantwoord nie, so dit is goed. Die een na stap 8 is blykbaar waar? Griffier: Kennisgewing in slegs 78 ms, wat neem ons mense soos 6 + ure om fisies te doen, neem pakkies van inligting op die internet 78 ms om so ver te reis. Stap 10 in LA is so goed, en stap 11 noord weg blyk te wees, naby Stanford. Dit is die grens router, of grens router. 'N paar stappe by Stanford wat ignoreer ons, en laastens, kom ons by die webbediener in net 87 ms. Nou, al wat van hierdie getalle, as 'n eenkant, vertel nie net hoe lank dit neem om vir inligting te kry van my aan elk van hierdie routers, en dit is nie akkumulatiewe. Wat hierdie program nie, stuur dit die eerste keer 'n boodskap, in wese, tot die eerste router. Toe het die een na die tweede router, dan een na die derde router, elke keer te meet. Dus, in teorie, hierdie tye sal groei of ten minste redelik naby aan mekaar, en, inderdaad, die kinders wat is reg hier op die kampus is super-klein. Sodra jy begin gaan regoor die land, wat dit neem om data 'n bietjie langer te reis, nader aan 100 ms, gee of neem. Maar laat ons nou gaan die ander rigting. Hoe oor die Universiteit van Cambridge in die Verenigde Koninkryk? Laat my plaas loop trace van www.cam vir Cambridge, Ac vir akademiese, uk, en druk hier kan insleutel. Dit was pretty damn vinnig. My data letterlik na Cambridge, Engeland, in daardie breukdeel van 'n sekonde van die tyd. So laat ons sien die pad wat dit geneem het. Harvard, Harvard, Harvard, Noord Crossroads, wat is 'n ISP, en dan is dit Noord Crossroads, en dan bam. Wat is in die tussen stappe 6 en 7, router 6 en 7? Die Atlantiese Oseaan. En ons maak afleidings uit die feit dat ons gaan van 20 ms hier tot 80 ms hier. So iets het 60 ms, gee of neem, te kry oor. En dit was waarskynlik 'n groot liggaam van water. Wat gaan op na daardie? Wel, hier is ons nou in Londen, net 88 ms later. Meer London, London, nie seker waar dit is nie, maar ons sal aanneem dit is buite Londen, Cambridge hier, en uiteindelik het ons - letterlik, Universiteit van Cambridge Something.net, en uiteindelik, in line 16, hul web bediener is blykbaar genoem Scorpius onder die kap, selfs al weet ons dit as die www. Soort van gedagte-blaas, dink ek. Die eerste keer dat ek dit gedoen het, is dit heeltemal blaas my gedagtes. Ongelukkig, Harvard blokkeer hierdie soort van die verkeer, tipies op die netwerk. Sodat jy kan dit nie doen nie super maklik. Besef, al is, dit is hier moontlik. Alles reg. Kom ons neem ons 5-minute break hier. Ons sal terug kom en duik dieper. So ons is terug, en ons het soort van gedrentel oor in 'n paar verskillende rigtings. So laat se presies wat hier aan die gang te som. Ons het die gesprek begin praat oor hierdie taal genoem HTML. Weer, nie 'n programmeertaal. Dit is net 'n opmaak taal wat is grootliks oor estetika en strukturering van die inhoud in die vorm van 'n webblad. Maar HTML, dus moet 'n paar soort meganisme vir reis tussen webblaaier en bediener. HTML dus soort ritte op die top van hierdie ander taal, of meer gewoon, 'n protokol, bekend as HTTP. En HTTP, soos ons dit tot dusver gesien het, is 'n soort van analoog aan hierdie menslike konvensie om hand te skud. Wanneer 'n leser wil om 'n bladsy uit 'n bediener te versoek, stuur dit dat "kry" versoek van die leser aan 'n bediener, en dan die bediener reageer met 'n getal soos 200, alles is okay, sowel as die HTML-of 'n paar slegte getal soos 404, lêer nie gevind nie. Maar intussen, HTTP self is nie die Internet, per se. HTTP is net 'n diens, 'n kenmerk van die Internet baie soos G-chat is 'n ander diens, baie soos e-pos is 'n ander diens. Daar is alle vorme van die dinge wat ons kan doen op die internet. HTTP is net een van dié aansoeke. Dus, op die top van HTTP is op die top van iets anders wat ons nie by die naam noem, mag jy dalk gehoor het van by die naam, TCP / IP. So die storie dat ons net daar vertel is alles oor hoe data beweeg van punt A na punt B. En in hierdie geval, ons het op 'n baie lae vlak router router router te router, hoe die data is eintlik gestuur word. Maar langs die pad, is dit aan die gang verskeie struikelblokke te ontmoet. Behalwe hierdie routers, daar is dinge wat firewalls op die Internet, en so data, soos wat ons was net die oordrag van van my aan Stanford, van my aan Cambridge, gestuur word, op hierdie vlak, iets genaamd 'n IP-adres. Ons het dit 'n oomblik gelede, en 'n IP-adres is net 'n numeriese adres van die vorm w.x.y.z, waar elk van hierdie is tussen, gee of neem, 0 en 255, maar jy kan nie heeltemal al daardie getalle. Maar elkeen van hierdie plek houers is 'n getal tussen 0 en 255. So 'n IP-adres van hierdie dae is 32 bisse. Nou, dit gee ons hoeveel moontlike IP-adresse in die wêreld? Sowat 4 miljard, want enige tyd ons tel in magte van 2 al die pad tot by 32 van iets, wat ons gee gewoonlik 4 miljard. So dit is 'n baie van IP-adresse, maar jy kan lees, of jy kan nou sien in die populêre pers, roep 'n push na 'n nuwe weergawe van IP IPv6. Reg nou is ons die gebruik van weergawe 4. Daar is regtig nie 'n weergawe 5, ons is net spring reg tot 6. Weergawe 6 is 128 stukkies te gebruik vir die IP-adresse, wat is freaking groot. Ons moet nie uit vir 'n geruime tyd nou, maar ons het begin om uit te voer van weergawe 4 IP-adresse, want almal van ons het nie net dinge soos skootrekenaars en desktops, baie van ons het selfone, baie van ons het ander toestelle soos TiVo en die soos wat IP-adresse self. Harvard self het tien duisende van rekenaars. Sodat die wêreld is werklik besig om uit te loop van IP-adresse, ten minste van hierdie vorm. So oor die volgende paar jaar, gaan jy die adresse te sien op jou eie rekenaars waarskynlik stadig verander soos meer en meer maatskappye en universiteite begin om die nuwer weergawe te ondersteun. Maar 'n IP-adres is nie voldoende vir die rekenaar 'n data van die rekenaar b aan te vra. Omdat rekenaar b 'n bediener kon wees, en 'n bediener, soos ek vroeër genoem het, kan trosse van dinge doen. Dit webblaaie kan aanbied, kan dit 'n e-pos bediener, dit kan 'n Skype-bediener, kan dit 'n G-chat server. Al hierdie verskillende dienste wat voorsien word op 'n bediener kon al, fisies, op dieselfde masjien. Dus, in Benewens IP-adresse, die wêreld het die dinge wat ons hawens op die Internet genoem. 'N hawe is net 'n nommer nie, so daar is 'n unieke nommer vir HTTP. Sy getal is 80. HTTP gebruik ook nommer 443, maar meer spesifiek, vir geïnkripteer HTTPS. Wanneer jy sien die s, vir 'n veilige, dat die gebruik van 'n ander getal. Daar is ander getalle soos 25, wat gebruik word vir iets genoem SMTP, andersins bekend as e-pos. Daar is iets genaamd 22 vir SSH, en daar is 'n hele klomp van die ander hawens daar buite. Nou, ons mense selde sien hierdie getalle. Maar, wanneer jy tik in 'n adres soos http://www.facebook.com die leser is die geheim invoeging 80, omdat jy met behulp van HTTP. As jy, in plaas tipe HTTPS, dit is die geheim die invoeging van 443. En ons kan soort van sien dit handmatig as ek trek 'n Brower en gaan tot http://www.facebook.com:80. Daarom uitdruklik met verwysing na nie net die naam van die webwerf maar die poort wat ek wil om te praat, en druk enter. Let op dit verdwyn, omdat die leser aanvaar, oh, 80, ek nie eens gaan om te pla toon dat jy. Maar die rede hiervoor is dat as ek eintlik wou iemand 'n e-pos te stuur, Ek sou regtig stuur dit aan hulle op poort 25, dat SMTP. 'N bietjie van 'n oorvereenvoudiging, maar sommige van julle het vriende wat eintlik werk op Facebook, en hulle, op soortgelyke wyse, het bedieners wat e-pos ontvang. Enige tyd wat jy stuur 'n e-pos, wat is gmail vir jou doen of Outlook of wat ookal program wat jy gebruik, dit is soort van die geheim invoeging dat die getal, asook, 25, in daardie geval. Dit is hierdie kombinasie van 'n IP-adres en uniek nommer wat identifiseer 'n rekenaar op die internet en 'n spesifieke diens op die rekenaar. Nou, natuurlik, die meeste van ons waarskynlik nooit getik handmatig 'n IP-adres. Miskien het jy in die toestel, maar in die werklike wêreld, nie so erg. Waarom sou ons geen IP-adresse in die blaaier te tik? Dit sou werk, in werklikheid, kan ons sien, laat ek jou wys 'n ander bevel wat enige plek werk op Harvard se kampus op 'n Mac of 'n rekenaar. Daar is hierdie bevel genoem nslookup, name server lookup. As ek opkyk www.cnn.com, dit blyk dat CNN het - oh, interessante. CNN het begin met behulp van Amazon Web Services. Jy dalk weet van Wolk Computing, Amazon is een van die groot spelers in die wolk rekenaar. Wat ek nou net gedoen het, was, het ek gesê, "Gee my die adres van CNN se web-bediener, maar dit blyk dat CNN se web-bediener word bestuur deur Amazon, Amazon Web Services, dit dui daarop. En die adres van die bediener is dit hier. So ek is nie seker of dit sal werk, want hulle het nie gebruik Amazon te gebruik. Maar laat ons probeer om hierdie; http://, IP-adres, betree, en - dit gaan om te werk? Ja. Dit gaan om te werk. Internet is super-stadige vandag. Maar, in 'n oomblik, sal jy sien 'n paar nuus storie. Daar gaan ons. Bank van Amerika se gedagvaar word. Alles reg. Dit is omdat hierdie IP-adres net gebeur deur sinoniem met www.cnn.com. Natuurlik, sou dit verskriklik bemarking wees om te sê, besoek ons ​​op die web by 50.112.94.127. Jy sou nooit onthou nie. So selfs hierdie dae wat jy kan onthou dinge die wêreld het soos 1-800-COLLECT of geheue hulpjes vir telefoonnommers. Wat voor selfone, was nogal moeilik om te onthou totdat jy kan net tik dit in en vergeet oor dit. So het die Web, ook, het hierdie konvensie van name en IP-adresse, en daar is hierdie dinge daar buite het DNS-bedieners, domein naam bedieners, wat vertaal IP-adresse in name en vice versa. So dit is wat gaan aan onder die enjinkap. Op die ou end, het ons TCP / IP, wat is hierdie 'n baie lae vlak protokol dat, regtig, kry net 0 en 1's oor die internet, en dit doen dit deur hulle in 'n virtuele koevert, as jy wil, en skryf op die buitekant van die koevert die IP-adres van die bestemming, asook die numeriese poort nommer van die diens op die bestemming wat dit wil om te praat met. Intussen, op die koevert daar is ook iets wat bekend staan ​​as 'n terugkeer adres, wat is jou IP-adres, sodat wanneer CNN kry 'n pakkie van die inligting van jou, hierdie virtuele koevert oopmaak, sien dat jy wil hê dat die home page, hy weet van die sender deel van hierdie virtuele koevert wie die HTML terug te stuur. So laat ons neem 'n blik op hierdie in 'n bietjie meer detail. Dit is van 'n maatskappy genaamd Ericson, van 'n paar jaar terug. En hulle het 'n paar vryhede met hoe die Internet werk, maar dit verf 'n veel meer visuele prentjie as net kryt hier. So EK gee julle "'n bietjie van die internet." [Verteller] Vir die eerste keer in die geskiedenis, mense en masjinerie werk saam, die verwesenliking van 'n droom. 'N verenigende krag wat ken geen geografiese grense. Sonder inagneming van ras, geloof, of kleur. 'N nuwe era waar kommunikasie werklik mense saam bring. Dit is Die aanbreek van die Net. Wil jy om te weet hoe dit werk? Kliek hier om jou reis om te begin in die Net. Nou, presies wat gebeur wanneer jy op die skakel gekliek? Jy begin met 'n vloei van inligting. Hierdie inligting reis in jou eie persoonlike postkamer waar mnr. IP pakkette, etikette, en stuur dit op sy manier. Elke pakkie is beperk in sy grootte. Die e-pos-kamer moet besluit hoe om die inligting te verdeel en hoe om dit te verpak. Nou, die pakket moet 'n etiket wat belangrike inligting bevat soos afsender se adres, die ontvanger se adres, en die tipe van die pakkie is dit. Omdat hierdie spesifieke pakkie gaan uit op die Internet, dit kry ook 'n adres vir die proxy server, wat het 'n spesiale funksie, soos ons later sal sien. Die pakkie is nou van stapel gestuur op jou plaaslike area netwerk of LAN. Hierdie netwerk word gebruik om al die plaaslike rekenaars aan te sluit ' routers, drukkers, ensovoorts, vir die uitruil van inligting binne die fisiese mure van die gebou. Die LAN is 'n mooi onbeheerde plek, en ongelukkig, ongelukke kan gebeur. Die grootpad van die LAN is gepak met alle vorme van inligting. Dit is IP pakkies, Novell pakkies, Apple Talk pakkies. Hulle gaan teen die verkeer, soos gewoonlik. Die plaaslike router lees die adres en, indien nodig, lig die pakkie na 'n ander netwerk. Ag, die router. 'N simbool van beheer in 'n oënskynlik ongeorganiseerd wêreld. [Router gemompel en praat vir homself] [Verteller] Daar is hy, sistematiese, liefdeloos, metodiese, konserwatief, en soms nie heeltemal te bespoedig. Maar ten minste het hy is presies, vir die grootste deel. As die pakkies die router verlaat, hulle maak hul pad in die korporatiewe Internet en hoof vir die router skakelaar. 'N bietjie meer doeltreffend as die router, die router skakelaar speel vinnig en los met 'n IP pakkies, behendig routing hulle langs die pad. 'N digitale Pinball Wizard, "as jy wil. [Router skakelaar vir homself praat] [Verteller] As pakkies op hul bestemming aankom, hulle is opgetel deur die netwerk koppelvlak, gereed om te gestuur word na die volgende vlak. In hierdie geval, die gevolmagtigde. Die volmag deur baie maatskappye gebruik as 'n soort van 'n middeljarige man ten einde die las op die Internet verbinding te verminder en vir sekuriteit redes, as well. Soos jy kan sien, die pakkies is al van verskillende groottes, afhangende van die inhoud daarvan. Die gevolmagtigde maak die pakkie oop en kyk vir die web adres of URL. Afhangende van of die adres aanvaarbaar is, die pakkie is gestuur op die Internet. Daar is egter 'n paar adresse wat nie voldoen aan met die goedkeuring van die volmag. Dit is om te sê, korporatiewe of bestuur riglyne. Dit word summier behandel. Ons sal nie een van daardie. Vir diegene wat dit maak, dit is weer op die pad. Next up, die firewall. Die korporatiewe firewall dien twee doeleindes. Dit verhoed dat sommige eerder nare dinge van die Internet kom in die Intranet, en dit kan ook verhoed dat sensitiewe korporatiewe inligting gestuur word op die Internet. Sodra deur die firewall, 'n router die pakkie optel en plaas dit op 'n veel nouer pad, of bandwydte, as ons sê. Natuurlik, die pad is nie breed genoeg is om hulle almal te neem. Nou, kan jy dalk wonder wat gebeur met al die pakkies wat dit nie maak langs die pad. Wel, wanneer mnr. IP nie 'n erkenning ontvang nie dat 'n pakkie op die regte tyd ontvang is, stuur hy net 'n plaasvervanger pakkie. Ons is nou gereed om die wêreld van die Internet in te voer. 'N spinnerak van onderling netwerke wat ons hele wêreld strek. Hier, routers en switches skakels tussen netwerke. Nou, die Net is 'n heeltemal ander omgewing as wat jy sal vind binne die beskermende mure van jou LAN. Hier, dis die Wilde Weste. Baie van die ruimte, baie geleenthede, baie van die dinge om te verken en plekke om te gaan. Te danke aan baie min beheer en regulering, nuwe idees vrugbare grond om die koevert te stoot van hul moontlikhede. Maar as gevolg van hierdie vryheid, ook sekere gevare loer. Jy weet nooit wanneer jy voldoen aan die gevreesde ping van die dood, 'n spesiale weergawe van 'n normale versoek ping, wat 'n idioot het gedink tot gemors niksvermoedende die leërskare. Die pad wat ons pakkies neem kan via satelliet, telefoonlyne, draadloos, of selfs oceaan kabel. Hulle nie altyd die vinnigste of kortste roetes moontlik, maar hulle sal daar uiteindelik kry. Miskien is dit waarom dit soms genoem "The World Wide Wag." Maar wanneer alles vlot, jy die wêreld kan vyf keer oor omseil by die druppel van 'n hoed, letterlik. En vir die koste van 'n plaaslike oproep of minder. Naby die einde van ons bestemming, ons kry nog 'n firewall. Afhangende van jou perspektief as 'n data pakkie, die firewall kan 'n bastion van sekuriteit of 'n gevreesde teenstander wees. Dit hang alles af van watter kant jy is en wat jou bedoelings is. Die firewall is ontwerp om jou te laat in slegs daardie pakkies wat voldoen aan die kriteria. Hierdie firewall poorte 80 en 25. Alle pogings om in te gaan deur die ander hawens gesluit is vir besigheidsdoeleindes. Port 25 is wat gebruik word vir die pos pakkies, terwyl poort 80 is die ingang vir pakkies van die Internet die webbediener. Binne die firewall, word pakkies meer deeglik gekeur. Sommige pakkies maak dit maklik deur die doeane, terwyl ander kyk net 'n bietjie twyfelagtige. Nou, is die firewall beampte nie maklik geflous, soos wanneer hierdie ping van die dood pakkie probeer om homself te vermom as 'n normale ping pakkie. [Firewall beampte te praat pakkies] [Verteller] Vir diegene pakkies gelukkig genoeg is om dit so ver, die reis is byna verby. Dit is net 'n lyn op die koppelvlak om opgeneem te word in die web-bediener. Vandag, kan 'n web bediener hardloop oor baie dinge, van 'n mainframe na 'n web cam op die rekenaar op jou lessenaar. Waarom nie jou yskas? Met die regte setup, kan jy vind uit of jy het ' vir Chicken Cacciatore, of as jy het om te gaan inkopies doen. Onthou, dit is die begin van die Net. Byna enigiets is moontlik. Een vir een, is die pakkies ontvang, oopgemaak word, en uitgepak. Die inligting wat hulle bevat, dit is jou versoek vir inligting, gestuur word na die web bediener aansoek. Die pakkie self herwin, gereed om weer te gebruik, en gevul met jou gevraagde inligting, aangespreek is, en uitgestuur op sy pad terug na jou. Terug verby die firewall, routers, en deur tot die Internet. Terug deur jou korporatiewe firewall en op jou interface, gereed om jou webblaaier met die inligting wat u versoek het, te voorsien. Dit is hierdie film. Tevrede met hul pogings, en vertrou die beter wêreld, ons betroubare data pakkies ry salig in die sonsondergang van 'n ander dag, wetende dat ten volle hulle hul meesters gedien het goed. Nou, is dit nie 'n gelukkige einde? [Malan] Okay, dis genoeg. Ons sal jou volgende week sien. [CS50.TV]