[Musik spiller] DAVID J. MALAN: Så jeg lige ønskede at dæmpe til. Jeg vil gerne gentage, hvad der præcist SCAZ sagde om institutionelle hukommelse. CS50 har eksisteret i omkring 20 år på Harvard. Og virkeligheden er, fra seniorer på ned, Der er årligt tryghed at de freshmen, de sophomores, og juniorer og også seniorerne tager CS50, at du ender med at gøre fint. Virkeligheden er, de studerende ikke svigte CS50. I virkeligheden, i de sjældne tilfælde hvor vi har haft Es eller Fs, det er virkelig været på grund af formildende omstændigheder, uanset om det er medicinsk eller personlige. Ds er utroligt ualmindeligt så godt. Og jeg kan sige komfortabelt, selvom vi typisk ikke afslører statistik, men eftersom der ikke er nogen institutionelle hukommelse her overhovedet, et flertal af de studerende i CS50 gør ender med at få en række kvaliteter. En væsentlig bid ender ender i B området også. Så selvom du måske være svarende i dit sind treere med 60%, og derfor Ds eller Cs eller lignende, det virkelig ikke linje op med virkeligheden. Faktisk mener vi, hvad vi sige i begyndelsen af ​​udtrykket at så mange studerende i CS50, både i Cambridge og her i New Haven, har aldrig taget en CS kursus før. Og hvad faktisk i sidste ende betyder noget er, hvor du ender i uge 12 i forhold til dig selv i uge nul. Nu har vi flere spor i løbet som du know-- mindre behagelig, mere komfortable, et sted i mellem. Og ja, når du får statistikker om denne uges quiz, ikke blive afskrækket, hvis, især hvis du føler, at du er omkring gennemsnittet eller under middelværdien eller medianen, især da vi ikke nødvendigvis træffe alle disse demografi højde midt-semester med statistikken klassificering. Med andre ord, vi kender statistisk hvert år at studerende, der er mindre behagelig, gøre lidt værre på quizzen. Og studerende, der er mere komfortable gøre lidt bedre på quizzen. Men pr dette løfte i pensum og også i den første uge af foredrag, vi tager alt dette i betragtning. Faktisk ved årets udgang, hvad vi ender med at gøre er at normalisere alle scoringer tværs sektioner, både i Cambridge og nu her i New Haven, hvilket betyder at tage hensyn de forskellige stilarter, de uensartede hårdhed, den anden slags af personligheder, at den enkelte AT'er har her og i Cambridge så du ikke er på en ulempe selv hvis du bare tilfældigvis har haft en TF eller en TA der har været lidt hårdere på dig i dit sind. To, vi tager hensyn til komfort niveau og faktiske baggrund, eller mangel heraf, når du tager quiz scoringer i betragtning. Så dem to er indregnet. Og ved slutningen af ​​dagen, fordi det er altid tilfældet at en studerende endte på en mindre behagelig sektion når han eller hun virkelig tilhørte i en i-mellem eller omvendt, alt er så utrolig individualiseret. Faktisk vil du få irriteret på os på i slutningen af ​​udtrykket, når vi er sent indsende dine karakterer, fordi med SCAZ, og Jason, og Andy, og jeg, og teamet vil have gjort i Cambridge er bogstaveligt talt har hundredvis af e-mails tilbage og frem med alle hundrede af kurserne TAS, her og i Cambridge, spørger dem, hvad de tænker på alle deres elever baseret på et udkast til de kvaliteter. Og alt der efter er utrolig individualiseret. Så i det omfang, vi kommer til at kende dig i kontortiden, sektioner og mere, alt dette er for tages i betragtning. Så selv om vi har en tendens til at bruge denne fem skalaen, please, frigøre dig selv fra den antagelse, at en tre er faktisk en 60%. Det menes at være god. Og de undervisningsassistenter debiteres på sigt starten at forsøge at holde scoringer i toere og treere, og firere spænder så vi rent faktisk har plads til at vokse. Og vi har faktisk en målestok, som vi kan give dig nyttige tilbagemeldinger på, hvordan du gør og hvordan du skrider. Så tøv tage det til hjerte. Er der nogen spørgsmål, jeg kan hjælpe behandle eller bekymringer, jeg kan hjælpe dæmpe? Eller løfter jeg kan forsøge at holde? Nej? OK. Okay. Så med det sagt, er det CS50. Dette er starten på ugen seks her i New Haven. Lad os begynde med en kort dæmpning af lys at sætte scenen for dagens indhold. [VIDEO PLAYBACK] [Musik spiller] -Han Kom med et budskab. Med en protokol al sin egen. Han kom til en verden af ​​cool firewalls, ufølsom routere, og farer langt værre at døden. Han er hurtig, han er stærk, han er TCP / IP. Og han har din adresse. Warriors af nettet. [END AFSPIL] DAVID J. MALAN: Okay. Det er CS50. Dette er starten på uge seks. Og dette er starten på vores udseende på internettet og web-programmering. Og måske mest spændende, i dag markerer overgangen for os fra vores kommandolinjen verden af ​​C til internettet baserede verden af ​​PHP og HTML, og CSS, og SQL, og JavaScript, og så meget mere, som er på horisonten. Men først er det kommet til vores opmærksomhed i walking på tværs campus, at der er en vis badeværelse her i New Haven kaldet Harvard værelse, som er lidt nedtonet her. Men ja, nogen gik til tiden og bekostning af ætsning i Harvard værelse på denne her rum. Tak for det. Jeg kan ikke sige, at vi har en analog i Cambridge endnu, men jeg tror, ​​vi har et lille projekt for os selv nu, når vi gå tilbage. Så tak for det. Så et hurtigt se tilbage på hvor vi slap i sidste uge og hvor du skal hen denne kommende uge med problemer indstille fem. Så i problemer sæt fem, vil du være udfordret til at gennemføre en stavekontrol. Og for at gøre det, vil du være udleveret en temmelig stor tekst fil med lignende 140.000 engelske ord. Og du vil blive udfordret til at beslutte på en datastruktur, som du ønsker at indlæse alle disse ord i hukommelsen, og ind i RAM, og derefter gennemføre et par funktioner, hvoraf den ene vil være at kontrollere. Hvorved når bestået et argument, et ord, din funktionskontrol simpelthen vil have at sige sandt eller falsk, dette er et ord i ordbogen. Men du kommer til at have nogle design diskretion og udfordringer når det kommer til at gennemføre det. I den simpleste implementering, du kunne sikkert gennemføre en stavekontrol i den underliggende ordbogen med, hvad slags data struktur? Du skal blot gemme en hel bundt af strenge i hukommelsen? Hvad er farten for at besvare fra uge to måske? PUBLIKUM: Array. DAVID J. MALAN: Du kan bruge et array. Og det er ikke så slemt. Men du behøver ikke nødvendigvis kender på forhånd hvor stort et array du vil få brug for, hvis du ikke gør ved filen nødvendigvis i forvejen. Så du nødt til at bruge en lille smule af fup Ligesom malloc, ligesom vi begyndte at bruge. Eller vi kunne tage fat på denne bekymring ved at bruge hvilke andre data struktur, der er været en slags marginal forbedring på et array? PUBLIKUM: Linked listen. DAVID J. MALAN: Ligesom en sammenkædet liste, hvor vi får nogle dynamik. Men der er lidt mere regning. Vi har pointers at vedligeholde. Og du har endnu ikke kodet dette op, men der er helt sikkert at være lidt mere kompleksitet end blot at bruge kantede parenteser og hoppe rundt et array. Men en arrayets køretid, Hvis du søger efter et ord, kunne logge af n. Men igen, kan det være en lille ikke-triviel at opbygge den opstilling ikke kende størrelsen på forhånd. En sammenkædet liste selv, hvis du bare gemme en masse strygere i en sammenkædet liste, hvad er din øvre grænse om køretid vil være at søge til eller kontrollere et ord i denne liste? PUBLIKUM: n. DAVID J. MALAN: Ja, stort O n eller lineær fordi i værste fald, Ordet er ligesom en Z ord hele vejen i slutningen. Og på grund af en linket liste, fordi disse pile som standard, i en enkelt bundet liste, kun gå fra den ene retning til den anden, du kan ikke hoppe rundt. Du er nødt til at følge dem alle. Så vi foreslog i slutningen af ​​sidste uge, uge fem, at der er bedre måder. Og i virkeligheden, den hellige gral ville virkelig være konstant tid hvorved, når du vil at se op et ord, du få svar uanset hvor mange ord er allerede i din ordbog. Dette er en kunstners gengivelse af hvad man kunne kalde en hash tabel. Og en hash tabel er lidt af en dejlig amalgam af en array-- trukket lodret her, bare because-- og derefter en forbundet list-- trække vandret her. Og hash tabel kan være gennemføres i bundter af måder. Dette uddrag fra en lærebog sker at bruge disse menneskers fødselsdatoer som de måder, hvorpå det er at beslutte hvor til at sætte en persons navn. Så dette er en ordbog hvis du vil med navne. Og for at fremskynde sætte navne i denne datastruktur, de ser på, tilsyneladende, disse menneskers fødselsdatoer med hensyn til en måned. Så det er 1 til 31. Og glem alt om februar og hjørne sager sådan. Og hvis din fødselsdag er januar 1, eller 1. februar eller 1. december du kommer til at ende på den allerførste kæden op øverst. Hvis din fødselsdato er Ligesom den 25. i en måned, du kommer til at ende op på spanden nummer 25. Og hvis der er allerede nogen, der i en af ​​disse positioner, hvilket du begynder at gøre med disse forbundne lister er syning dem sammen så du kan have en vilkårlig Antallet af mennesker, eller noget, på dette sted. Så du har sådan en blanding af konstant tid til hashing. Og at hash noget betyder for tage input som en person, eller hans eller hendes navn, eller hans eller hendes fødsel dato, og derefter beslutte på nogle output baseret på, at de ligesom ser på deres fødselsdag og udsende en gennem 31. Så så skal du måske have lidt lineær tid, men i virkeligheden, og som i tilfælde af problemer sæt fem, Vi kommer ikke til at være arbejder i P sæt fem så meget om asymptotisk kører tid, ligesom den teoretiske langsommelighed som en algoritme kan løbe. Vi kommer til at bekymre sig om det faktiske antal sekunder og den faktiske mængde hukommelse, det faktiske antal bytes hukommelse du bruger. Så helt ærligt, der har en enorm kæde af som en million mennesker er pretty damn langsom, hvis du søger efter et navn på en liste over størrelse mio. Men hvad nu hvis du opdele denne liste op i 31 dele? Søgning 1/31 af denne super lange liste, i virkeligheden, er helt sikkert kommer til at være hurtigere. Asymptotisk, det er det samme. Du bare dividere med en konstant faktor. Og minde om, at vi smide disse ting væk. Men i virkeligheden, går det at være 31 gange hurtigere. Og det er, hvad vi vil begynder at gearing i P sæt fem. Så P sæt fem alt også foreslår, at man tænker lidt mere sofistikeret datastruktur kaldet en trie. Og en trie er blot en træ lignende datastruktur. Men i stedet for at små cirkler eller rektangler som vi holder tegning til noder, det faktisk har hele arrays til dets knudepunkter. Og selv om det er et bit abstrakt her for at se på, Zamyla i P sæt gåtur gennem vil gå dig gennem mere detaljeret om dette. Dette er en datastruktur at i stedet ødelagde kan have hver knude er et array størrelse 26, A til Z eller nul til 25. Og når du vil indsætte en persons navn til denne datastruktur eller find ham eller hende, hvad du gør, hvis navn er ligesom Maxwell, M-A-X-W-E-L-L, du først se på M. Og så springe til den tilsvarende placering M i første række. Du kan derefter hoppe til A, den første placering i det næste array, efter pilene. Derefter X, så W, så er E, så L, derefter L, og så måske nogle særlige ende karakter, nogle sentinel der siger et ord stopper her. Og hvad er rart om denne-- og huske på, at billedet her, mærke til, hvordan kanter hver matrix er afskåret. Det er bare fordi denne ting ville være massiv og rædselsvækkende at se på på skærmen. Så det er uddrag. Hvad er rart om denne fremgangsmåde er at hvis der er en million navne allerede i denne datastruktur, hvor mange skridt tager det mig at indsætte Maxwell? M-A-X-W-E-L-L-- som syv-ish skridt til at indsætte eller lede efter Maxwell. Antag der er en billion navne på dette datastruktur. Hvor mange skridt tager det mig til at lede efter Maxwell? M-A-X-- stadig syv. Og deri ligger såkaldte konstant tid. Hvis vi antager, at ord er helt sikkert afgrænset ved 20 tegn eller 46 tegn, eller en forholdsvis lille heltal, så er det i realiteten en konstant. Og så indsættelse og søgning en trie er super hurtig. Selvfølgelig, vi aldrig få noget gratis. Og selvom du sikkert har ikke dykket ind i P sæt fem endnu, hvilken pris vi sandsynligvis betale for at få det større effektivitet tid klogt? PUBLIKUM: Hukommelse. DAVID J. MALAN: Hukommelse, ikke? Jeg mener, vi har ikke trukket hele billedet her. Dette uddrag fra lærebogen har ikke draget alle de arrays. Der er en enorm mængde hukommelse og bare null pointere, der ikke bliver brugt. Så det er en afvejning. Og det vil blive overladt til dig i P indstillet fem at træffe beslutning om, hvilken vej du vil gå. Nu er denne idé om hashing, som en side, er faktisk super udbredt. Så for at hash en værdi betyder, helt simpelthen at tage noget som input og producere et output. Så en hash-funktion er blot en algoritme. Og generelt, en hashfunktioner formål i livet er at tage noget som input og producere en række som output, ligesom nummer et gennem 31 eller A til Z, nul til 25. Så det tager en kompleks output og krymper det ned til noget der er lidt mere nyttigt og overskueligt. Og så viser det sig i en meget populær funktion at sikkerheden verden og den humane verdens brugt i årevis hedder SHA1. Dette er en temmelig fancy matematisk formel, der gør det væsentlige, at. Du tager en rigtig stor luns af nuller og ones-- der kunne være en megabyte lang, en gigabyte long-- og det krymper det ned til blot et par bits, et par bits, så du har et nummer som en gennem 31 eller A til Z. Men i virkeligheden, det er lidt større end blot A til Z. Desværre, vi er på nippet til, hvad nogen legende kaldet SHAppening hvorved verden er ved at ender i sandsynligvis et par måneder tid, fordi forskerne, netop denne sidste uge, udgivet en rapport, der i modsætning til hvad sikkerhedseksperter har tænkt i nogen tid, ved blot bruger omkring, hvad var det, Jeg tror det var $ 175,000-- mange penge, men ikke uden for rækkevidde af særligt slemme skurke, eller særligt dårligt countries-- $ 175,000 kunne købe dig en masse lejet server plads i skyen. Og vi vil komme tilbage til skyen inden længe. Men det betyder bare, at leje server banen er ligesom Microsofts servere, eller Googles eller Amazons, eller ligesom hvor du kan betale ved minut at bruge andres computere. Og det viser sig, om du kan betale en anden til at låne deres computere og køre kode, som du har skrevet på det og bruge temmelig fancy matematik, kan du hovedsageligt tal ud af, hvordan en persons hash funktion er fungerer, og givet sin produktion, reverse engineering hvad dens input er. Og for nutidens formål, er det tilstrækkeligt at sige, det er dårligt. Fordi SHA1 og hashfunktioner ligesom det er super almindeligt anvendes i sikkerhedsapplikationer, krypterede forbindelser på nettet, banktransaktioner, cellulære kryptering til din mobiltelefoner og lignende. Og så helst nogen finder en måde at vende ingeniør en af ​​disse teknologier eller bryde det, kan dårlige ting ske. Nu allerede verdens vidste dette. Det var forudsigelig. Og verden har siden flyttet fra SHA1 til SHA256, som er blot en fancy måde siger de bruger større bits. Og i virkeligheden, selv CS50 egen hjemmeside opgraderet sidste år at-- ikke, at vi står over alt dette mange trusler forsøger at komme på PDF-filer og whatnot-- men CS50 hjemmeside anvender større hash-funktionen, hvilket betyder, at vi vil være sikker. Så alle dine PDF-filer vil være sikker, men ikke nødvendigvis dine penge eller noget særligt privat eller personlig at bruge. Sp tjek denne webadresse, hvis du ville ligesom nogle yderligere detaljer. Så problemet sæt fem er faktisk i horisonten. Quiz ene er den kommende onsdag. Men tager fordel af kontor timer, både i aften og i morgen. Og også drage fordel af kontortid, hvis du er til rådighed, lige efter dette. Personalet og jeg vil holde sig og gøre mere afslappet Q & A i tillæg til aften. Og lad mig kraftigt bemærke her, for de af os her i New Haven-- så det er absolut pr SCAZ s bemærkninger følte, jeg er sikker, som lidt af en op ad bakke kamp. Og ved omdømme, hvis du har ikke lært allerede eller hørt fra nogle venner på Harvard, kender her er nogle nye institutionelle hukommelse. P sæt fem slags slags har tendens til at være den sværeste i CS50, eller den mest udfordrende for de fleste elever. Men hvad det betyder, er, at vi er næsten på toppen af ​​denne bakke. Og jeg virkelig mener det. Det er den mest udfordrende, men det er også den mest givende ved, at modsætning til de fleste hver anden indledende datalogi kursus i USA, som vi kender til, de fleste studerende ikke færdig en intro Selvfølgelig har allerede gennemført ting som træer og forsøg, og hash tabeller og lignende. Og så jeg håber, og Vi håber, at du er have en enorm sans af tilfredshed selv hvis uge eller to, via hvilken du kommer til at tilfredshed føles lidt som dette. Men lad mig forsikre, vi kun har fire P sæt tilbage. Så slags, at toppen er i sigte. På den anden side af det, har tillid til os, det er bare rullende bakker og skyer. Og skal vi sige, hvalpe er på den anden side. Så du bare nødt til at hænge derinde lidt længere. Jeg mener, ja så vi begynder at overgangen ind i verden af ​​web-programmering, du opdage, at tingene become-- dette er bedårende faktisk. OK, vi vil sende denne URL senere. Du vil finde alt for, at vi er nåede en slags plateau hvor alt er faktisk stadig sofistikeret og udfordrende af design, men du er ikke kommer til at føle, at vi er konstant går op denne bakke. Så tage nogle komfort i det. Så uden videre, lad os starte at gøre dette marked overgang i semesteret til en verden af internettet, og virkelig verden med, som vi alle er mere fortrolige. Vi har internet-enheder i vores lommer, på vores skriveborde, i vores rygsække og lignende. Hvordan gør alt dette arbejde? Og hvordan kan vi begynde at skrive kode, er ikke super mystiske og i nogle blinkende tekst prompt at ingen af ​​dine venner eller familie er nogensinde vil ønsker at interagere med, men noget du kan sætte på deres telefoner, eller på deres web-browsere, eller på nogen enheder med som de interagerer. Så her er en persons hjem. Og inde i dette hjem er et par bærbare computere, et par gamle skole skrivebordet computere, kaldet noget router eller hub i midten, og derefter en slags kabelmodem eller DSL-modem. Og så er der internettet, generelt tegnet som en sky deroppe i himlen. Så dette billede, selvom en lille slags dateret, sikkert indfanger hvad de fleste af du sandsynligvis have i jeres hjem, eller hvad reelt alle du har i dine sovesale, eller lejligheder, eller lignende. Så hvad der rent faktisk foregår, når du forsøger at bruge internettet i dag? Så hver computer på internet, viser det sig, skal have en unik adresse, meget gerne vi i den virkelige verden behov en postadresse, ligesom 51 Prospect Street, New Haven, Connecticut, eller 33 Oxford Street, Cambridge, Massachusetts. Så gør computere på internettet har brug for en måde entydigt adressering selv. Det er, så når en computer ønsker at tale til en anden, Det kan sende en besked og informere modtageren til hvem den skal sende svar tilbage. Så det gør blot slags intuitiv fornemmelse måske at alt har en adresse af en slags. Men hvordan får du en adresse? Tja, hvis du får her på campus, eller du går hjem og du tænder for bærbar eller stationær computer, og enten sæt den i eller oprette forbindelse til Wi-Fi, Det viser sig, at der er en særlig server på de fleste netværk kaldes en DHCP-server. Er virkelig ligegyldigt hvad det står for, men det er Dynamic Host Configuration protokol, som er lige en fancy måde at sige, det er en computer, enten Yale har eller Harvard har, eller Comcast har, eller Verizon har, eller din virksomhed har, hvis formål i livet, når den hører en nyligt tilføjede til netværket, det vil sige her, bruge denne adresse. Så vi mennesker ikke behøver at hård kode i vores computere hvad vores unikke adresse er. Vi vender det bare på, skal du åbne låg, og på en måde denne server på det lokale netværk bare fortæller mig, at min adresse er 51 Prospect Street, eller 33 Oxford Street, eller lignende. Nu er det ikke kommer til være så detaljeret som. Snarere, hvad jeg har tænkt mig at få, er en numerisk adresse kaldes en IP-adresse. IP betyder Internet Protocol. Og odds er på dette tidspunkt i dit liv, du sikkert hørt eller set ordet IP, eller generelt kastet den rundt måske. Men i virkeligheden, er det temmelig ligetil en ting. En IP-adresse er blot en decimaltal, hvilket betyder, at det er noget, prik noget dot noget dot noget. Og hver af disse somethings sker at være et tal mellem 0 og 255. Så baseret på fem plus ugers CS50, hvis disse tal hvert interval fra 0 til 255, hvor mange bits er hver af disse nummerplader? PUBLIKUM: Otte. DAVID J. MALAN: Det må være otte. Så i alt, hvor mange bit er en IP-adresse? PUBLIKUM: 32. DAVID J. MALAN: Så 32. 8 plus 8 plus 8 plus 8 er 32. Hvor mange samlede IP-adresser kan der være i verden? PUBLIKUM: 4 mia. DAVID J. MALAN: Så groft fire milliarder fordi det er 2 32 magt. Og hvis du ikke kan slags grok at i dit sind, bare vide, at 32-bit-værdier kan være så stor som 4 milliarder hvis det er alle positive værdier. Så det betyder, at der er 4 milliarder mulige IP-adresser i verden. Og sjov historie, vi er slags for at løbe ud af dem. Og i virkeligheden er det et kæmpe problem, idet verden så også dette problem kommer, men har ikke nødvendigvis reageret på det på den mest hurtigt som muligt. Og ja, når du har færdig CS50 og begyndte opmærksom på tech verden, vil du se det er meget almindeligt tematisk. For eksempel, hvis vi går virkelig gamle skole i dag, Y2K. Det var egentlig ikke en overraskelse. Ligesom alle vidste for 1.000 år at denne was-- mere end tusind years-- der der blev til sidst kommer til at ske. Og alligevel, vi reagerede på det meget i sidste øjeblik. Og det sker igen. Så i dag vil vi tale om IP version 4. Men ved, at verden er endelig at komme rundt for at opgradere til noget, der hedder IPv6, som i stedet for 32-bit adresser, uses-- nogen ønsker at tage et gæt, hvor mange bits? PUBLIKUM: 64? DAVID J. MALAN: God gæt, men nej. Vi endelig forsøger at komme foran kurven. PUBLIKUM: 128. DAVID J. MALAN: 128, hvilket er en freaking stort antal af IP-adresser, fordi det er ligesom gange 2, gange 2, gange 2, en masse gange toere op fra 4 mia. Så hvis nysgerrig. Det viser out-- og jeg bare googlede dette at finde denne out-- Yale computere her på Yale, har tendens til at starte med disse numbers-- 130,132 dot noget, og 128,36 dot noget. Men der er helt sikkert undtagelser over hele linjen afhængigt af hvilken afdeling og bygning og campus du er på. Harvard tendens til at have 140,247 eller 128,103. Og generelt er det ubrugelige oplysninger, men det er noget, du kan mærke nu. Når du begynder at rode rundt indstillingerne på dine computere, du kan begynde at lægge mærke til disse former for mønstre inden længe. Men når du er hjemme og har en Apple AirPort eller en Linksys-enhed, eller en D-Link, eller hvad det er dine forældre eller søskende installeret i dit hus, godt hvad har du sandsynligvis er det, der hedder en privat IP-adresse. Og disse var faktisk en rart, midlertidig løsning på problemet med at køre kort på IP-adresser. Og hvad du kan gøre med hjemmenetværk, typically-- og helt ærligt, selv Yale og Harvard er begyndt at gøre dette i forskellige areas-- er dig kan give en hel masse computere en IP-adresse, så længe du lægger en særlig anordning foran dem, noget, der hedder en router, eller det kan kaldes en proxy eller en række andre ting. Men en enhed, har den en IP-adresse. Og så bagefter enhed, i en bygning, inden et hus eller en lejlighed, kan være et vilkårligt antal computere, som alle har en IP-adresse, der starter med en af ​​disse cifre her. Og så længe den pågældende computer ved, hvordan man konvertere den offentlige adresse til den private adresse, alt kan sortere arbejde som forventet. Men det modsatte af dette er, at hvis du er hjemme, og du har en søskende, og begge af jer er besøger nogle hjemmeside, at hjemmesiden ikke, om det er dig eller din bror og søster besøger hjemmesiden, fordi man synes at være den samme person, fordi alle dine data går gennem denne router eller at centrale punkt. Men nok om disse lavere detaljer niveau. Lad os tage et kig på, hvordan IP-adresser nogle gange kommer op måske i medierne og hvordan vi nu kan begynde at ødelægge, Helt ærligt, endnu flere shows for dig. Hvis vi kunne dæmpe lys til et par sekunder. [VIDEO PLAYBACK] -Det Er en 32-bit på IPP 4 adresse. -IP ES internet-- -Privat Netværk, Tamia private netværk. Hun er så fantastisk. -Kom På Charlie. DAVID J. MALAN: Det er et spejl IP-adresse. Hun lade os se hvilke hun gør i realtid. [END AFSPIL] DAVID J. MALAN: OK. Så nogle få problemer med dette. Så man, hvad vi leder efter på her på skærmen er en kode skrevet i et sprog kaldet Objective-C, som er form for en efterfølger til C-sprog, som vi laver. Dette har absolut intet at gøre med programmering. Faktisk så godt jeg kan fortælle, dette er et tegneprogram at nogen downloades fra internet eller anden måde involverer farveblyanter. Måske mindre grove, er, at denne IP-adresse, gyldig eller ugyldig? PUBLIKUM: Ugyldig. DAVID J. MALAN: ugyldig, fordi 275 er naturligvis ikke mellem 0 og 255. Også det er nok OK selv, fordi du ikke ønsker at flok skøre folk der er ligesom pause TV på deres Tivos og derefter besøger UP for at se hvis der er faktisk noget der. Så man er lidt mindre ekstreme. Men indse, at alt er slags rundt omkring os. Så selvfølgelig, ingen af ​​os nogensinde virkelig skrive numeriske adresser i vores browsere. Det ville være lidt af en dårlig ting hvis Google, for at besøge Google, du måttet gå til 123.46.57.89. Og hele verden havde bare huske på, at. Og helt ærligt, vi har slags af set dette problem før. Tilbage i dag, når folk ikke har mobiltelefoner og kontaktlister, og virksomheder rent faktisk still-- faktisk, Jeg gætter virksomheder har stadig 800 tal og den like-- men du generelt ser tal annonceret som 1-800-COLLECT, C-O-L-L-E-C-T. Fordi ingen rigtig kan huske, når at se en annonce på en bus eller tavlen, hvad nogen nummer er, men de kan sandsynligvis, med højere sandsynlighed, husker et ord. Så vi vedtaget det samme form for system i verden af internettet, hvor der er en domænenavn system, så vi mennesker kan skriv google.com, facebook.com, yale.edu, harvard.edu, og lad computere tallet ud af, hvad tilsvarende IP adresse er for et bestemt navn. Og den måde du gør dette i virkelige verden er, at for $ 10 om året, måske $ 50 år, kan du købe et domæne navn, eller virkelig leje et domænenavn. Og så hvem du betaler at leje dette domænenavn, du fortæller dem hvem i verden ved, hvad din IP-adresse er. Og vi vil ikke gå ind i disse oplysninger, men mange af jer måske ønsker, til endelig projekter, faktisk for at tilmelde dig for din egen web-hosting selskab, enten gratis eller for et par dollars om måneden. Nogle af jer måske ønsker at købe, for en par dollars, dit eget domænenavn, bare for sjov eller for at starte en virksomhed eller en personlig hjemmeside eller lignende. Og indse, at alle af, der vil i sidste ende koges ned til dig at fortælle verden hvad din server IP-adresse er. Og så disse DNS servere faktisk passe underretning af resten af ​​verden. Så alle en DNS-server har, kort sagt, inde af dets hukommelse er ligesom svarer til en Google-regneark eller et Excel-regneark med mindst to søjler, hvoraf den ene har navne, ligesom harvard.edu, og yale.edu og google.com. Og den anden kolonne har den tilsvarende IP-adresse eller IP adresser. Og vi kan faktisk se dette. Så på min Mac-- og du kan gøre dette på Windows-computere som well-- hvis jeg åbner en terminal vindue her, ganske som den i CD50 IDE, de fleste computere har en kommando kaldet nslookup, navneserver ser op. Og hvis jeg skriver noget i lignende yale.edu og tryk Enter, hvad Jeg skal se, om mit netværk samarbejder som det gjorde for flere tests før klassen began-- lad os prøve google.com. Selvfølgelig nu intet virker. Det er godt. Okay, stå ved et øjeblik. nslookup google.com. Nå, lad os se, om faktiske internet-- nr. Det er, hvad der skete. Oh my god, okay. Wi-Fi brød. Hey, vil gerne vide, hvad min IP-adresse er? Okay. YaleSecure. Dette er, hvordan du foretager fejlfinding ting som datamatiker. Vi vender Wi-Fi fra. OK. Og faktisk, SCAZ, gør du noget imod logge os i den sikre en? Ellers flere prøver are-- OK, tak du Yale-- eller er ved at bryde. Jeg ønsker at gå på YaleSecure. Åh, og måske vi vil være OK. Måske er vi tilbage. Og det er sådan, som en computer videnskabsmand fastsætte en computer. [Applaus] Okay. Så hvor jeg var inden for denne såkaldt terminalvindue, og hvis jeg nslookup yale.edu, der vi gå. Så jeg kommer tilbage først IP-adressen på DNS-serveren, som min laptop bruger. Så i tillæg til en DHCP-server, vi talte om for et øjeblik siden fortæller min laptop hvad min IP adresse er, at DHCP-server også fortæller mig, hvad DNS-server til at bruge. Ellers ville jeg have til manuelt at skrive denne i. Men det er ikke alt, interessant. Hvad jeg bekymrer sig om, er, at dette er den IP-adressen på Yale hjemmeside tilsyneladende. Så i virkeligheden, lad os prøve dette. Lad mig gå op i en browser og gå til http: //, og så, at IP-adresse, og tryk Enter. Og lad os se. Det er sådan du ellers kan besøge Yale hjemmesider. Nu er det ikke alle, der mindeværdig. Ligesom, før Frosh sandsynligvis ikke vil at huske denne særlige adresse hvis fortalt at besøge der efter et besøg. Men det synes at arbejde. Og så DNS ​​egentlig bare tillader os at har langt flere menneskelige venlige adresser. Men de har ikke nødvendigvis bare give ét svar. I virkeligheden, når du er en virkelig store tech virksomhed, du sandsynligvis ønsker at har masser af servere. Og selv dette er vildledende. Så Yale sandsynligvis ikke har bare en webserver. Google sandsynligvis ikke har kun 10 eller deromkring webservere. Google især sandsynligvis har tusindvis af web-servere rundt om i verden, der kan reagere på anmodninger fra folk som os. Men de bruger også en teknologi kaldet load balancing, som lang historie kort, har kun få enheder i verden at sprede belastningen over flere servere. Så det er lidt ligesom et edderkoppespind, hvis vil du afsender anmodningerne. Men for nu, alle, der er interessant for dag er, at et domænenavn ligesom google.com selv kan har flere IP-adresser som. Men hvordan gør alle vores data faktisk komme frem og tilbage så i sidste ende? Tja, det viser sig, at der er disse ting kaldet routere på internettet. Og hvad er en router til omfang, at du kender allerede? Og jeg har brugt ordet et par gange i forbindelse med et hjem, men i enkle vendinger, hvad betyder en router gøre? Giv mig bare et gæt baseret på dens navn? PUBLIKUM: Så en vej eller en sti? DAVID J. MALAN: Så det er en vej eller en sti. Så en rute er en vej eller sti, absolut. Og en router, så en enhed, faktisk ruter oplysninger ville flytte data mellem punkt A og B. Og så i fact-- og det er måske, når du google skildringer af routere på verdensmarkedet, får alt, hvad du er teatralsk marketing diagrammer. Og så dette er slags af de mest repræsentativ én jeg kunne finde der så mildt interessant. Hver af disse punkter eller glimt af håb rundt om i verden udgør en router. Og hver af dem har en linje mellem en anden router. Fordi ja, der er tusinder, sandsynligvis millioner af routere omkring verden, hvoraf nogle er i vore hjem og på vores campusser, men en masse af som er ejet af store selskaber og er forbundet med hinanden, således at hvis jeg ønsker at sende nogle data herfra på Yale hjem til Cambridge, Yale sandsynligvis ikke har et enkelt kabel, sikkert, gå direkte til Harvard. Og Yale har ikke et enkelt kabel går til MIT eller til Stanford, eller til Berkeley, eller til Google, eller en række destinationer. Snarere, Yale og Harvard, og alle andre på internettet har en eller flere routere forbundet til det, måske i periferien af ​​campus. Så når mine data vil at forlade Yales campus, det går til, at nærmeste router, som vist ved et af disse punkter. Og så er router tal ud af, om at sende det på denne måde, eller den måde, eller denne måde, eller baseret på denne måde i en anden tabel i hukommelsen, en anden Excel-fil eller Google regneark, som i en kolonne siger, hvis din IP-adresse starter med nummer et, gå på denne måde. Hvis din IP-adresse starter med en nummer to, går den vej. Og så du kan bryde det ned numerisk at have routeren sende data alle hvilket måde. Og vi kan slags se det så godt. Lad os gå videre ind i denne terminal vinduet igen, og lad mig gå videre og spore ruten til, lad os sige, www.mit.edu, hvilket er et par hundrede miles væk. Det var virkelig sgu hurtig. Så hvad skete der? Så på bare syv trin, og på bare fire millisekunder, Jeg sendte data over internettet herfra på Yale til MIT. Hver af disse rækker, kan du måske gætte repræsenterer nu hvad? PUBLIKUM: En router. DAVID J. MALAN: En router. Så ja, det ser ud som om der er omkring syv eller deromkring routere, eller seks routere i mellem mig fysisk i Yale lov skole her og MIT hjemmeside derovre. Og hvad vi kan lære af dette er som follows-- og lad mig rense det op. Jeg har tænkt mig at køres igen den med en kommando line argument -q 1 til bare sige, bare give mig en forespørgsel. Som standard spor rute gør tre. Og det er derfor, vi så bundter af numre. Jeg ønsker at se færre tal bare for at holde produktionen renere. Og lad os se hvad der sker. Så uanset årsagen, nogen på Yale tanke det ville være sjovt at kalde det dit standard router arubacentral, som er på VLAN eller virtuelt LAN, virtuelle lokalområde netværk 30-- så du sandsynligvis have mindst 29 others-- router.net.yale.internal. Og .internal her er lidt af en falsk topdomæne beregnet til at blive brugt lige på campus. Og mærke den tilsvarende IP-adresse af denne router, hvor det er her på campus, er 172.28.204.129. Og det tog 36 millisekunder at gå fra her til der. Sjov historie. Vi vil komme tilbage til om et øjeblik. Men nu er den anden router-- til som arubacentral tilsyneladende har en slags fysisk tilslutning mest likely-- menneskene ikke gider at navngive den. Yale mennesker ikke gider at navngive det, fordi det er inde i dit netværk det forekommer. Og så er det bare har en IP-adresse. Men så en tredje router her på Yale netværk det er nok lidt længere væk stadig kaldes cen10g uanset der er asr.net.yale.internal. Og det også har en IP-adresse. Nu hvorfor er disse tal slags svingende? 2.9, 1.4, 36? Routere få optaget. Og de får overbelastet og bakkes op. Der er tusindvis af mennesker på denne campus ved hjælp af internettet lige nu. Der er hundrede mennesker i denne værelse ved hjælp af internettet lige nu. Og så hvad der sker, er, at routerne kan få overbelastet. Og så disse tider måske svinge en lille smule. Så det er derfor, de ikke nødvendigvis stige ligefrem. Men tingene bliver slags interessant i trin fire. Tilsyneladende mellem Yale og trin fire er en anden hop. Og hvor er routeren i trin fire sandsynligvis? PUBLIKUM: [uhørligt] DAVID J. MALAN: JFK måske, måske i lufthavnen. Men uanset årsagen, systemadministratorer, så nørder, der kører servere til år har navngivet routere efter den nærmeste lufthavn kode. Så JFK formentlig betyder det er bare et eller andet sted i New York, måske i Manhattan eller en af ​​de bydele. nyc2 betegner formentlig anden router, der er et eller andet sted i New York. Jeg ved ikke helt, hvor rækken seks er her, router nummer seks. quest.net en stor internetudbyder, internetudbyder, der giver internet-forbindelse til store steder som Yale og andre. Og så er denne sidste, det ser gerne, at MIT ikke engang har deres egen hjemmeside i Cambridge nødvendigvis, men de har outsourcet deres hjemmeside, eller i det mindste de fysiske servere, til et selskab kaldet Akamai. Og Akamai faktisk helt ned vejen fra MIT i Cambridge det viser sig. Men indse også, at selv troede du kommer til at www.mit.edu, Vi kunne virkelig blive sendt overalt i verden. Og lad os se et eller andet sted andre steder i verden. Lad mig gå videre og rydde denne skærm og i stedet spore ruten, bare én gang, så forespørge en, for at www.cnn.co.jp, den japanske hjemmeside til CNN, at nyhedsside. Og hvis jeg ramte Indtast nu, lad os se hvad der sker. Vi er igen starter ved arubacentral. Vi derefter gå til navnløse router, et par mere. Så det tog 12 humle komme til Japan dette tidspunkt. Og lad os se, hvad vi kan indsamle. Så samme hop, hop samme. Lidt anderledes nu. Denne ens interessant. Så jeg gætte her, stamford1 er en få byer væk i Connecticut også. Disse routere i række seks og syv har ikke navne. Men det er lidt fantastisk. Så hvad synes at være mellem det routere i trin syv og otte? Og hvorfor siger du så meget? Ja? PUBLIKUM: Ocean. DAVID J. MALAN: Sandsynligvis et ocean. Vi ved, det er sandt lignende, intuitivt, ikke? Men vi kan bekræfte så meget form af slags empirisk hvorfor? Hvad har ændret sig mellem rækker syv og otte? Det tog en masse mere tid til at gå til uanset denne navnløse router syv er, formentlig sted i kontinentale USA, til trin otte, som er sandsynligvis et eller andet sted i Japan baseret på domænenavnet .jp der. Og så dem yderligere hundred noget millisekunder eller 90 eller deromkring millisekunder resultatet af vores data går over en temmelig stor mængde vand. Nu nysgerrigt, ser det ud til, at det måske at kabel går over hele USA. Hvis vi rent faktisk kommer i løbet af vestkysten for at komme til Japan, det er form for den lange vej hvis vi går den anden vej. Så det er ikke helt klart hvad der foregår fysisk. Men det faktum, at hver ekstra hop faktisk tog markant længere end hver anden, det er temmelig god bekræftelse på, at CNN Japansk webserver er sandsynligvis faktisk i Japan. Og det er helt sikkert længere væk end MIT har været. Og det er værd at bemærke også, dine data er ikke nødvendigvis kommer til at rejse kortest mulige afstand. Faktisk, hvis du spiller rundt med spor rute derhjemme bare plukke tilfældige websites, du måske opleve, at bare at sende en e-mail eller at besøge et websted det er her i New Haven, undertiden dine data måske først tage en omvej, gå ned til DC, og så komme op igen. Og det er netop på grund af de dynamiske routing beslutninger at disse computere gør. Nu bare for sjov, produktionen team trimmet en af ​​disse videoer for os at bare være lidt mere kortfattet. Men for at give os en hurtig fornemmelse her-- og vi kan forlade lysene on-- som til hvor meget kabelføring er faktisk transporterer alle vores data. [VIDEO PLAYBACK] [Musik spiller] [END AFSPIL] DAVID J. MALAN: Alle netværk videoer have køligt klingende musik tilsyneladende. Så det er for at få bare en følelse af, hvor meget har stået på under hætten. Men lad os se på et lidt lavere niveau nu på, hvad data er faktisk gennemkører disse linjer, og endda gå trådløst i et rum som dette. Så det viser sig, når du anmoder om en webside, eller send en e-mail, eller modtage en webside, eller en e-mail eller en Gchat besked eller en Facebook-besked, eller lignende, som er ikke bare én stor luns af bits flyder trådløst gennem luft eller elektronisk på en wire. Snarere, denne anmodning eller reaktion er generelt chunked op i separate stykker. Så med andre ord, når du har en anmode om at få en anden computer, eller du får tilbage et svar fra en anden computer-- Ligesom Antag, for eksempel, hvis unfamiliar-- som alt for mange mennesker synes at være disse days-- hvis uvant med denne-- ikke dette fellow-- denne fyr. Så formoder, det er et budskab, Jeg ønsker at sende til en person i ryggen. Hvem i den meget tilbage gerne vil modtager et billede af Rick Astley i dag? OK, hvad er dit navn? PUBLIKUM: Cole. DAVID J. MALAN: Hvad er det? PUBLIKUM: Cole. DAVID J. MALAN: Holt? H-O? PUBLIKUM: C-O-L-E. David J. MALAN: C-O-L-E, Cole. Undskyld. C-O-L-E. Okay. Så hvis jeg ønsker at sende Cole denne billede her, du kender denne er lidt af et stort billede, ikke? Dette kunne være et par kilobyte, et par megabyte, især hvis det er høj opløsning. Og jeg har ikke rigtig lyst til at stoppe alle andre fra at bruge internettet lige mens jeg sender dette virkelig store, høj kvalitet billede Rick Astley i hele lokalet. Jeg vil gerne dine data til fortsat krydse netværket og Wi-Fi samt. Og så det gør sense-- og dette er genindvindingsværdien elektronisk, ikke så meget i den virkelige verden. Faktisk er det kommer til at have flere betydninger, hvis du tager min lyd ud. Så hvis jeg rive det i halvdelen som denne her, det nu kan rejse internet mere effektivt, fordi det er et mindre stykke. Så med lavere sandsynlighed er det at gå til at kollidere med en andens trafik på internettet. Og så hvad din computer faktisk gør når du ønsker at sende en besked til Cole er det klumper en besked som dette i mindre stykker, fragmenter så at sige. Og så sætter dem inde i, hvad vi vil kalde en slags virtuelle kuverter. Så jeg har fire papirkonvolutter her. Og jeg har pre-nummereret dem, en, to, tre og fire. Og hvad jeg har tænkt mig at gøre på forsiden af dette, ligesom en normal mailing, er jeg har tænkt mig at sætte Cole navn der. Og derefter ved toppen, jeg kommer til at sætte mit navn der, David, således at den første pakke Jeg sender derude på internettet ser lidt noget lignende dette, de fremtrædende karakteristika af dem er, at det har en at tage fat, en fra adresse, og også en række, så at der forhåbentlig er tilstrækkelige oplysninger til Cole at rekonstruere denne meddelelse. Så lad mig gøre det samme her, den samme her, og det samme her, skrive sit navn i Feltet på dem alle. Og så lad os gå videre og sætte disse billeder inde. Så her er en pakke der er klar til at gå. Her er en anden pakke der er klar til at gå. Her er et tredje pakke der er klar til at gå. Og her er en fjerde pakke, der er klar til at gå. Og nu, hvad der er interessant ved hvordan internettet i virkeligheden værker er, at selvom jeg har fået fire pakker, som alle er bestemt til samme placering, de er ikke nødvendigvis kommer til at krydse den samme rute. Og så selvom jeg måske aflevere disse pakker ud til den nærmeste router lad os sige, hvis du gerne vil sende dem alle hvilket måde, lad os se hvad der rent faktisk sker, målet med som er at få dem i sidste ende til Cole. Og ja, de er allerede ikke nødvendigvis tage samme retning. Og det er fint. Dette er lidt akavet og Oprah stil i dag. Og lad mig nu bevidst tage en tilbage. Og nu Cole, hvis du gerne vil samle det så godt du kan. Selvfølgelig kan vi alle gætte, hvad konklusionen her kommer til at være. Du kommer til at have 3/4 af Rick Astley på blot et øjeblik. Og hvad er dog det implikation af dette? Du ønsker at prøve at holde det op? Vi har et kamera pegede på dig, hvis du gerne vil at posere med Rick Astley herovre. Der vi går. Dejligt. Men du synes at mangle et fragment af Rick Astley. Så det viser sig, at internettet er ofte drevet af ikke kun IP, men i virkeligheden vi hørte på den meget begyndelsen af ​​foredrag i denne video-- og du har sikkert set dette akronym mere often-- hvad der virkelig er den protokol, du har tendens til at høre om? PUBLIKUM: TCP / IP. DAVID J. MALAN: TCP / IP, som er blot en kombination af to protokoller, en kaldet IP. Hvilket igen, er bare det sæt konventioner via hvilke vi løse hver computer på internettet. Og derefter TCP, som tjener et andet formål. TCP er en protokol, som du anvender typisk i forbindelse med IP, at der blandt andet ting, garanterer levering. Faktisk TCP er den protokol, ville bemærke, at en af ​​pakkerne tilsyneladende ikke komme til Cole, fordi han synes at mangle nummer fire ud af fire. Og så hvad TCP, en protokol gør, er det fortæller Cole, hey Cole, hvis du modtager kun tre ud af fire pakker, fortælle mig, hvilken en du mangler det væsentlige, og derefter mit formål i livet bør være at videresende det. Og så hvis jeg også, det afsender, bruger TCP, Jeg skulle derefter oprette en ny packet-- det ikke rynkede én her-- gensende netop dette stykke det, så der i sidste ende Cole en komplet souvenir, hvis intet andet. Men så i sidste ende de data, faktisk får til dets korrekte destination. Men desværre, skriver Cole navn på forsiden ikke er tilstrækkelig i sig selv. Og virkelig, ville jeg ikke skrive Cole navn, men sandsynligvis sin IP-adresse på konvolutten. Og jeg vil ikke skrive David. Jeg ville skrive min IP-adresse på konvolutten således at computerne kan faktisk kommunikerer frem og tilbage. Men det viser sig, at computere kan gøre måde mere end tjene op billeder af Rick Astley. De kan også sende og modtage e-mails, chat-beskeder. De kan gøre ting som filoverførsler, og et antal andre værktøjer du bruger på internettet, servere kan gøre disse dage. Og bare fordi en virksomhed, eller en skole, eller en person, ønsker at have en web-server, samt en e-mail-server, og en chat-server, betyder ikke, du har brug for tre computere. Du kan have bare en computer, der kører flere tjenester, så at sige. Og så når Cole modtager et budskab som det, hvordan gør sin computer, om at viser, at billedet i sin browser, eller i Gchat, eller i Facebook Messenger, eller i et vilkårligt antal andre værktøjer? Så det viser sig også på at som konvolut er ekstra stykke information kendt som et portnummer. Og et portnummer er bare et nummer ja, men det entydigt identificerer ikke computeren, men tjenesten. Og der er klaser af disse. Så det viser sig, at i verden, mennesker har besluttet på et par sådan konventioner, hvoraf nogle er disse. Så der er noget, der hedder File Transfer Protocol. Det er temmelig dateret. Det er helt usikker. En masse mennesker stadig bruge det. Og det bruger portnummer 21. Med andre ord, hvis afsendelse af en fil via FTP, konvolutten ville have ikke blot afsender og modtager IP-adresse, Det ville også have nummer 21, så at den modtagende computer kender åh, dette er en fil, ikke en e-mail eller en chatbesked. 25 er SMTP. Hvor mange af jer nogensinde har brugt SMTP? Forkert. Næsten alle af jer har. Hvis du nogensinde har brugt e-mail, du har brugt SMTP, Simple Mail Transfer Protocol, som er blot en fancy måde at sige, det er den form for computer eller tjeneste der sender dine e-mail-udgående. Og hvis du nogensinde har set akronymer som POP eller IMAP, og der er et par andre, de er til at modtage e-mail, typisk. Det betyder blot, det er en anden tjeneste. Det er software, at nogen skrev, at sender til eller lytter på et bestemt portnummer så at det ikke forveksle emails med en anden type af data. Nu internettet er HTTP, som er nummer 80, og også port 443. Og i virkeligheden, selv om Vi mennesker heldigvis behøver ikke at gøre dette, helst du besøger en hjemmeside som http://www.yale.edu, browseren er bare at være slags nyttige i, at det er antage, at du ønsker numerisk port 80. Vi ved allerede, at DNS kan regne ud hvad IP-adressen er www.yale.edu. Men computeren er lige kommer til at udlede, at man ønsker port 80, fordi du bruger Chrome eller IE, eller en anden browser. Men jeg kunne teknisk set gøre kolon 80. Og så kan jeg udtrykkeligt fortælle min browser, sende en pakke eller mere af oplysninger til www.yale.edu anmoder om dagens hjemmeside. Men specifikt, adresse det til Yale IP på port 80 så jeg faktisk får sikkerhedskopiere Yale webserver. Nu er det straks forsvinder fordi browsere bare beslutte, at vi ikke nødt til at forvirre mennesker ved at have endnu mere mystiske oplysninger som kolon 80. Og helt ærligt, browsere Ligesom Chrome ikke engang vise dig HTTP længere eller tyktarmen eller skråstreg skråstreg, eller skråstreg, i en vis forstand, fordi de forsøger at gøre tingene enklere for brugerne. I en anden forstand, er det bare lidt af en brugeroplevelse thing-- lad os slippe af med nogle af rod. Men det skjuler nogle af disse underliggende detaljer. Og faktisk ingen af ​​os formentlig nogensinde skrive http længere. Du skal bare skrive noget ligesom www.harvard.edu. Og igen, Chrome udleder som du ønsker HTTP. Men der er andre protokoller at vi helt sikkert kunne bruge. Så givet alt dette, hvis du nu sortere af sætte på den såkaldte engineering hat, hvordan tingene kaldet firewalls arbejde? Så er du sandsynligvis generelt bekendt med firewall, ikke så meget i fysisk forstand. Så tilbage i dag, og stadig den dag i dag, hvis du har fået ligesom striben indkøbscentre til eksempel, der har en masse butikker, generelt vægge i mellem enkelte butikker eller butikker er firewalls i den forstand, at de har særlig isolering således at hvis en brand bryder ud i en butik, det gør ikke nødvendigvis spredes til butikken ved siden af. Computeren verden har også firewalls at gøre noget anderledes. Hvad gør en ildkugle gøre? Ja? PUBLIKUM: Dybest set de afskåret forbindelsen hvis de støder på noget som for eksempel, de har antal id udsagn. Og hvis der sker noget, de skære forbindelsen. Ligesom hvis denne ondsindede angreb [Uhørligt] din computer, eller-- DAVID J. MALAN: OK godt. Ja, og i virkeligheden er du endda gå lidt længere i at beskrive noget, der kunne være kaldet en intrusion detection system, eller IDS for korte, hvor du faktisk har regler defineret. Og hvis du begynder at se mistænkelig adfærd, du forsøger at sætte en stopper for det. Og en firewall, helt ærligt, på et netværk niveau, er endnu dummere og enklere end det, generelt. Og der er forskellige typer af firewalls i verden. Men dem, der opererer på det niveau, vi taler today-- IP og TCP-- arbejde endnu mere ligefrem. For eksempel, hvis du var Yale-system administratorer eller Harvard systemet administratorer, eller nogle store Bror på nogle selskab, og du ønskede at forhindre alle dine studerende eller alle dine medarbejdere fra at gå til facebook.com, alt hvad du skal gøre er at sikre, at alle deres netværkstrafik, først og fremmest, går gennem en særlig anordning. Lad os kalde det en firewall. Og det er fint, fordi du kan gøre din router det samme som en firewall, hvis du lægger den samme form for software på samme maskine. Så hvis alle dine elever eller medarbejdere trafik går gennem dette centrale firewall, hvor ville vi blokere folk fra at gå til facebook.com, for eksempel? Hvad ville systemet administrator skal gøre? Nogen andre? Lad os prøve at gå rundt. PUBLIKUM: [uhørligt] DAVID J. MALAN: Sig det igen? PUBLIKUM: Den skal bare få fanget inde i systemet. Så bare sætte Facebook i 127.0.0-- DAVID J. MALAN: Åh, interessant. Så du kan faktisk derefter hacke din DNS-systemet. Dette er faktisk en måde, du kunne gøre dette hvorved enhver tid en Yale-studerende trækker op www.facebook.com alle af os her i dag på campus bruger Yale DNS-server, fordi Yale DHCP server gav os denne adresse. Så ja, kunne du slags bryde ting eller pause konvention ved blot at sige, ja, facebook.com adresse er falsk, er 1.2.3.4, som er faktisk ikke legitimt. Eller måske er det 278. hvad der var i tv-showet en øjeblik siden, så ingen af ​​os kan faktisk besøge facebook.com. Så formoder Yale gjorde det. Antag Yale ønskede at holde dig ud af facebook.com. Og derfor, de ændrede DNS-indstillinger at give dig en falsk IP tage fat på facebook.com. Hvordan du reagerer? Teknisk set not-- åh, nu alle ønsker at deltage. OK, ja. PUBLIKUM: Du skal bare skrive i den faktiske IP-adresse Facebook. DAVID J. MALAN: OK, godt. Så vi kunne bare skrive i den faktiske IP-adresse Facebook, meget som jeg gjorde med Yale hjemmeside. Og hvis Facebook-serveren er konfigureret at støtte, at hvis det rent faktisk fungerer. Det er en mindre smerte i halsen, fordi vi nu skal huske nogle tilfældige 32-bit værdi, men det kunne arbejde. Hvad kunne du gøre? Ja. PUBLIKUM: Du kan ændre disse indstillinger [uhørligt]. DAVID J. MALAN: Ja, kunne du selv ændre dine DNS-indstillinger. Så i virkeligheden er det faktisk temmelig nyttigt, helt ærligt, hvis du er i en lufthavn, eller hvis du er i en cafe, eller noget, der har skællet internet hvorved undertiden DNS-serveren bare standser arbejdet. Så selv jeg lejlighedsvis gøre dette, ikke for skadelig, jeg ønsker at bruge Facebook formål, men virkelig fordi jeg synes at have et netværk forbindelse, men intet virker. Og så en af ​​de første ting, jeg try-- og du kan gøre dette på Windows too-- men på min Mac, hvis jeg går til Netværk. Og jeg vælger min Wi-Fi-forbindelse. Og jeg går til Avanceret. Og jeg går til DNS. Det er de tre IP-adresser, Yale er at give mig for tre DNS-servere. Formålet er så for mig at prøve en en af ​​disse til at finde adresser. Men jeg kan tilsidesætte disse ved at gøre et plus. Og nogen ønsker at foreslå en DNS-server? PUBLIKUM: 8.8.8.8? DAVID J. MALAN: Åh, du er fantastisk. Ja, 8.8.8.8. Så Google, velsigne deres hjerter, købte IP-adressen 8.8.8.8, fordi det slags ligner Gs sandsynligvis, og det er nemt at huske. Men ja, nu har jeg konfigureret min computer til at bruge Googles DNS-server. Så nu hvis jeg går til yale.edu, det stadig gå på arbejde. Men jeg bruger ikke Yales DNS-servere længere. Og hvis jeg går til facebook.com, alle dem ser ups kommer til at gå gennem Google. Så på den ene side, jeg har behændigt omgået det lokale system administratorer blot ved forstå, hvordan netværk fungerer. Men jeg betaler en pris. Intet er gratis. Hvad har jeg netop givet op? Hvad har jeg netop givet op? Alle af jer kloge mennesker, der har brugt 8.8.8.8, fordi det er cool eller løser problemer, hvad har du lavet i al den tid? PUBLIKUM: Traveling længere? DAVID J. MALAN: Måske rejser længere, fordi Google er nok ikke helt så tæt som serveren ned ad gaden. Men mere worrisomely. Ja? PUBLIKUM: Så nu Google ved, hvor du skal hen. DAVID J. MALAN: Google ved bogstaveligt talt hvert websted, du besøger, fordi du er bogstaveligt talt spørge dem, hey Google, kan du oversætte yale.edu for mig? Eller hey Google, kan du oversætte denne hjemmeside adresse andet for mig til en IP-adresse. Og så they're-- jeg har ingen idé om, hvad du taler om. Og så de ved alt om dig. Så indse, at dette er en gratis service med et formål fra deres perspektiv samt. Men det kan helt sikkert få dig ud af et dilemma. Nu bare for at løse ét andet problem, der ofte kommer op blandt studerende, især når du rejser internationalt i visse lande som Kina, hvor der faktisk er en Great Firewall of China hvorved regeringen der blokerer ganske lidt trafik på forskellige niveauer. Du behøver ikke at bare afspærring af trafikken på det niveau, vi taler her, DNS eller på anden måde, du kan blokere det på andre niveauer. Og i virkeligheden, for blot at være klar, en firewall kan fungere endnu mere enkelt end blot har de systemadministratorer ændrer DNS-indstillinger. En firewall, en anordning i mellem os og resten af ​​verden, kunne bare blokere alle udgående anmodninger til IP-adressen for Facebook på port 80, eller IP-adressen til harvard.edu, eller IP-adressen på noget. Så en firewall kan se på din kuverter 'IP-adresser og endda havn numre, og hvis Yale ville, det kunne bare stoppe os alle fra selv længere ved hjælp af FTP, hvilket ville sandsynligvis være en god ting, fordi det er faktisk en usikker protokol. Yale kunne endda stoppe os fra besøger helhed af banen bare ved at blokere alle havn trafik på antallet 80 samt. Så der kan være en anden måde. Og der er endda mere avanceret måder. Men når du er på farten udlandet for eksempel, eller hvis du er i en internet-cafe, eller hvis du er overalt, hvor der er blokeringer eller trusler, hvad kan du gøre? Tja, hvis du går ned ad gaden til Starbucks eller du rejser i en lufthavn, generelt kan du bare hoppe på Wi-Fi ved at vælge lignende, JFK Wi-Fi i LaGuardia Wi-Fi, eller Logan Airport Wi-Fi, eller hvad ikke. Og det er ikke krypteret, ikke? Der er ingen hængelås ikon. Og du sandsynligvis ikke bedt for et brugernavn og en adgangskode. Du er bare bedt med nogle dum formular at sige lignende, jeg er enige om at bruge dette kun i 30 minutter, eller noget lignende. Men der er ingen kryptering mellem du og Starbucks Wi-Fi punkt, de ting med antennerne på væggen. Der er ingen kryptering mellem dig og lufthavnens Wi-Fi-signaler. Og så teknisk, at uhyggelig person, sidder et par pladser ned fra dig i Starbucks eller i lufthavnen kunne være, med den rigtige software, se alle dine trådløse trafik på hans eller hendes bærbare computer. Det er ikke så svært at sætte en bærbar computer i, hvad der er kaldes promiskuøs tilstand, der som navnet antyder, betyder, at du er slags løs med reglerne. Og det bare lytter ikke kun for trafik beregnet til det, men også for alle andre er trafik inden for rækkevidde. Og ved denne logik, kan det se alle de pakker af oplysninger du modtager. Og hvis disse pakker er ikke krypteret, du er at sætte dig selv i fare for dine e-mails, eller dine beskeder, eller noget andet at blive udsat for. Så selvom du ikke er i udlandet men du er bare i Starbucks, eller du er på nogle tilfældige persons Wi-Fi, der ikke er krypteret, en VPN er en god ting. Et VPN er et virtuelt privat netværk. Og det er en teknologi der tillader dig at have en krypteret, en kodet connection-- avanceret end Cæsar eller Vigenere-- mellem din bærbare computer, eller din telefon, eller dit skrivebord, og en server andetsteds, som en server på Yale campus. Og hvis du rejser abroad-- og i virkeligheden, du finde dette i hoteller hele tiden. Og især da håbefulde dataloger hvor du fyre kan, som nørder, ønsker at bruge andre end 80 havne, og bortset 443-- porte og faktisk til problemet sæt seks, vi kommer til at spille med flere TCP-porte bare ved choice-- en masse af hoteller og butikker, og netværk bare blokere den slags ting fordi de noget naivt, eller uvidenhed, bare tænk at ingen har brug for disse andre havne. Og så ved hjælp af en VPN kan du omgå den slags restriktioner, fordi det, en VPN gør, er det giver dig mulighed på Starbucks, eller i lufthavnen, eller hvor som helst i verden at forbinde encryptedly til yale.edu, til nogle server her på campus, og derefter tunnel, så at sige, alle dine trafik, uanset hvor du er gennem Yale, på hvilket tidspunkt det så går til det endelige bestemmelsessted. Men ved at kryptere det, du undgå enhver af disse former af filtre eller indførelse, der nogle lokale netværk har pålagt. Og plus, du har en langt mere robust forsvar mod utryg mennesker omkring dig, som måske være at forsøge at lytte med på din trafik. Der kan stadig være utryg folk her hjem på Yale se din trafik som det kommer ud af VPN, men mindst du har skubbet truslen længere væk. Og det er også her, en afvejning. Nu selvfølgelig, hvis du er i Kina eller endda i caféen, og du er tunnel alle din trafik gennem Yale, hvilken pris betaler vi måske? PUBLIKUM: Hastighed. DAVID J. MALAN: Hastighed, ikke? Der er nødt til at være nogle matematik eller nogle fanciness involveret i selve kryptering. Der kan være tusinder af miles afstand eller tusinder af miles af kabler mellem dig og Yale. Og det er virkelig dårlig, hvis du er i Kina for eksempel, og du ønsker at besøge en hjemmeside i Kina. Og så dine data vil USA, og derefter tilbage til Kina bare fordi du kryptere det gennem denne tunnel. Men det løser tekniske og arbejde problemer ens. Men det hele kan koges ned til disse meget enkle idéer. Og Harvard, for dem nysgerrige, har en her så godt, ved vpn.harvard.edu, der driver ligesom Yales. Så med alt det sagt, hvorfor er hele dette netværk nyttigt? Og hvad kan vi begynde at gøre med det? Nå, lad os gøre det nu mere reel. Dette er en forkortelse med som de fleste af os er formentlig super familiar-- HTTP-- som står for Hyper Text overførsel protokol. Og det betyder bare, det er sproget, protokollen at webbrowsere og webserver tale. P i HTTP er faktisk en protokol. Og en protokol er bare et sæt af konventioner. Vi har set IP-- internet protocol-- TCP-- transmission kontrol protocol-- og HTTP. Men hvad er denne dumme ting af en protokol? Det er bare et sæt af konventioner. Så hvis jeg slags komme ned her, og jeg ønsker at hilse på dig. Jeg ville sige hej, mit navn er David. PUBLIKUM: Luis. DAVID J. MALAN: Luis. Vi har denne dumme menneske konvention af rystende hænder her. Men det er en protokol, ikke? Jeg udvidet min hånd. Luis udvidet sin hånd. Vi gjorde dette. Og så færdig, færdig. Og det er præcis det samme ånd af en computer-protokol hvor der som i HTTP, hvad der sker, er dette. Hvis du er computeren på venstre her, og der er nogle web server der til højre. Og computeren til venstre ønsker at anmode om oplysninger fra den pågældende server. Det er lidt af et tovejs drift. Browseren på venstre beder om nogle web-side. Serveren på højre reagerer med nogle webside. Og vi vil se hvilken form dem tager på bare et øjeblik. Og det viser sig, at disse computers-- at browser og server, eller klient og server, så at sige. Meget gerne en restaurant, hvor de klient beder om noget, og serveren bringer ham eller hende something-- få er lidt af det operative ord. Bogstaveligt talt indersiden af ​​konvolut, min browser sender herfra til en web server er ordet get. Ligesom jeg ønsker at få dagens nyheder. Jeg ønsker at få min Facebook news feed, eller jeg ønsker at få nogle side fra serveren. Konkret er dette, hvad der er foregår inde i konvolutten. Så jeg, med Cole, hovedsagelig sendt Cole et svar. Hvis du forestiller dig, at Cole faktisk ønskede et billede af Rick Astley, han kunne have sendt mig en anmodning samme ånd til dette. Inde i hans kuvert til mig, hvor Jeg er nu spiller rollen som Google, ville være en anmodning om, at bogstaveligt talt siger, får, og derefter en fremadrettet slash-- og du har sikkert set skråstreger i URL'er før. Det betyder bare give mig standard side, standard Rick Astley billede i dette tilfælde. Og ved den måde, Cole taler sproget HTTP version 1.1 eller protokollen 1.1. Og det viser sig at der er en ældre version 1.0. Men computere tendens til at bruge 1.1. Den anden linje er en nyttig ting, vil vende tilbage til måske inden længe. Men det er bare en specifikation for mig, modtageren, at de ting jeg vil have er www.google.com. Fordi det er meget muligt, disse dage for snesevis, hundredvis af websites med forskellige domænenavne til alle bor på samme server. Det kommer ikke til at være sandt så meget i Googles tilfælde. Men i en mindre virksomheds tilfælde kunne absolut være. Så Cole er lige slags sætte i kuverten, ved den måde, når det når op din IP-adresse på port 80, bare være sikker på, at du ved Jeg vil www.google.com, ikke et andet vilkårligt website på samme server. Hvad jeg derefter reagere på Cole med, ved slutningen af ​​dagen, er et billede. Men oven på det billede indersiden af ​​konvolutten er faktisk noget tekst, hvor jeg siger, OK. Jeg taler HTTP version 1.1 også. 200. Hvilket er en statuskode, der de fleste af os har sikkert aldrig set, fordi det betyder OK. Og det er godt, fordi det betyder Jeg reagerer med succes til Cole anmodning. Hvilke tal har du sandsynligvis set på nettet, som ikke er OK? PUBLIKUM: 404. DAVID J. MALAN: 404-- fil ikke fundet. Så ja, hver gang du har set en af ​​dem irriterende filen ikke fundne fejl, fordi websiden er død, eller fordi du skrevet forkert en URL, der bare betyder at den lille kuvert, at din computer modtages fra serveren indeholdt en meddelelse HTTP 1.1, 404-- ikke fundet. At fil eller anmodningen du har lavet er ikke fundet. Desuden indersiden af ​​konvolutten typisk er denne linje, indholdstype. Nogle gange er det HTML, noget vi vil snart se. Nogle gange er det en JPEG. Nogle gange er det en GIF. Nogle gange er det en film fil, en lydfil, en række ting. Så indersiden af ​​kuverten er blot en lille hint om, hvad jeg modtager. Der er andre statuskoder også, nogle som vi vil udforske i P sæt seks, og du vil snubler på tværs i P sæt syv og / eller otte. Men nogle her, ligesom 404 vi har set. Forbidden, 403, betyder ligesom tilladelserne er forkerte, som om du ikke har slags konfigureret den korrekt. 301 og 302, vi sjældent ser visuelt. Men de betyder omdirigere. Hver gang du har gået til én URL og du har været magisk sendt et andet sted, det er fordi browseren har sendt tilbage en kuvert indeholdende antallet 301 eller 302, og den webadresse, det ønsker browseren til at gå til stedet. 500 er forfærdelig. Du vil se det inden længe, ​​formentlig i P sæt seks eller P sæt syv. Og det generelt betyder der er nogle fejl i din kode, fordi ja vi vil skrive kode, der reagerer på web anmodninger. Og du har lige fået nogle fejl i logik eller syntaks, og serveren ikke kan håndtere det. Så lad os se, hvordan vi nu kan udnytte og forstå disse anmodninger som følger. Hvis jeg går til, lad os sige, google.com. Lad mig gå til www.google.com. Og til demonstration skyld, lad os se, jeg har brug for at gå til Indstillinger her. Jeg har tænkt mig at gå til Søg Indstillinger. Og Google har i stigende grad irriterende funktioner, men nyttige funktioner. Så Google har denne ting ligesom instant resultater, hvor du begynder at skrive, og automatisk tingene begynder vises. Og det er alt fint og teknisk anvendelige, og vi vil forstå inden længe hvordan det virker. Men for nu, jeg vender off øjeblikkelige resultater, fordi jeg vil have min browser til slags arbejde gamle skole, så at jeg kan se, hvad der foregår. Så nu er jeg tilbage her. Og jeg ønsker at søge efter katte. Og læg mærke til jeg ser nogle forslag, nogle meget godartede forslag heldigvis. Og nu, hvis jeg ramte Enter, lad os se hvad der sker. Så der er nogle katte. Og den øverste hit er på Wikipedia. Men i dag bekymrer vi om teknologien heroppe. Så den webadresse, som jeg har blevet sendt, er det her. Og der er nogle ting, jeg ikke rigtig forstår. Så jeg har tænkt mig at gå videre, fordi Jeg slags vide, hvordan Google fungerer, og jeg har tænkt mig at destillere denne URL i sin enkleste form. Og nu vil jeg til at ramme Enter igen. Og det virker stadig. Jeg har en side med resultater alt om katte. Men bemærke enkelheden i min webadresse. Det viser sig, det er sådan meget af web værker. Internettet er bare en hel bundt af computere kører software, der tager input. Det er ikke få strengen stil input. Det er ikke kommandolinjen argumenter som vi er vant til. De tager input, disse web-servere, i form af URL'er ret ofte. Og enhver gang du har søgt efter noget, helst du har logget ind Facebook, hver gang du har gjort noget interaktivt med en webside, hvad du laver effektivt at indsende en formular, så at speak-- tekstbokse, afkrydsningsfelter, små cirkler, og whatnot, der sender oplysninger fra dig til serveren. Og det viser sig, at nettet serveren ved at se på den pågældende webadresse og parse det, ligesom se på det karakter for tegn på udkig efter noget interessant efter et spørgsmålstegn. Fordi efter et spørgsmålstegn, det viser sig, vil komme en flok af de vigtigste værdi par. Jeg mener key = værdi. Og så hvis der er multiple-- måske et og-tegn, en anden nøgle = værdi, tegnet, key = værdi. Så vi har slags set denne idé før hvor noget har en værdi. Det er bare et nyt format her. Og jeg ved bare, efter sædvane, Google bruger q for forespørgsel. Og derefter, hvis jeg ønsker at søge efter hunde, jeg kan manuelt søge efter hunde som. Og så er jeg åbenbart få nogle søgeresultater involverer hunde. Så der synes at være interessant. Og ja, hvad der foregår under emhætten er dette. Lad mig gøre det. Dette er en-- lad os se. Lad mig gå tilbage over her for blot et øjeblik. Vi vil se, at der er andre måder at indsende oplysninger. Så hvis jeg logger ind på Facebook, eller Gmail eller andre populære websted, det synes slags dårligt, hvis hvad jeg har skrevet i søgefeltet ender i min webadresse, i min browsers adresselinje. Hvorfor? Hvorfor er det mildt bekymrende? Ja? PUBLIKUM: Indtast en adgangskode. DAVID J. MALAN: Ja. Så hvad nu hvis, hvad jeg har indtastet er min adgangskode? Jeg slags vil ikke have det så åbenlyst synlig i min browsers adresselinje. Én, fordi min irriterende roommate tendens til at se mig over skulderen, og han eller hun kan nu se, selvom Det var kugler, når jeg skriver det i, små cirkler. Nu er det i min adresselinjen. Desuden, hvad er sandt om ting du har tendens til at skrive i adresselinjen. PUBLIKUM: [uhørligt] DAVID J. MALAN: Hvad er det? PUBLIKUM: Det bliver sendt ud. DAVID J. MALAN: Det bliver sendt ud. Og også, det bliver husket. Fordi næste gang du skriver ting deroppe, ofte autocompletes og det husker, hvad du har skrevet før. Og så er der denne veritable historie at din søskende, eller din værelseskammerat, eller hvem kan gå igennem til temmelig meget se hver hjemmeside du har besøgt, fordi det er logget på, at adresselinjen. Desuden formoder at du vil uploade et billede på Facebook. Hvordan i alverden er du kommer til at sætte et foto i en URL? Jamen det viser sig, kan du gøre det i nogle måde, men det er bestemt ikke indlysende. Og så er der denne anden måde sende oplysninger i en konvolut, ikke via en GET, men via noget, der hedder POST. Og i teorien, det ser stort set den samme. I stedet for ordet GET, siger vi POST, og derefter den samme slags format. For eksempel, er dette et skærmbillede af, hvad det kunne se ud, hvis jeg prøver logning ind i Facebook, som sender mig til en fil kaldet login.php, som faktisk er stadig i dag navngivet som sådan. Det er det samme filnavn Mark gav det mange år siden. Det er det program, han skrev i PHP via som brugerne kan logge ind på hjemmesiden. Men du skal sende nogle yderligere input. Og i stedet for det at gå efter fil navn, som det gjorde før med cats-- q = cats-- det kan gå lavere i anmodningen, dybere inde i konvolutten hvis du vil, hvor ingen kan se det, og hvor det ikke ender i brugerens browser bar, og derfor ikke huske for folk at snuse omkring. Og så her min e-mail-adresse og min falske kodeord faktisk gå. Og hvis Facebook bruger ikke HTTP, men HTTPS, Alt dette vil blive krypteret, scrambled, ala Cæsar eller Vigenere, men mere fancily så ingen kan faktisk se denne anmodning. Og så ja, hver gang du har en URL, der starter med HTTPS, det betyder bare, det er krypteret. Men i slutningen af ​​dagen, hvad der er faktisk inde af disse kuverter? Dette var super lavt niveau. Og heldigvis, vi er ikke vil nødvendigvis at gå så lavt niveau hver gang for at begynde at skrive interessant software. Vi kan begynde at tage ideerne om ugen én gennem fem, antage, at der nu denne infrastruktur, lader os skrive software der driver på nettet, og det vil give os mulighed for denne kommende uge til at starte ser på noget, der hedder HTML. Det er de ting, der er endnu dybere inde i konvolutten, men det er de ting, vi er kommer til at begynde at skrive. Og det er de ting mere interessant, er vi vil skrive programmer, begynder at generere automatisk så vores hjemmesider er ikke svært kodet, men tage input og producere output. Dette er måske den enkleste web side, du kan gøre i verden. Jeg kan faktisk åbne op noget dumt ligesom TextEdit på min Mac, som netop giver mig en simpel tekst vindue som dette. PC-brugere har Notepad.ext, som er meget ens i ånd. Og jeg kan bogstaveligt skrive ud denne-- DOCTYPE HTML, der ser lidt kryptisk. Men vi vil vende tilbage til. HTML, med disse underlig vinklede beslag og skråstreger, inderside som nu jeg har tænkt mig at sige her kommer lederen af ​​min webside. Inde i det, jeg lige kender, og du vil snart vide, at jeg kan sætte titlen på min webside. Og derefter under leder af websiden er vil gå til den såkaldte krop af websiden. Og jeg er bare indrykning bare ligesom i C til slags holde tingene pænt læsbar stilistisk. Og nu jeg har tænkt mig at gemme denne som en fil på mit skrivebord, kaldet hello.html. Og jeg har tænkt mig at fortælle det ja, bruger HTML. Du må ikke ændre det til .txt, selv selvom alt dette er en tekstfil, ligesom et C-program skrevet med en teksteditor. Selvom det ikke er i CS50 IDE på øjeblik, bare her på min Mac. Og hvis jeg nu gå til mit skrivebord, vil du se hello.html. Hvis jeg dobbeltklikke på det, det vil åbne Chrome. Og selvom denne fil sker for at leve på mit skrivebord, det er måske den enkleste webside jeg kunne gøre. Bemærk, at titlen på det Fanen vejen op toppen er hej verden. Liget af den webside er faktisk Hello world. Og alt jeg har gjort for at få til dette punkt, er at gennemføre, eller er skrive et nyt sprog, kaldet HTML. Det er ikke et programmeringssprog sprog som C. Der er ikke vil være betingelser, og loops, og funktioner. Det er et kodesprog, hvor Hvis du bare fortælle den modtagende program, hvad du vil gøre. Det betyder Hey browser, her kommer en HTML-side. Hey browser, her kommer lederen af ​​min side. Hey browser, her kommer kroppen af ​​min side. Hey browser, det er det for kroppen. Det er det for HTML-siden. Og med disse enkle definitioner alene, vil vi snart se, at man, vi kan repræsentere dette som et træ. Men mere om det senere. Så dette vil alle interconnect til vores seneste datastrukturer. To, vil vi indføre denne dumme vittighed. Dette er et virkeligt tatovering, denne fyr havde på hans hals. Det er nok sjovt den første uge eller to, og derefter, måske ikke så meget. Men HTML, og selv internettet side Jeg har lige lavet, super sind numbingly disappointing-- bare at sige hej verden i sort tekst på hvid baggrund. Sikkert kan vi gøre meget bedre. Og vi vil gøre det ved at indføre andet sprog kaldet CSS. Også dette ikke en programmering language-- ingen løkker og betingelser, eller efter sløjfer, men virkelig, bare syntaks hvorved vi kan sige, gør denne tekst stort. Gøre denne tekst lille. Lige justere det. Venstre justere det. Gør det pink. Gør det lilla. Gør det blå. Eller har et vilkårligt antal andre visuelle effekter. Og så vil vi se, hvordan man starter stilisering websider, så de ser på en måde, tættere på, hvad vi ønsker. Og endelig har vi faktisk ødelagt måske meget af tv og film for dig. Jeg troede, vi ville ende her med vores sidste sekunder på en endelig klip, der viser dig hvordan hacking på internettet fungerer. Hvis vi kunne dæmpe lyser en sidste gang. [VIDEO PLAYBACK] -Ingen Måde. Jeg bliver hacket. -Okorsky? -No-- Nej, det er store. De har allerede brændt igennem NCIS offentlige firewall. Tja, isolere node og dump dem på den anden side af routeren. -Jeg Forsøger. Det bevæger sig for hurtigt. -OH, Det er ikke godt. De bruger vores forbindelse [Uhørligt] denne database. Sever det. -Jeg Kan ikke. Det er et punkt angreb. Han eller hun er kun går efter min maskine. -Det Er ikke mulig. Der er DOD niveau minen kryptering. Det ville tage måneder at get-- -Hey, Hvad er det? En video game? -Nej Tony, vi får hacket. -Hvis De får i Abby computer, hele NCIS netværket er næste. -Jeg Kan ikke stoppe ham. Gør noget McGee. -Jeg Har aldrig set kode som denne. -OH. Hvor er det? Abby? -Jeg Gjorde ikke noget. Jeg troede, du gjorde. -Nej. -Jeg gjorde. [END AFSPIL] DAVID J. MALAN: Den bedste del er to mennesker skrive på tastaturet på samme tid. Så det er det for CS50. Vi vil holde sig til kontortid. Og vi vil se dig næste gang. [Musik spiller - "Seinfeld TEMA"] Det er CS50. Jeg ønsker ikke at være en pirat. SPEAKER 2: Yarr David. Det er et fint dublet du være iført. Masser af forliget i dette pust.