[MUSIC SPILLE] DAVID J. MALAN: Så jeg bare ønsket å lindre til. Jeg ville ekko nøyaktig hva Scaz sa om institusjonell hukommelse. CS50 har eksistert i rundt 20 år på Harvard. Og realiteten er, fra de eldre på ned, det er årlig forsikring at freshmen, de sophomores, og juniorer og også de eldre tar CS50, at du ender opp med å gjøre fine. Realiteten er, studenter ikke mislykkes CS50. Faktisk, i sjeldne tilfeller hvor vi har hatt Es eller Fs, det har virkelig vært på grunn av formildende omstendigheter, enten det er medisinsk eller personlig. Ds er utrolig uvanlig i tillegg. Og jeg kan si komfortabelt, selv om vi vanligvis ikke avsløre statistikk, men gitt at det ikke er noen institusjonell hukommelse her overhodet, et flertall av elevene i CS50 ender opp med å få en rekke karakterer. En betydelig del ender opp havne i B serien også. Så selv om du kanskje være likhetstegn i tankene dine treere med 60% og dermed Ds, eller Cs, eller lignende, det virkelig ikke stille opp med virkeligheten. Faktisk menes hva vi si ved begynnelsen av perioden at så mange studenter i CS50, både i Cambridge og her i New Haven, har aldri tatt en CS kurs før. Og hva faktisk til slutt teller er hvor du ender opp i uke 12 i forhold til deg selv i uke null. Nå har vi flere sporer i kurset som du know-- mindre komfortabel, mer komfortabel, et sted i mellom. Og ja, når du får statistikk på denne ukens quiz, ikke mist motet om, spesielt hvis du føler at du er rundt gjennomsnittet eller under den midlere eller median, spesielt siden vi ikke nødvendigvis ta alle de demografiske hensyn til mid-semester med gradering statistikk. Med andre ord, vi vet statistisk hvert år at studenter som er mindre komfortable, gjøre litt verre på quiz. Og studenter som er mer komfortabel gjøre litt bedre på quiz. Men per dette løftet i pensum og også i den første uken av forelesninger, vi tar alt dette i betraktning. Faktisk, på år ende, hva vi ender opp med å gjøre er å normalisere alle poeng over seksjoner, både i Cambridge og nå her i New Haven, noe som betyr at det tas hensyn de ulike stiler, den uensartede hardhet, de forskjellige sorter personligheter som den enkelte TAs har her og i Cambridge slik at du ikke sitter ved en ulempe selv om du bare tilfeldigvis har hatt en TF eller en TA som har vært litt tøffere på deg i dine tanker. To, tar vi hensyn til komfort nivå og faktiske bakgrunnen, eller mangel disse, når du tar quiz score i betraktning. Så de to er tatt i. Og ved slutten av dagen, fordi det er alltid tilfelle at en elev endte opp i en mindre behagelig seksjon når han eller hun egentlig tilhørte i en mellom eller vice versa, alt er så utrolig individualisert. Faktisk, vil du få irritert på oss på slutten av perioden når vi er sent sende inn dine karakterer fordi med Scaz, og Jason, og Andy, og jeg, og teamet vil ha gjort i Cambridge er bokstavelig talt har hundrevis av e-poster og frem med all hundre av kursene TAS, her og i Cambridge, spør dem hva de tenker på alle sine studenter basert på et utkast av karakterene. Og alt der etter er utrolig individualisert. Så i den grad vi blir kjent med deg i kontortiden, seksjoner og mer, alt av det også er tatt hensyn til. Så selv om vi har en tendens til å bruke denne fem punkts skala, please, løsrive deg fra antagelsen om at et tre er faktisk en 60%. Den er ment å være god. Og undervisningsassistenter belastes ved semesterstart å prøve å holde score i toere og treere, og firere varierer slik at vi faktisk har plass til å vokse. Og vi har faktisk en målestokk som Vi kan gi deg nyttig tilbakemelding på hvordan du gjør og hvordan du utvikler. Så vennligst ta det til hjertet. Er det noen spørsmål jeg kan hjelpe adresse eller bekymringer jeg kan hjelpe lindre? Eller løfter jeg kan prøve å holde? Nei? OK. Greit. Så med det sagt, dette er CS50. Dette er starten på uken seks her i New Haven. La oss begynne med en kort dimming av lysene å sette scenen for dagens innhold. [VIDEO PLAYBACK] [MUSIC SPILLE] -Han Kom med et budskap. Med en protokoll all sin egen. Han kom til en verden av kule brannmurer, uncaring rutere, og farer langt verre at døden. Han er rask, han er sterk, han er TCP / IP. Og han har adressen din. Warriors av nettet. [END PLAYBACK] DAVID J. MALAN: All right. Dette er CS50. Dette er starten på uken seks. Og dette er starten på vår utseende på internett og web-programmering. Og, kanskje mest spennende, i dag markerer overgangen for oss fra vår kommandolinje verden av C til nettet basert verden av PHP og HTML, og CSS, og SQL, og Javascript, og så mye mer som er på horisonten. Men først, har det kommet til vår oppmerksomhet i å vandre over campus at det er en viss bad her i New Haven kalt Harvard rom, som er litt grått her. Men ja, noen gikk til den tiden og bekostning av etsing i Harvard rom på dette her rommet. Takk for det. Jeg kan ikke si at vi har en analog i Cambridge ennå, men jeg tror vi har et lite prosjekt for oss nå når vi går tilbake. Så takk for det. Så en rask se tilbake på der vi slapp forrige uke og hvor du skal dette komme uke med problemer satt fem. Så i oppgavesettet fem, vil du være utfordret til å gjennomføre en stavekontroll. Og for å gjøre det, vil du være levert en ganske stor tekst fil med som 140.000 engelske ord. Og du vil bli utfordret til å bestemme på en datastruktur som du ønsker å laste ned alle disse ordene i minnet, og inn i RAM, og deretter implementere noen funksjoner, hvorav den ene kommer til å være kontrollere. Der når passerte et argument, et ord, funksjon sjekken rett og slett er nødt til å si sant eller usant, dette er et ord i ordlisten. Men du kommer til å ha noen utforming skjønn og utfordringer når det gjelder å iverksette dette. I det enkleste implementering du kunne sikkert implementere en stavekontroll i den underliggende ordboken med hva slags datastruktur? Du trenger bare å lagre en hel haug med strenger i minnet? Hva er farten for å svare fra uke to kanskje? PUBLIKUM: Array. DAVID J. MALAN: Du kan bruke en matrise. Og det er ikke så ille. Men du trenger ikke nødvendigvis vite på forhånd hvor stor av en matrise du kommer til å trenge, hvis du ikke gjør det vet filen nødvendigvis på forhånd. Så du er nødt til å bruke litt lureri som malloc, som vi begynte å bruke. Eller vi kan ta opp som gjelder ved bruk av hva andre datastruktur som er vært liksom en marginal forbedring på en matrise? PUBLIKUM: Lenket liste. DAVID J. MALAN: Som en koblet liste, hvor vi får noen dynamikk. Men det er litt mer regning. Vi har pekere til å opprettholde. Og du ennå ikke har kodet dette opp, men det er definitivt å være litt mer kompleksitet enn bare å bruke hakeparenteser og hoppe rundt en matrise. Men en rekke løper tid, Hvis du søker etter et ord, kanskje logge av n. Men igjen, kan det være en liten ikke-triviell til å bygge opp den oppstillingen ikke å vite størrelsen på forhånd. En lenket liste skjønt, hvis du bare lagre en haug med strenger i en lenket liste, hva er din øvre grense på kjøretiden kommer til å være å søke for eller sjekke et ord på den listen? PUBLIKUM: n. DAVID J. MALAN: Yeah, big O av n eller lineær fordi i verste fall ordet er som en Z ord helt på slutten. Og på grunn av en lenket liste, fordi disse pilene som standard, i en enkeltvis lenket liste, bare gå fra en retning til den andre, du kan ikke hoppe rundt. Du må følge dem alle. Så vi foreslo i slutten av forrige uke, uke fem, at det finnes bedre måter. Og faktisk, den hellige gral ville virkelig være konstant tid der når du vil å slå opp et ord, du få en umiddelbar svar uansett hvor mange ord er allerede i ordlisten. Dette er en kunstners gjengivelse av hva du kan kalle en hash table. Og en hash table er slags en fin amalgam av en array-- trukket vertikalt her, bare because-- og deretter en knyttet list-- trekke horisontalt her. Og hash tabell kan være implementert i bunter av måter. Dette utdraget fra en lærebok skjer å bruke disse folks fødselsdatoer som de midler som det er å avgjøre hvor du skal sette noens navn. Så dette er en ordbok hvis du vil av navnene. Og for å påskynde sette Navnene i denne datastrukturen, de ser på, tilsynelatende, disse folks fødsel datoer med hensyn til en måned. Så det er 1 til 31. Og glemme februar og hjørne tilfeller sånn. Og hvis bursdagen din er januar 1, eller 1. februar eller 1. desember du kommer til å ende opp på den aller første kjeden opp toppen. Hvis din fødselsdato er som den 25. i en måned, du kommer til å ende opp på bøtte nummer 25. Og hvis det er allerede noen der i noen av disse steder, hvilken du begynner å gjøre med disse knyttes listene sy dem sammen slik at du kan ha en vilkårlig antall personer, eller noe, på det stedet. Så har du en slags blanding av konstant tid for hashing. Og til hasj noe betyr å tar som input som en person, eller hans eller hennes navn, eller hans eller hennes fødsel dato, og deretter bestemme om noen utgang basert på det, som å se på deres bursdag og sender ut en gjennom 31. Så kan dere ha litt av lineær tid, men i virkeligheten, og som i Når det gjelder problemet satt fem, Vi kommer ikke til å være arbeider i P satt five så mye om asymptotic løping tid, som den teoretiske treghet med en algoritme som kan kjøre. Vi kommer til å bry seg om det faktiske antall sekunder og den faktiske mengden minne, det faktiske antall byte minne du bruker. Så ærlig, å ha en stor kjede av som en million mennesker er ganske jævla treg hvis du søker etter et navn i en liste over størrelse millioner. Men hva hvis du deler den listen opp i 31 deler? Søke 1/31 av det super lang liste, i virkeligheten, er sikkert kommer til å være raskere. Asymptotisk, er det det samme. Du bare dele med en konstant faktor. Og minner om at vi kaste disse tingene unna. Men i virkeligheten, det kommer å være 31 ganger raskere. Og det er det vi kommer til å begynner å utnytte i P satt fem. Så P satt five altfor også foreslår at du vurderer litt mer sofistikert datastruktur kalt en trie. Og en trie er bare en tre som datastruktur. Men i stedet for å ha små sirkler eller rektangler når vi holder tegning for noder, er det faktisk har hele arrays for sine noder. Og selv om dette er en litt abstrakt her for å se på, Zamyla i P sett walk gjennom vil lede deg gjennom nærmere på dette. Dette er en datastruktur at heller smart kan ha hver node være en matrise av størrelse 26, A til og med Z eller null gjennom 25. Og når du ønsker å sette inn en persons nevne i denne datastruktur eller finne ham eller henne, hva du gjør, hvis navn er som Maxwell, M-A-X-W-E-L-L, du først se på M. Og så hoppe til den tilsvarende M plassering i den første rekken. Du kan deretter hoppe til A, den første sted i den neste rekke, følge pilene. Så X, deretter W, deretter E, deretter L, deretter L, og så kanskje noen spesiell slutten karakter, noen sentinel som sier et ord stopper her. Og hva er fint om dette-- og husk at bildet her, Legg merke til hvordan kantene hver gruppe er avskåret. Det er bare fordi denne tingen ville være massiv og forferdelige å se på på skjermen. Så det er hentet. Hva er fint om denne tilnærmingen er at hvis det er en million navn allerede i dette datastruktur, hvor mange skritt tar det meg å sette Maxwell? M-A-X-W-E-L-L-- som syv-ish fremgangsmåten for å sette inn eller lete etter Maxwell. Anta at det finnes en trillion navnene i denne datastruktur. Hvor mange skritt tar det meg å se etter Maxwell? M-A-X- fortsatt syv. Og der ligger såkalt konstant tid. Hvis vi antar at ord er sikkert avgrenset av 20 tegn, eller 46 tegn, eller noen rimelig liten heltall, da er det effektivt en konstant. Og så innsetting og søking en trie er super rask. Selvfølgelig, vi aldri få noe gratis. Og selv om du sannsynligvis har ikke prøvd seg på P satt five ennå, hvilken pris er vi sannsynligvis betaler for å få det større effektivitet gang lurt? PUBLIKUM: Minne. DAVID J. MALAN: Memory, ikke sant? Jeg mener, vi har ikke trukket hele bildet her. Dette utdraget fra læreboka har ikke tegnet alle matriser. Det er en enorm mengde minne og bare null pekere som ikke blir brukt. Så det er en trade off. Og det vil bli overlatt til deg i P satt five å bestemme seg for hvilken vei du vil gå. Nå er denne ideen om hashing, som en til side, er faktisk super utbredt. Så til hasj en verdi midler, ganske Enkelt å ta noe som input og produsere en utgang. Så en hash funksjon er bare en algoritme. Og generelt, en hash funksjoner formål i livet er å ta noe som input og produsere et tall som utgang, som nummer én gjennom 31 eller A til Z, null gjennom 25. Så det tar en kompleks utgang og krymper det ned til noe som er litt mer nyttig og håndterbar. Og så viser det seg i en svært populær funksjon at sikkerheten verden og den menneskelige verdens blitt brukt i årevis kalles SHA1. Dette er en ganske fancy matematisk formel som gjør egentlig det. Du tar en virkelig stor del av nuller og ones-- som kan være en megabyte lang, en gigabyte long-- og det krymper det ned til bare noen få biter, et par biter, slik at du har en rekke lignende en gjennom 31, eller A til Z. Men i virkeligheten er det en liten større enn bare A til Z. Dessverre, vi er på cusp av hva noen lekent kalt SHAppening hvorved verden er i ferd med å ende i trolig noen måneder tid fordi forskere, bare denne siste uken, publisert en rapport som i strid med hva sikkerhetsforskere har trodd i noen tid, ved bare tilbringer om, hva var det, Jeg tror det var $ 175,000-- mye penger, men ikke utenfor rekkevidde spesielt slemme skurker, eller spesielt dårlig countries-- $ 175,000 kunne kjøpe deg en masse leid server plass i skyen. Og vi vil komme tilbake til skyen før lenge. Men det betyr bare leie server plass på som Microsofts servere, eller Googles eller Amazon, eller som hvor du kan betale ved minutt å bruke andres datamaskiner. Og det viser seg hvis du kan betale noen andre til å låne sine datamaskiner og kjøre kode som du har skrevet på det og bruke ganske fancy matematikk, kan du i hovedsak tall ut hvordan noens hash funksjonen er arbeider, og gitt sin utgang dekonstruere hva dens inngang er. Og for dagens formål, nok det å si, dette er dårlig. Fordi SHA1 og hash funksjoner som det er super vanligvis brukes i sikkerhetsprogrammer, krypterte tilkoblinger på nettet, banktransaksjoner, cellular kryptering for mobiltelefoner og lignende. Og så hver gang noen finner en måte å reversere ingeniør en av disse teknologiene eller bryte den, kan dårlige ting skje. Nå er verden allerede visste dette. Dette var påregnelig. Og verden har siden flyttet fra SHA1 til SHA256, som er bare en fancy måte sier de bruker større biter. Og faktisk, selv CS50 egen nettsiden oppgradert i fjor to-- ikke at vi står overfor alt dette mange trusler prøver å få på PDF-filer og whatnot-- men CS50 hjemmeside bruker større hash-funksjon, noe som betyr at vi vil være trygge. Så alle dine PDF-filer vil være trygg, men ikke nødvendigvis penger eller noe særlig privat eller personlig å bruke. Sp sjekke ut denne nettadressen hvis du hadde som noen ytterligere detaljer. Så problemet satt fem er faktisk i horisonten. Quiz man er førstkommende onsdag. Men dra nytte av kontoret timer, både i kveld og i morgen. Og også dra nytte av kontortiden, hvis du er tilgjengelig, rett etter dette. De ansatte og jeg vil holde rundt og gjøre mer uformell Q & A i tillegg til i kveld. Og la meg sterkt merke seg her, for de av oss her i New Haven-- så det er absolutt per Scaz s bemerkninger følte, jeg er sikker på, som en bit av en oppoverbakke kamp. Og ved omdømme, hvis du ikke allerede har lært eller hørt fra noen venner på Harvard, vet her er noen ny institusjonell hukommelse. P satt five slags type tendens til å være det vanskeligste i CS50, eller de mest utfordrende for de fleste studenter. Men hva det betyr er at vi er nesten på toppen av åsen. Og jeg virkelig mener dette. Det er den mest utfordrende, men det er også den mest givende i at i motsetning til de fleste alle andre innledende informatikk kurs i USA som vi vet om, de fleste studenter ikke fullfører en intro Kurset har allerede implementert ting som trær, og prøver, og hash tabeller og lignende. Og så jeg håper, og Vi håper at du er har en enorm følelse av tilfredshet selv hvis uke eller to via hvilke du kommer til at tilfredshet føles litt som dette. Men la meg forsikre, vi bare har fire P sett igjen. Så liksom at toppen er i sikte. På den andre siden av det, stole på oss, det er bare bølgende åser og skyer. Og skal vi si, valper er på den andre siden. Så er det bare å henge der litt lenger. Jeg mener, ja vi begynner å overgang inn i verden av web-programmering, du vil finne at ting become-- Dette er søt faktisk. OK, vi skal legge denne nettadressen senere. Du finner også at vi er nå liksom et platå hvor alt er faktisk fortsatt sofistikert og utfordrende ved design, men du er ikke kommer til å føle at vi er stadig går opp denne bakken. Så ta litt trøst i det. Så uten videre, la oss starte for å gjøre dette markedet overgangen i semesteret til en verden av nettet, og virkelig verden som alle av oss er mer kjent. Vi har fått Internett-enheter i våre lommer, på pultene våre, i våre ryggsekker og lignende. Hvordan gjør alt dette arbeidet? Og hvordan kan vi begynne å skrive kode som ikke er super uforståelige og i noen blinkende tekst teksten at ingen av dine venner eller familie noen gang kommer til å ønske å samhandle med, men noe kan du sette på sine telefoner, eller på sine nettlesere, eller på noen enheter med som de samhandler. Så her er noens hjem. Og inne i dette huset er et par bærbare datamaskiner, et par gamle skolen desktop datamaskiner, noe som kalles en ruter eller hub i midten, og deretter en slags kabelmodem eller DSL-modem. Og så er det internett, generelt tegnes som en sky der oppe i himmelen. Så dette bildet, selv om litt slags datert, fanger absolutt hva de fleste av har du sannsynligvis i deres hjem, eller effektivt hva dere alle har i dorm rom eller leiligheter, eller lignende. Så hva som faktisk skjer når du prøver å bruke internett i dag? Så hver datamaskin på internett, viser det seg, må ha en unik adresse, mye som vi i den virkelige verden behovet en postadresse, som 51 Prospect Street, New Haven, Connecticut, eller 33 Oxford Street, Cambridge, Massachusetts. Så gjør datamaskiner på Internett trenger en måte entydig adressering seg selv. Det er slik at når en datamaskin ønsker å snakke med en annen, det kan sende en melding og informere mottakeren til hvem det bør sende svaret tilbake. Så det gjør bare slags intuitiv følelse kanskje at alt har en Adressen noe slag. Men hvordan får du en adresse? Vel, hvis du får her på campus, eller du går hjem og du slår på bærbar eller stasjonær datamaskin, og enten koble den til eller koble til Wi-Fi, det viser seg at det er en spesiell server på de fleste nettverk kalt en DHCP-server. Ikke virkelig betyr noe hva dette står for, men det er Dynamic Host Configuration protokollen, som er like en fancy måte å si, dette er en datamaskin som enten Yale har, eller Harvard har, eller Comcast har, eller Verizon har, eller din bedrift har, hvis formål i livet, når den hører noen nylig lagt til nettverket, er å si her, bruke denne adressen. Så vi mennesker ikke trenger å vanskelig kode i våre datamaskiner hva vår unike adressen er. Vi slår bare det på, åpner lokk, og en eller annen måte denne serveren på det lokale nettverket forteller bare meg som adressen min er 51 Prospect Street, eller 33 Oxford Street, eller lignende. Nå er det ikke kommer til å være så detaljert som det. Heller hva jeg kommer til å få en numerisk adresse som kalles en IP-adresse. IP betyr internettprotokoll. Og oddsen er på denne tiden i livet ditt, har du sannsynligvis hørt eller sett ordet IP, eller generelt kastet den rundt kanskje. Men faktisk er det ganske rett frem en ting. En IP-adresse er bare en punktumdesimaltallet, som betyr at det er noe dot noe dot noe dot noe. Og hver av disse somethings skjer å være et tall mellom 0 og 255. Så basert på fem pluss uker CS50, hvis disse tallene hver rekkevidde fra 0 til 255, hvor mange biter er hvert av disse talltegn? PUBLIKUM: Eight. DAVID J. MALAN: Det må være åtte. Så totalt, hvor mange bits er en IP-adresse? PUBLIKUM: 32. DAVID J. MALAN: So 32. 8 pluss 8 pluss 8 pluss 8 er 32. Hvor mange totale IP-adresser kan det være i verden? PUBLIKUM: 4 milliarder. DAVID J. MALAN: Så omtrent fire milliarder fordi det er to 32 makt. Og hvis du ikke kan liksom Grok som i tankene dine, bare vet at 32-biters verdier kan være så stor som 4 milliarder hvis det er alle positive verdier. Så det betyr at det er 4 milliarder mulige IP-adresser i verden. Og morsom historie, er typen vi for å kjøre ut av dem. Og faktisk er det et stort problem i at verden også så dette problemet kommer, men har ikke nødvendigvis svart på det på den mest rask måte. Og ja, når du har ferdig CS50 og startet betalende oppmerksomhet i tech verden, vil du se dette er svært vanlig tematisk. For eksempel, hvis vi går virkelig gamle skolen i dag, Y2K. Det var egentlig ikke en overraskelse. Som alle visste for 1000 år at det var-- mer enn tusen years-- som som ble til slutt kommer til å skje. Og ennå, vi gir svar på det veldig mye i siste øyeblikk. Og det skjer igjen. Så i dag skal vi snakke om IP versjon 4. Men vet at verden er endelig å få rundt for å oppgradere til noe som heter IPv6, som i stedet for 32-bit adresser, uses-- alle ønsker å ta en gjetning, hvor mange biter? PUBLIKUM: 64? DAVID J. MALAN: God gjetning, men nei. Vi endelig prøver å komme i forkant av kurven. PUBLIKUM: 128. DAVID J. MALAN: 128, som er et jævlig stort antall IP-adresser, fordi det er som ganger 2, ganger 2, ganger to, en rekke ganger toere opp fra 4 milliarder. Så hvis nysgjerrig. Det viser out-- og jeg bare googlet dette å finne denne out-- Yale datamaskiner, her på Yale, har en tendens til å begynne med disse numbers-- 130,132 dot noe, og 128,36 dot noe. Men det er sikkert Unntakene over hele linja avhengig av hvilken avdeling og bygningen og campus du er på. Harvard tendens til å ha 140,247, eller 128,103. Og generelt dette er unyttig informasjon, men det er noe du kanskje merke til nå. Når du starter poking rundt innstillingene på datamaskinene, du kan begynne å legge merke til disse typer mønstre før lenge. Men når du er hjemme og har en Apple AirPort, eller en Linksys-enhet, eller en D-Link, eller hva det er dine foreldre eller søsken installert i huset, godt hva har du sannsynligvis er det som kalles en privat IP-adresse. Og disse var faktisk en nice, midlertidig løsning på problemet med løpe kort på IP-adresser. Og hva du kan gjøre med hjemmenettverk, typically-- og ærlig, selv Yale og Harvard er begynt å gjøre dette i forskjellige areas-- er du kan gi en hel haug med datamaskiner én IP-adresse så lenge du setter en spesiell enhet foran dem, noe som kalles en ruter, eller det kan kalles en proxy eller en rekke andre ting. Men en enhet som som har en IP-adresse. Og deretter bak enhet, i en bygning, i et hus eller en leilighet, kan være hvilket som helst antall datamaskiner, som alle ha en IP-adresse som starter med en av disse tallene her. Og så lenge at datamaskinen vet hvordan å konvertere offentlige adresse til den private adresse, alt kan sortere på arbeidet som forventet. Men det motsatte av dette er at hvis du er hjemme, og du har et søsken, og dere begge er besøke noen nettside, at nettstedet ikke vet om det er deg eller søsken besøke nettsiden, fordi man ser ut til å være den samme person fordi alle dine data går gjennom denne ruteren eller det sentrale punkt. Men nok om disse lavere nivå detaljer. La oss ta en titt på hvordan IP-adresser noen ganger kommer opp kanskje i media og hvordan vi kan nå begynne å ødelegge, Oppriktig, enda flere programmer for deg. Hvis vi kunne dimme lys for noen få sekunder. [VIDEO PLAYBACK] -Det Er en 32-bit på IPP fire adresse. -IP ES internet-- -Private Nettverk, Tamia private nettverk. Hun er så utrolig. -Kom På Charlie. DAVID J. MALAN: Det er et speil IP-adresse. Hun la oss se hvilke hun gjør i sanntid. [END PLAYBACK] DAVID J. MALAN: OK. Så noen problemer med dette. Så en, hva vi ser på her på skjermen er en kode skrevet på en språk kalt Objective-C, som er en slags etterfølger til C-språk som vi gjør. Dette har absolutt ingenting å gjøre med programmering. Faktisk så godt jeg kan fortelle, dette er et tegneprogram at noen lastet ned fra internett eller annen måte involverer fargestifter. Kanskje mindre skjerpende er at denne IP-adressen, gyldig eller ugyldig? PUBLIKUM: Ugyldig. DAVID J. MALAN: ugyldige, fordi 275 er selvfølgelig ikke mellom 0 og 255. Som også er trolig OK skjønt, fordi du ikke ønsker å haug med gale mennesker som er som å pause TV på deres TiVos og deretter gå inn IP for å se hvis det er faktisk noe der. Slik at man er litt mindre skjerpende. Men innser at også er liksom alle rundt oss. Så selvfølgelig, ingen av oss noen gang egentlig skriver numeriske adresser inn i våre nettlesere. Det ville være en slags dårlig ting hvis Google, for å besøke Google, du måtte gå til 123.46.57.89. Og hele verden hadde å bare huske det. Og ærlig talt, har typen vi av sett dette problemet før. Tilbake i dag når folk ikke har mobiltelefoner og kontaktlister, og selskapene faktisk still-- faktisk, Jeg antar selskapene fortsatt har 800 tall og like-- men du generelt se tall annonseres som 1-800-SAMLE, C-O-L-L-E-C-T. Fordi ingen kan virkelig huske, når du ser en annonse på en buss eller billboard, hva noen nummer er, men de kan trolig, med høyere sannsynlighet, husker et ord. Så vi vedtatt det samme slags system i verden av internett, hvorved det er en domenenavnsystemet slik at vi mennesker kan skriver google.com, facebook.com, yale.edu, harvard.edu, og la datamaskiner figuren ut hva den tilsvarende IP Adressen er for et gitt navn. Og måten du gjør dette i virkelige verden er det for $ 10 i året, kanskje $ 50 i året, kan du kjøpe et domene navn, eller egentlig leie et domenenavn. Og så den som du betaler å leie dette domenenavnet, du forteller dem som i verden vet hva din IP-adresse er. Og vi vil ikke gå inn i disse opplysninger, men mange av dere måtte ønske, for endelig prosjekter, å faktisk melde seg for din egen web hosting selskap, enten gratis eller for et par dollar per måned. Noen av dere kanskje ønsker å kjøpe, for et par dollar, ditt eget domenenavn, bare for moro skyld, eller for å starte en bedrift eller et personlig område eller lignende. Og innse at alle av det til slutt vil koke ned til deg å fortelle verden hva serverens IP-adresse er. Og så disse DNS servere faktisk ta vare for å informere resten av verden. Så alt en DNS-server har, kort sagt, inne av minnet er som tilsvarer et Google-regneark eller et Excel-regneark med minst to kolonner, hvorav den ene har navn, som harvard.edu, og yale.edu, og google.com. Og den andre kolonnen har den tilsvarende IP-adresse eller IP adresser. Og vi kan faktisk se dette. Så på min Mac-- og du kan gjøre dette på Windows-maskiner samt-- hvis jeg åpner opp et terminalvindu her, ganske lik den i CD50 IDE, de fleste datamaskiner har en kommando som heter nslookup, navnetjener se opp. Og hvis jeg skriver noe i lignende yale.edu og trykk Enter, hva Jeg skal se om mitt nettverk samarbeider som det gjorde for flere tester før klassen began-- la oss prøve google.com. Selvfølgelig nå ingenting fungerer. Det er flott. All right, stå ved et øyeblikk. nslookup google.com. Vel, la oss se om Selve internet-- no. Det er hva som skjedde. Oh my god, all right. Wi-Fi blakk. Hei, ønsker å vite hva min IP-adresse er? Greit. YaleSecure. Dette er hvordan du feilsøker ting som en datamaskin vitenskapsmann. Vi slår på Wi-Fi off. OK. Og faktisk, Scaz, gjør du tankene logge oss sikre en? Ellers flere tester are-- OK, takk du Yale-- eller er i ferd med å bryte. Jeg ønsker å gå på YaleSecure. Oh, og kanskje vi skal være OK. Kanskje vi er tilbake. Og det er slik, som en datamaskin vitenskapsmann fikse en datamaskin. [APPLAUSE] Greit. Så hvor jeg var innenfor dette såkalt terminal vinduet og hvis jeg nslookup yale.edu, der vi går. Så jeg kommer tilbake først IP-adressen DNS-serveren som min laptop bruker. Så i tillegg til en DHCP-server som vi snakket om et øyeblikk siden forteller min laptop hva min IP Adressen er, som DHCP-server forteller meg også hva DNS server som skal brukes. Ellers ville jeg ha å manuelt skrive dette i. Men det er ikke alt det interessante. Det jeg bryr meg om er at dette er den IP-adressen til Yale hjemmeside tilsynelatende. Så faktisk, la oss prøve dette. La meg gå opp i en nettleser og gå til http: //, og deretter som IP-adresse, og trykk Enter. Og la oss se. Det er hvordan annet du kan besøke Yale nettsider. Nå er det ikke alle som minneverdig. Liker, pre-frosh sannsynligvis ikke kommer å huske denne adressen hvis beskjed om å gå dit etter å ha besøkt. Men det ser ut til å fungere. Og så DNS ​​egentlig bare tillater oss å har mye mer menneskevennlige adresser. Men de gjør ikke nødvendigvis bare gi ett svar. Faktisk, når du er en virkelig store tech selskap, du sannsynligvis vil har mange servere. Og selv dette er misvisende. Så Yale gjør sannsynligvis ikke har bare ett web server. Google sannsynligvis ikke har bare 10 eller så webservere. Google spesielt sannsynligvis har tusenvis av webservere rundt om i verden som kan svare på forespørsler fra folk som oss. Men de bruker også en teknologi som kalles lastbalansering, som lang historie kort, har bare noen få enheter i verden spre lasten over flere servere. Så det er litt som et edderkoppnett hvis du vil utsendelse av forespørsler. Men for nå, er alt som interessant for i dag er at et domenenavn som google.com selv kan har flere IP-adresser sånn. Men hvordan gjør alle våre data faktisk få frem og tilbake deretter til slutt? Vel, det viser seg at det er disse ting kalt rutere på internett. Og hva er en ruter til grad at du allerede vet? Og jeg har brukt ordet et par ganger i sammenheng med et hjem, men på en enkel måte, hva gjør en trådløs ruter? Gi meg bare en gjetning basert på navnet sitt? PUBLIKUM: Så en vei eller en sti? DAVID J. MALAN: So det er en vei eller en sti. Så en rute er en vei eller bane, absolutt. Og en ruter, slik at en enhet som faktisk ruter informasjon, ville flytte data mellom punktene A og B. Og så i fact-- og Dette er kanskje når du google skildringer av rutere på verden, får alt du er cheesy markedsføring diagrammer. Og så dette er liksom den mest representative jeg kunne finne som så mildt interessant. Hver av disse prikkene eller glimter av håp rundt om i verden representerer en ruter. Og hver av dem har en linje mellom noen andre ruter. Fordi ja, det er tusenvis, sannsynligvis millioner av rutere rundt verden, hvorav noen er i våre hjem og på våre studiesteder, men mye av som er eid av store selskaper og er innbyrdes forbundet slik at hvis jeg ønsker å sende noen data fra her på Yale hjem til Cambridge, Yale sannsynligvis har ikke en eneste kabel, absolutt, gå direkte til Harvard. Og Yale har ikke en enkelt kabel går til MIT, eller til Stanford, eller til Berkeley, eller til Google, eller en rekke destinasjoner. Snarere, Yale og Harvard, og alle andre på internett har en eller flere rutere koblet til det, kanskje på periferien av campus. Slik at når min data vil å forlate Yale campus, det går til det nærmeste router, som vist ved en av disse punkter. Og da at ruteren tall ut om å sende det på denne måten, eller på denne måten, eller denne måten, eller på denne måten basert på en annen tabell i minnet, en annen Excel-fil eller Google regneark som i en kolonne sier, hvis din IP-adresse starter med nummer én, gå på denne måten. Hvis IP-adressen starter med en nummer to, gå den veien. Og så kan du bryte det ned numerisk å ha ruteren sende data hver hvilken vei. Og vi kan slags se denne også. La oss gå videre inn i denne terminalen vinduet igjen, og la meg gå videre og spore ruten til, la oss si, www.mit.edu, som er et par hundre miles unna. Det var egentlig jævla fort. Så hva skjedde? Så i løpet av bare sju trinn, og på bare fire millisekunder, Jeg sendte data over Internett herfra ved Yale til MIT. Hver av disse radene, kan du kanskje gjette representerer hva nå? PUBLIKUM: En ruter. DAVID J. MALAN: En ruter. Så ja, det ser ut som om det er om sju eller så rutere, eller seks rutere i mellom meg fysisk i Yale lov skole her og MIT hjemmeside der borte. Og hva vi kan fange opp fra dette er som follows-- og la meg rydde opp. Jeg kommer til å kjøre den med en kommando linje argument av -q en å bare si, bare gi meg ett søk. Som standard, gjør spor rute tre. Og det er derfor vi så bunter av tall. Jeg vil se færre tall bare for å holde utgangs renere. Og la oss se hva som skjer. Så uansett grunn, noen på Yale tanken det ville være morsomt å kalle det din Standard router arubacentral, som er på vlan eller virtuelle LAN, virtuelle lokal nettverk 30-- så du sannsynligvis ha minst 29 others-- router.net.yale.internal. Og .internal her er en slags falsk toppdomene ment å brukes bare på campus. Og legg merke til den tilsvarende IP-adressen av at router, uansett hvor den er her på campus, er 172.28.204.129. Og det tok 36 millisekunder å gå fra her til der. Morsom historie. Vi vil komme tilbake til det i et øyeblikk. Men nå den nest router-- til som arubacentral tilsynelatende har noen form for fysisk tilkobling mest likely-- menneskene ikke bry navngi den. Yale mennesker ikke bry navngi det fordi det er innsiden av nettverket det virker. Og slik er det bare har en IP-adresse. Men så en tredje ruter her på Yale nettverk det er nok litt lenger unna fortsatt kalles cen10g uansett som er asr.net.yale.internal. Og det også har en IP-adresse. Nå hvorfor er disse tallene slags varierende? 2,9, 1,4, 36? Rutere bli opptatt. Og de får overbelastet og støttet opp. Det finnes tusenvis av mennesker på denne campus bruke internett akkurat nå. Det finnes hundre mennesker i denne rom ved hjelp av internett akkurat nå. Og så det som skjer er at rutere kan bli overbelastet. Og så de gangene kanskje svinge litt. Så det er derfor de ikke nødvendigvis øke oversiktlig. Men ting blir slags interessant i trinn fire. Tilsynelatende mellom Yale og trinn fire er en annen hop. Og hvor er ruteren i trinn fire sannsynligvis? PUBLIKUM: [uhørbart] DAVID J. MALAN: JFK kanskje, kanskje på flyplassen. Men uansett grunn, systemadministratorer, så geeks som kjører servere for år har kalt rutere etter nærmeste flyplass kode. Så JFK betyr trolig det er bare et sted i New York, kanskje i Manhattan eller en av de bydelene. nyc2 betegner, formodentlig, en annen ruter som er et sted i New York. Jeg vet ikke helt hvor rad seks er her, router nummer seks. quest.net en stor ISP, Internett-leverandøren, som gir internett-tilkobling til store steder som Yale og andre. Og så er dette siste, det ser ut som at MIT ikke engang har sin egen nettside i Cambridge nødvendigvis, men heller de har outsourcet sin hjemmeside, eller i det minste de fysiske servere, til et selskap kalt Akamai. Og Akamai faktisk er rett ned veien fra MIT i Cambridge det viser seg. Men innser også at selv om du kommer til å www.mit.edu, vi kunne virkelig bli sendt hvor som helst i verden. Og la oss se et sted annet sted i verden. La meg gå videre og fjerne denne skjermen og i stedet spore rute, bare en gang, så spørre en, for å www.cnn.co.jp, den japanske hjemmesiden for CNN, nyhetssiden. Og hvis jeg trykker Enter nå, La oss se hva som skjer. Vi er igjen starter på arubacentral. Vi deretter gå til navnløs router, noen flere. Så det tok 12 hopp til komme til Japan denne gangen. Og la oss se hva vi kan fange opp. Så samme hop, samme hop. Litt annerledes nå. Denne er interessant. Så jeg gjetter her, er stamford1 en få byer unna i Connecticut også. Disse ruterne i rad seks og syv ikke har navn. Men dette er slags fantastisk. Så hva synes å være mellom rutere i trinn sju og åtte? Og hvorfor sier du så mye? Yeah? PUBLIKUM: Ocean. DAVID J. MALAN: Sannsynligvis et hav. Vi vet det er sant lignende, intuitivt, ikke sant? Men vi kan bekrefte så mye slag av typen empirisk hvorfor? Hva har endret seg mellom rader sju og åtte? Det tok mye mer tid til å gå til hva denne navnløse router syv er, sannsynligvis et sted i kontinentale USA, til trinn åtte, som sannsynligvis er et sted i Japan basert på domenenavnet for .jp der. Og så de ekstra hundre noe millisekunder eller 90 eller så millisekunder er resultatet av våre data kommer over et ganske stort havområde. Nå merkelig, virker det som kanskje at kabelen går over hele USA. Hvis vi faktisk gå over vestkysten for å komme til Japan, det er litt lang vei hvis vi går den andre veien. Så det er ikke helt klart hva som skjer fysisk. Men det faktum at hvert ekstra hop faktisk tok markert lenger enn alle andre, er det ganske god bekreftelse på at CNNs Japansk web server er sannsynligvis ja i Japan. Og det er sikkert lenger unna enn MIT har vært. Og det er verdt å merke seg også, dataene er ikke nødvendigvis kommer til å reise kortest mulig avstand. Faktisk, hvis du spiller rundt med spor rute hjemme bare å plukke tilfeldige nettsider, du kanskje finner ut at bare å sende en e-post eller for å besøke en nettside det er her i New Haven, noen ganger dataene kanskje først ta en omvei, gå ned til DC, og deretter komme opp igjen. Og det er nettopp på grunn av de dynamiske ruting beslutninger at disse datamaskinene gjør. Nå bare for moro, produksjonsteamet trimmet en av disse videoene for oss å bare være litt mer konsis. Men for å gi oss en rask følelse her-- og vi kan la lysene on-- som til hvor mye kabling er faktisk utfører alle våre data. [VIDEO PLAYBACK] [MUSIC SPILLE] [END PLAYBACK] DAVID J. MALAN: Alle nettverks videoer har kule klingende musikk tilsynelatende. Så det er å få bare en følelse av hvor mye har pågått under panseret. Men la oss se på et litt lavere nivå nå på hvilke data er faktisk traversering disse linjene, og selv gå trådløst i et rom som dette. Så det viser seg når du ber om en nettside, eller send en e-post, eller motta en nettside eller en e-post, eller en Gchat melding eller en Facebook-melding, eller lignende, er det ikke bare en stor del av biter strømmer trådløst gjennom luften eller elektronisk på en wire. Snarere at forespørselen eller respons er generelt du delvis opp i separate deler. Så med andre ord, når du har en be om å få til en annen maskin, eller du får tilbake et svar fra en annen computer-- som antar, for eksempel hvis unfamiliar-- som for mange mennesker synes å være disse days-- hvis ukjent med dette-- ikke denne fellow-- denne karen. Så antar at dette er en melding som Jeg ønsker å sende til noen i ryggen. Hvem i helt tilbake vil gjerne får et bilde av Rick Astley dag? OK, hva heter du? PUBLIKUM: Cole. DAVID J. MALAN: Hva er det? PUBLIKUM: Cole. DAVID J. MALAN: Holt? H-O? PUBLIKUM: C-O-L-E. DAVID J. MALAN: C-O-L-E, Cole. Unnskyld. C-O-L-E. Greit. Så hvis jeg vil sende Cole dette bilde her, vet du dette er slags et stort bilde, ikke sant? Det kan være noen kilobyte, noen få megabyte, spesielt hvis det er høy oppløsning. Og jeg har egentlig ikke lyst til å slutte alle andre fra å bruke internett bare mens jeg sender dette virkelig stor, høy bildekvalitet av Rick Astley i hele rommet. Jeg vil gjerne dine data til å fortsette å traversere nettverk og Wi-Fi også. Og så det gjør sense-- og dette er gjenvinnbart elektronisk, ikke så mye i den virkelige verden. Egentlig er dette kommer til å ha flere betydninger hvis du tar mitt lyd ut. Så hvis jeg rive dette i halv som dette her, dette nå kan reise internett mer effektivt, fordi det er en mindre brikke. Så med lavere sannsynlighet går det kolliderer med andres trafikk på internett. Og så hva maskinen faktisk gjør når du ønsker å sende en melding til Cole er det biter opp en melding som dette inn mindre biter, fragmenter så å si. Og så setter dem innsiden av hva vi kaller slags virtuelle konvolutter. Så jeg har fire papirkonvolutter her. Og jeg har pre-mønstret dem, en, to, tre, og fire. Og hva jeg skal gjøre på den fronten av dette, akkurat som en normal mailing, er jeg kommer til å sette Cole navn der. Og så på toppen, jeg er kommer til å sette navnet mitt der, David, slik at den første slike pakke Jeg sender der ute på internett ser litt noe sånt dette, de viktigste egenskapene av disse er at den har en å ta opp, en fra adresse, og også et antall, så det som forhåpentligvis er tilstrekkelig informasjon for Cole å rekonstruere denne meldingen. Så la meg gjøre det samme her, samme her, og det samme her, skrive navnet sitt i Til-feltet på dem alle. Og så la oss gå videre og sette disse bildene inne. Så her er en pakke som er klar til å gå. Her er en annen pakke som er klar til å gå. Her er en tredje pakke som er klar til å gå. Og her er en fjerde pakke som er klar til å gå. Og nå hva som er interessant om hvordan internett i realiteten fungerer er at selv om jeg har fått fire pakker, som alle er forutbestemt for det samme beliggenhet, er de ikke nødvendigvis kommer til å krysse den samme ruten. Og så selv om jeg kanskje dele disse poser til nærmeste router la oss si, hvis du ønsker å sende dem hver hvilken vei, la oss se hva som faktisk skjer, målet for som er å få dem til slutt til Cole. Og ja, de er allerede ikke nødvendigvis ta samme retning. Og det er greit. Dette er en litt vanskelig og Oprah stil i dag. Og nå la meg bevisst ta det en tilbake. Og nå Cole, hvis du ønsker å montere det som best du kan. Selvfølgelig kan vi alle gjette hva konklusjonen her kommer til å bli. Du kommer til å ha 3/4 av Rick Astley på bare et øyeblikk. Og hva er skjønt implikasjon av det? Du ønsker å prøve å holde den opp? Vi har ett kamera pekte på deg hvis du ønsker å posere med Rick Astley over her. Det vi går. Lovely. Men du synes å være fraværende et fragment av Rick Astley. Så det viser seg at internett blir vanligvis drevet av ikke bare IP, men faktum er at vi har hørt på veldig begynnelsen av forelesningen i at video-- og du har sikkert sett dette akronym mer often-- hva som virkelig er protokollen du pleier å høre om? PUBLIKUM: TCP / IP. DAVID J. MALAN: TCP / IP, som er bare en kombinasjon av to protokoller, kalt en IP. Som igjen er bare den innstilte konvensjoner via som vi adressere hver datamaskin på internett. Og så TCP, som tjener et annet formål. TCP er en protokoll som du vanligvis bruker i forbindelse med IP, som blant annet ting, garanterer levering. Faktisk er TCP protokollen som vil legge merke til at en av pakkene tydeligvis ikke får til Cole, fordi han synes være manglende nummer fire av fire. Og så hva TCP, en protokoll gjør det, er det forteller Cole, hei Cole, hvis du mottar bare tre av fire pakker, Fortell meg hvilken du mangler, i hovedsak, og deretter min hensikt i livet bør være å gjenutsende det. Og så hvis jeg også, avsender, bruker TCP, Jeg skal da lage en ny packet-- ikke denne rynkete én her-- videresende nettopp dette stykke det, slik at til slutt Cole har en komplett souvenir, om ikke annet. Men slik som til slutt dataene faktisk får til riktig destinasjon. Men dessverre, skriver Cole navn på forsiden er ikke tilstrekkelig, per se. Og egentlig, jeg ville ikke skrive Cole navn, men sannsynligvis hans IP-adresse på konvolutten. Og jeg ville ikke skrive David. Jeg vil skrive min IP-adresse på konvolutten slik at datamaskinene kan faktisk kommunisere frem og tilbake. Men det viser seg at datamaskiner kan gjøre mye mer enn å tjene opp bilder av Rick Astley. De kan også sende og motta e-post, chat-meldinger. De kan gjøre ting som filoverføringer, og en rekke andre verktøy du bruker på internett, servere kan gjøre i disse dager. Og bare fordi et selskap, eller en skole, eller en person ønsker å ha en web server, og en e-postserver, og en prat server, betyr ikke at du trenger tre datamaskiner. Du kan ha bare én datamaskin som kjører flere tjenester, så å si. Og så når Cole mottar en melding sånn, hvordan ikke sin datamaskin vet om det skal viser at bildet i sin nettleser, eller i Gchat, eller i Facebook Messenger, eller i hvilket som helst antall av andre verktøy? Så det viser seg også på at som konvolutten er ekstra brikke av informasjonen som er kjent som et portnummer. Og et portnummer er bare et tall faktisk men det entydig identifiserer ikke datamaskinen, men tjenesten. Og det er bunter av disse. Så det viser seg at i verden, mennesker har bestemt på et par slike konvensjoner, hvorav noen er disse. Så det er noe som heter File Transfer Protocol. Det er ganske utdatert. Det er helt usikkert. En rekke mennesker fortsatt bruke den. Og den bruker port nummer 21. Med andre ord, hvis sende en fil via FTP, konvolutten ville ha ikke bare avsender og mottakers IP-adresse, Det ville også ha nummeret 21, slik at mottakerdatamaskinen vet oh, dette er en fil, ikke en e-post eller en chat-melding. 25 er SMTP. Hvor mange av dere har noen gang brukt SMTP? Feil. Nesten alle av dere har. Hvis du noen gang har brukt e-post, har du brukt SMTP, Simple Mail Transfer Protocol, som er bare en fancy måte å si: Dette er den type datamaskin eller tjeneste som sender e-posten din utgående. Og hvis du noensinne har sett akronymer som POP eller IMAP og det er et par andre, de er for mottak e-post, vanligvis. Som bare betyr at det er en annen tjeneste. Det er programvare som noen skrev som sender til eller lytter på en bestemt port nummer slik at det ikke forvirre e-post med en annen type av data. Nå nettet er HTTP, som er nummer 80, og også port 443. Og i virkeligheten, selv om Vi mennesker heldigvis trenger ikke å gjøre dette, noen gang du besøker et nettsted som http://www.yale.edu, nettleseren er bare å være snill av nyttig ved at det er forutsatt at du ønsker numerisk port 80. Vi vet allerede at DNS kan finne ut hva IP-adressen er av www.yale.edu. Men maskinen er bare kommer til å antyde at du Vil port 80 fordi du bruker Chrome eller IE, eller en annen nettleser. Men jeg kan teknisk gjøre kolon 80. Og så kan jeg eksplisitt fortelle nettleseren min, sende en pakke eller mer av informasjon til www.yale.edu ber dagens hjemmeside. Men spesielt, adresse det til Yale IP på port 80 slik at jeg faktisk får sikkerhets Yale webserver. Nå forsvinner umiddelbart fordi nettlesere bare bestemme at vi ikke trenger å forvirre mennesker ved å ha enda mer uforståelige informasjon som kolon 80. Og ærlig talt, nettlesere som Chrome ikke engang vise deg HTTP lenger, eller tykktarmen, eller skråstreken skråstrek, eller skråstrek, i en viss forstand, fordi de prøver å gjøre ting enklere for brukerne. I en annen forstand, det er bare snill av en brukeropplevelse thing-- la oss bli kvitt noen av rotet. Men det skjuler noen av disse underliggende detaljer. Og faktisk, ingen av oss sannsynligvis noensinne skriver http lenger. Du bare skriver inn noe som www.harvard.edu. Og igjen, Chrome utleder at du vil HTTP. Men det finnes andre protokoller at vi sikkert kunne bruke. Så gitt alt dette, hvis du nå sortere av satt på den såkalte ingeniør hat, hvordan tingene heter brannmurer fungerer? Så du er nok generelt kjent med brannmur, ikke så mye i den fysiske forstand. Så tilbake i dag, og fortsatt den dag i dag, hvis du har fått som strip malls for forekomst som har en rekke butikker, generelt veggene i mellom enkelte butikker eller butikker er brannmurer i den forstand at de har spesiell isolasjon slik at hvis en brann bryter ut i en butikk, det gjør ikke nødvendigvis spre seg til butikken naboen. Dataverdenen har også brannmurer som ikke gjør noe annet. Hva gjør en ildkule gjøre? Yeah? PUBLIKUM: I utgangspunktet de kuttet forbindelsen hvis de støter på noe som, for eksempel, de har antall id uttalelser. Og hvis noe skjer, de kuttet forbindelsen. Som hvis dette ondsinnet angrep [Uhørbart] datamaskinen, or-- DAVID J. MALAN: OK bra. Ja, og faktisk du er selv går litt lenger i å beskrive noe som kan være kalles en intrusion detection system, eller IDS for kort, der du faktisk har regler definert. Og hvis du begynner å se mistenkelig oppførsel, du prøver å sette en stopper for det. Og en brannmur, ærlig, på et nettverk nivå, er enda dummere og enklere enn det generelt. Og det er forskjellige typer av brannmurer i verden. Men de som opererer på nivået vi snakker today-- IP og TCP-- jobbe enda mer oversiktlig. For eksempel, hvis du var Yale system administratorer, eller Harvard-systemet administratorer, eller noen Big Brother på noen selskap, og du ønsket å hindre all din studenter eller alle dine ansatte fra å gå til facebook.com, Alt du trenger å gjøre er å sørge for at alle deres nettverkstrafikk, først av alt, går gjennom en spesiell enhet. La oss kalle det en brannmur. Og det er greit, fordi du kan lage din router det samme som en brannmur hvis du sette samme type programvare på samme maskin. Så hvis alle elevene eller ansatte trafikk går gjennom denne sentral brannmur, hvordan vil vi blokkere folk fra å gå til facebook.com, for eksempel? Hva ville systemet administrator har å gjøre? Noen andre? La oss prøve å gå rundt. PUBLIKUM: [uhørbart] DAVID J. MALAN: Si det igjen? PUBLIKUM: Det bør bare få fanget opp inne i systemet. Så bare sette Facebook i 127.0.0-- DAVID J. MALAN: Oh, interessant. Så du kan faktisk da hacke din DNS-systemet. Dette er faktisk en måte du kan gjøre dette hvorved enhver tid en Yale student trekker opp www.facebook.com, alle av oss her i dag på campus bruker Yale DNS-server, fordi Yale rens DHCP server ga oss denne adressen. Så ja, kunne du slags bryte ting eller break-konvensjonen ved å bare si, ja, facebook.com adresse er fake, er 1.2.3.4, som er faktisk ikke lovlig. Eller kanskje det er 278. hva som var i TV-showet en øyeblikk siden slik at ingen av oss faktisk kan besøke facebook.com. Så antar Yale gjorde det. Anta Yale ønsket å holde deg ut av facebook.com. Og derfor har de endret DNS-innstillingene for å gi deg en falsk IP adresse for facebook.com. Hvordan reagerer du? Teknisk sett not-- oh, nå alle ønsker å delta. OK, ja. PUBLIKUM: Du bare skriver i faktiske IP-adressen til Facebook. DAVID J. MALAN: OK, bra. Så vi kan bare skrive i faktiske IP-adressen til Facebook, mye som jeg gjorde med Yale hjemmeside. Og hvis Facebook-serveren er konfigurert å støtte det, bør det faktisk fungerer. Det er en mindre smerte i nakken, fordi nå er vi må huske noen tilfeldige 32-biters verdi, men som kan fungere. Hva annet kan du gjøre? Yeah. PUBLIKUM: Du kan endre disse innstillingene [uhørbart]. DAVID J. MALAN: Ja, kunne du selv endre DNS-innstillingene. Så faktisk dette er faktisk ganske nyttig, ærlig, hvis du er på en flyplass, eller hvis du er i en kafé, eller noe som har flass internett der noen ganger DNS-serveren bare slutter å virke. Så selv jeg noen ganger gjøre dette, ikke for ondsinnet, jeg ønsker å bruke Facebook formål, men egentlig fordi jeg synes å ha et nettverk tilkobling, men ingenting fungerer. Og slik at en av den første ting jeg try-- og du kan gjøre dette på Windows også-- men på min Mac, hvis jeg går til Network. Og jeg velger min Wi-Fi-tilkobling. Og jeg går til Advanced. Og jeg går til DNS. Dette er de tre IP-adresser som Yale er å gi meg i tre DNS-servere. Hensikten er da for meg å prøve noe en av disse for å løse adresser. Men jeg kan overstyre disse ved å gjøre et pluss. Og noen ønsker å foreslå en DNS-server? PUBLIKUM: 8.8.8.8? DAVID J. MALAN: Å, du er fantastisk. Ja, 8.8.8.8. Så Google, velsigne deres hjerter, kjøpte IP-adressen 8.8.8.8, fordi den slags ser ut som Gs sannsynligvis, og det er lett å huske. Men ja, nå har jeg satt min datamaskin for å bruke Googles DNS server. Så nå hvis jeg går til yale.edu, det er fortsatt kommer til å fungere. Men jeg bruker ikke Yale DNS-servere lenger. Og hvis jeg går til facebook.com, alle de ser ups kommer til å gå gjennom Google. Så på den ene siden, har jeg smart omgått det lokale systemet administratorer bare ved forstå hvordan nettverk fungerer. Men jeg betaler en pris. Ingenting er gratis. Hva har jeg bare gitt opp? Hva har jeg bare gitt opp? Alle dere flinke folk som har brukt 8.8.8.8, fordi det er kult eller løser problemer, hva har du gjort hele denne tiden? PUBLIKUM: Reiser lenger? DAVID J. MALAN: Kanskje reiser lenger, fordi Googles trolig ikke fullt så nært som serveren nedover gaten. Men mer worrisomely. Yeah? PUBLIKUM: Så nå Google vet hvor du skal. DAVID J. MALAN: Google vet bokstavelig talt hvert nettsted du besøker, fordi du er bokstavelig talt spør dem, hei Google, kan du oversette yale.edu for meg? Eller hei Google, kan du oversette denne annen nettadresse for meg til en IP-adresse. Og så they're-- jeg har ingen aner ikke hva du snakker om. Og slik at de vet alt om deg. Så skjønner at dette er en gratis tjeneste med et formål fra deres perspektiv også. Men det kan sikkert få deg ut av en knipe. Nå bare for å ta opp en annen problem som ofte kommer opp blant studentene, spesielt når du reiser internasjonalt i enkelte land som Kina, hvor det faktisk er en Great Firewall of China der regjeringen der blokkene ganske litt av trafikken på ulike nivåer. Du trenger ikke å bare blokk trafikk på nivå vi snakker her, DNS eller på annen måte, du kan blokkere det på andre nivåer. Og faktisk bare være klart, en brannmur kan operere enda enklere måte enn bare å ha de systemansvarlige endre DNS-innstillingene. En brannmur, en anordning mellom oss og resten av verden, bare kunne blokkere alle utgående forespørsler til IP-adressen for Facebook på port 80, eller IP-adressen for harvard.edu, eller IP-adressen til noe. Så en brannmur kan se på din konvolutter IP-adresser og til og med port tall, og hvis Yale ville, det kan bare slutte oss alle fra selv å bruke FTP lenger, noe som ville trolig være en god ting fordi det er faktisk en usikker protokoll. Yale selv kunne stoppe oss fra besøker helheten av web bare ved å blokkere all port Trafikken på nummer 80 i tillegg. Så det kan være en annen måte. Og det er enda mer avansert måter også. Men når du er på reise utenlands for eksempel, eller hvis du er i en internettkafé, eller hvis du er overalt der det finnes blokkeringer eller trusler, hva kan du gjøre? Vel, hvis du går nedover gaten til Starbucks eller du reiser på en flyplass, generelt kan du bare hoppe på Wi-Fi ved å velge lignende, JFK Wi-Fi av LaGuardia Wi-Fi, eller Logan Airport Wi-Fi, eller hva ikke. Og det er ikke kryptert, ikke sant? Det er ingen hengelås-ikonet. Og er du sannsynligvis ikke bedt om om brukernavn og passord. Du bare bedt om med noen dum skjema å si at jeg er enig i å bruke dette bare i 30 minutter, eller noe sånt. Men det er ingen kryptering mellom du og Starbucks Wi-Fi punkt, de tingene med antennene på veggen. Det finnes ingen kryptering mellom deg og flyplassens Wi-Fi-signaler. Og så teknisk at skumle person sitter noen seter ned fra deg i Starbucks eller på flyplassen kunne være, med riktig programvare, se på alle trådløse din trafikk på hans eller hennes laptop. Det er ikke så vanskelig å sette en laptop i hva som er kalles promiskuøse modus, som som navnet antyder, betyr at du er typen løs med reglene. Og det bare lytter ikke bare for trafikk ment for det, men også til alle andre er trafikk innenfor rekkevidde. Og ved den logikken, kan det se alle de informasjonspakker du mottar. Og hvis disse pakkene er ikke kryptert, du setter deg selv i fare for e-post, eller meldinger, eller noe annet å bli utsatt for. Så selv om du ikke er i utlandet men du er bare i Starbucks, eller du er på noen tilfeldig persons Wi-Fi som ikke er kryptert, en VPN er en god ting. En VPN er et virtuelt privat nettverk. Og det er en teknologi som lar deg ha en kryptert, en egge connection-- avansert enn Caesar eller Vigenere-- mellom den bærbare datamaskinen, eller telefonen, eller skrivebordet ditt, og en server andre steder, som en server på Yale campus. Og hvis du reiser abroad-- og faktisk, finner du dette på hotell hele tiden. Og spesielt som fremadstormende dataforskere hvor dere kan, som geeks, ønsker å bruke andre enn 80 porter, og andre enn 443-- porter og faktisk for oppgavesettet seks, vi kommer til å spille med flere TCP-portene bare ved choice-- mye av hoteller og butikker, og nettverk bare blokkere den slags ting fordi de litt naivt, eller uvitenhet, tenk at ingen trenger de andre portene. Og så ved å bruke en VPN kan du omgå slike restriksjoner, fordi hva en VPN gjør er det kan du på Starbucks, eller flyplassen, eller hvor som helst i verden å koble encryptedly til yale.edu, til noen server her på campus, og deretter tunnel, så å si, alt av trafikken fra hvor du er gjennom Yale, på hvilket tidspunkt det deretter går til sin endelige destinasjon. Men ved å kryptere det, du unngå noen av disse slag av filtre eller ileggelse som noen lokale nettverket har pålagt. Og pluss, har du en mye mer robust forsvar mot skumle mennesker rundt deg som kanskje være å prøve å lytte på trafikken. Det kan fortsatt være skumle folk her hjem ved Yale ser trafikken som det kommer ut av VPN, men minst du har skjøvet trusselen lenger unna. Og det er her også, en trade off. Nå selvfølgelig, hvis du er i Kina eller i kafeen, og du tunneling alle trafikken gjennom Yale, hvilken pris vi betaler kanskje? PUBLIKUM: Speed. DAVID J. MALAN: Speed, ikke sant? Det må være litt matematikk eller noen fanciness involvert i selve kryptering. Det kan være flere tusen miles av avstand eller tusenvis av miles av kabler mellom deg og Yale. Og det er virkelig ille hvis du er i Kina, for eksempel, og du ønsker å besøke et nettsted i Kina. Og slik at dataene skal USA, og deretter tilbake til Kina bare fordi du kryptere det gjennom denne tunnelen. Men det løser tekniske og arbeide problemer likt. Men det hele koker ned til disse svært enkle ideer. Og Harvard, for de nysgjerrige, har en her også, på vpn.harvard.edu, som fungerer akkurat som Yale-tallet. Så med alt som er sagt, hvorfor er hele dette nettverket nyttig? Og hva kan vi begynne å gjøre med det? Vel, la oss gjøre dette nå mer reell. Dette er en forkortelse som de fleste av oss er trolig super familiar-- HTTP-- som står for Hyper Text Transfer protokoll. Og dette betyr nettopp dette er språket, protokollen at nettlesere og web server snakke. P i HTTP er faktisk en protokoll. Og en protokoll er bare et sett av konvensjoner. Vi har sett IP-- internett protocol-- TCP-- overføring kontroll protocol-- og HTTP. Men hva er dette dumt ting av en protokoll? Det er bare et sett av konvensjoner. Så hvis jeg liksom komme ned her, og jeg ønsker å hilse på deg. Jeg vil si hei, mitt navn er David. PUBLIKUM: Luis. DAVID J. MALAN: Luis. Vi har denne dumme menneske konvensjonen av skjelvende hender her. Men det er en protokoll, ikke sant? Jeg utvidet min hånd. Luis utvidet sin hånd. Vi gjorde dette. Og deretter ferdig, ferdig. Og det er akkurat det samme ånden av en datamaskin protokoll der som i HTTP, det som skjer er dette. Hvis du er datamaskinen på venstre her, og det er noen web server der på høyre. Og datamaskinen på venstre ønsker å be om informasjon fra denne serveren. Det er litt av en toveis drift. Nettleseren til venstre ber om noen web-side. Serveren til høyre svarer med noen web-side. Og vi får se hvilken form de tar bare et øyeblikk. Og det viser seg at de computers-- som nettleser og server, eller klient og server, så å si. Mye som en restaurant der klienten ber om noe, og serveren er å bringe ham eller henne something-- få er litt det operative ordet. Bokstavelig innsiden av konvolutten som Nettleseren min sender herfra til et web Serveren er ordet får. Som jeg ønsker å få dagens nyheter. Jeg ønsker å få min Facebook news feed, eller jeg ønsker å få litt siden fra serveren. Spesielt er dette hva som er går på innsiden av konvolutten. Så jeg, med Cole, i hovedsak sendte Cole et svar. Hvis du forestille deg at Cole faktisk ønsket et bilde av Rick Astley, han kunne ha sendt meg en forespørsel ligner i ånden til dette. Innsiden av konvolutten hans til meg, der Jeg er nå å spille rollen som Google, ville være en anmodning som bokstavelig talt sier, får, og deretter en fremover slash-- og du har sikkert sett skråstreker i webadresser før. Det betyr bare gi meg standard side, standard Rick Astley bilde i dette tilfellet. Og forresten, snakker Cole språket HTTP-versjon 1.1 eller 1.1 i protokollen. Og det viser seg at det er en eldre versjon 1.0. Men datamaskiner har en tendens til å bruke 1,1. Den andre linjen er en nyttig ting som vil komme tilbake til kanskje før lenge. Men det er bare en spesifikasjon for meg, mottakeren, at jeg ønsker er www.google.com. Fordi det er meget mulig disse dager for mange, hundrevis av nettsteder med forskjellige domenenavn til alle bor på samme server. Det kommer ikke til å være sant så mye i Googles tilfelle. Men i en mindre selskaps tilfelle, kan absolutt være. Så Cole er bare slags sette i konvolutten, forresten, når dette går din IP-adresse på port 80, bare være sikker på at du vet Jeg ønsker www.google.com, ikke noen andre tilfeldige hjemmeside på samme server. Det jeg da svare på Cole med, på slutten av dagen, er et bilde. Men på toppen av det bildet innsiden av konvolutten er faktisk litt tekst, der jeg sier, OK. Jeg snakker HTTP versjon 1.1 også. 200. Som er en statuskode som de fleste av oss har trolig aldri sett, fordi det betyr OK. Og dette er bra, fordi det betyr at jeg reagerer hell Cole anmodning. Hva tallene har du sannsynligvis sett på nettet som ikke er OK? PUBLIKUM: 404. DAVID J. MALAN: 404-- fil ikke funnet. Så ja, helst du har sett en av de irriterende filen ikke funnet feil, fordi nettsiden er død, eller fordi du tastet feil en URL, som bare betyr at den lille konvolutten som din datamaskin mottatt fra serveren inneholdt en melding HTTP 1.1, 404-- ikke funnet. Filen eller at forespørselen du har gjort er ikke funnet. Videre er innsiden av hylsteret vanligvis er denne linjen, innholdstype. Noen ganger er det HTML, noe vi vil snart se. Noen ganger er det en JPEG. Noen ganger er det en GIF. Noen ganger er det en film-fil, en lydfil, en rekke ting. Så inne på konvolutten er bare en lite hint om hva jeg mottar. Det finnes andre statuskoder også, noen som vi vil utforske i P satt seks, og du vil snuble over i P satt sju og / eller åtte. Men noen her, som 404 vi har sett. Forbudt, 403, betyr som tilgangen er galt, som om du ikke har en slags konfigurert den riktig. 301 og 302, vi sjelden ser visuelt. Men de mener omdirigere. Hver gang du har gått til én URL og du har vært magisk sendt et annet sted, det er fordi nettleseren har sendt tilbake en konvolutt som inneholdt antall 301 eller 302, samt nettadressen som den ønsker Nettleseren din å gå til stedet. 500 er fryktelig. Du vil se det før lenge, sannsynligvis i P satt seks eller P satt syv. Og det betyr vanligvis det er noen feil i koden din, fordi faktisk vi skal skrive kode som svarer på web forespørsler. Og du har bare fått noen feil i logikk eller syntaks, og serveren kan ikke håndtere det. Så la oss se hvordan vi kan nå utnytte og forstå disse forespørslene som følger. Hvis jeg går til, la oss si, google.com. La meg gå til www.google.com. Og for demonstrasjon skyld, la oss se, jeg trenger å gå til Innstillinger her. Jeg kommer til å gå til søkeinnstillingene. Og Google har stadig irriterende funksjoner, men nyttige funksjoner. Så Google har denne tingen som øyeblikkelig Resultatene der du begynner å skrive, og automatisk ting begynner å vises. Og det er alt greit og teknisk nyttig, og vi vil forstå før lenge hvordan dette fungerer. Men for nå, jeg snu off øyeblikkelige resultater, fordi jeg vil at min nettleser for å slags arbeid gamle skolen så at jeg kan se hva som skjer. Så nå er jeg tilbake her. Og jeg ønsker å søke etter katter. Og legg merke til jeg ser noen forslag, noen veldig godartet forslag heldigvis. Og nå hvis jeg trykker Enter, La oss se hva som skjer. Så er det noen katter. Og den øverste treffet er på Wikipedia. Men i dag bryr vi om teknologien opp her. Så webadressen som jeg har blitt sendt dette her. Og det er noen ting jeg forstår ikke helt. Så jeg kommer til å gå videre, fordi Jeg slags vet hvordan Google fungerer, og jeg kommer til å destillere dette URL inn i sin enkleste form. Og nå kommer jeg til å trykke enter igjen. Og det fungerer fremdeles. Jeg har en side med resultater alt om katter. Men legg merke til enkelhet av min URL. Det viser seg at dette er hvordan mye av web fungerer. Internett er bare en hel haug med datamaskiner kjøre programvare som tar innspill. Det er ikke få streng stil innspill. Det er ikke kommandolinje argumenter som vi er vant til. De tar inn, settes disse webservere, ved hjelp av nettadressene ganske ofte. Og når du har søkte etter noe, helst du har logget inn Facebook, helst du har gjort noe interaktive med en web-side, hva du gjør effektivt å sende inn et skjema, så å speak-- tekstbokser, avmerkingsbokser, små sirkler og whatnot som sender informasjon fra deg til serveren. Og det viser seg at nettet serveren vet å se på denne nettadressen og analysere det, som ser på det tegnet ved tegn på utkikk etter noe interessant etter et spørsmålstegn. Fordi etter et spørsmålstegn, det viser seg, skal komme en haug med sentrale verdiparene. Jeg mener key = verdi. Og så hvis det er multiple-- kanskje en ampersand, en annen nøkkel = verdi, ampersand, key = verdi. Så vi har på en måte sett denne ideen før der noe har en verdi. Det er bare et nytt format her. Og jeg bare vet, etter konvensjonen, Google bruker q for søket. Og så hvis jeg vil søke etter hunder, jeg kan manuelt søke etter hunder sånn. Og da er jeg tydeligvis får noen søkeresultater involverer hunder. Så det ser ut til å være interessant. Og ja, hva som skjer under panseret er dette. La meg gjøre dette. Dette er a-- la oss se. La meg gå tilbake over her for bare et øyeblikk. Vi vil se at det er andre måter å sende inn informasjon. Så hvis jeg logger på Facebook, eller Gmail, eller andre populære nettsiden, det synes slags dårlig hvis det jeg skrev i søkeboksen ender opp i min URL, i min nettleserens adressefelt. Hvorfor? Hvorfor er det mildt bekymringsfull? Yeah? PUBLIKUM: Skriv inn et passord. DAVID J. MALAN: Yeah. Så hva om hva jeg har skrev inn er passordet mitt? Jeg slags ikke ønsker det så åpenbart synlig i min nettleserens adressefelt. En, fordi min irriterende romkamerat en tendens til å se over skulderen min, og han eller hun kan nå se, selv om det var kuler når jeg skriver det inn, små sirkler. Nå er det i min adresselinjen. Dessuten, hva er sant om ting du pleier å skrive i adressefeltet. PUBLIKUM: [uhørbart] DAVID J. MALAN: Hva er det? PUBLIKUM: Det blir sendt ut. DAVID J. MALAN: Det blir sendt ut. Og også, det blir husket. På grunn av at neste gang du skriver ting der oppe, ofte det autocompletes og det husker hva du har skrevet før. Og så er det denne veritabel historie at søsken, eller din romkamerat, eller hvem som kan gå gjennom for å ganske mye ser hver nettside du har besøkt fordi det er logget inn som adresselinjen. Videre antar du vil laste opp et bilde til Facebook. Hvordan i all verden er du kommer til å sette et bilde i en URL? Vel, det viser seg at du kan gjøre det i noen måte, men det er absolutt ikke opplagt. Og så er det denne andre måten sende informasjon i en konvolutt, ikke via en GET, men via noe som kalles POST. Og i teorien, ser det ganske mye det samme. I stedet for ordet GET, sier vi POST, og deretter den samme type format. For eksempel, er denne et skjermbilde av hva det kan se ut som om jeg prøver logging inn i Facebook, som sender meg til en fil kalt login.php, som faktisk er fortsatt til denne dag navngitt som sådan. Det er det samme filnavn Mark ga til det mange år siden. Det er programmet han skrev i PHP via der brukerne kan logge inn på nettstedet. Men du trenger å sende noen ytterligere innspill. Og heller enn det å gå etter filnavn som det gjorde før med cats-- q = cats-- det kan gå lavere i anmodningen, dypere inne i konvolutten hvis du vil der ingen kan se det, og hvor det ikke ender opp i brukerens nettleser bar, og derfor ikke huske for folk å sniffe rundt. Og så her min e-postadresse og min falske passord faktisk gå. Og hvis Facebook bruker ikke HTTP, men HTTPS, dette vil alle bli kryptert, eggerøre, ala Cæsar eller Vigenère, men mer fancily slik at ingen faktisk kan se denne forespørselen. Og så ja, helst du har en URL som starter med HTTPS, det betyr bare det er kryptert. Men på slutten av dagen, hva er faktisk inne av disse konvoluttene? Dette var super lavt nivå. Og heldigvis, er vi ikke kommer til å nødvendigvis ha å gå så lavt nivå hver gang for å begynner å skrive interessant programvare. Vi kan begynne å ta ideene til uke en gjennom fem, anta at det Nå er denne infrastrukturen som lar oss skrive programvare som opererer på nettet, og det kommer til å tillate oss denne kommende uken for å starte å se på noe som heter HTML. Dette er ting som er enda dypere inne i konvolutten, men det er ting vi er kommer til å begynne å skrive. Og det er ting mer interessant, vi er kommer til å skrive programmer som begynner å generere automatisk slik at våre nettsider er ikke hard kodet, men ta inn og produsere output. Dette er kanskje den enkleste web siden du kan gjøre i verden. Jeg kan faktisk åpne opp noe dumt som TextEdit på min Mac, som bare gir meg en enkel tekstvindu som dette. PC-brukere har Notepad.ext, som er svært lik i ånd. Og jeg kan bokstavelig talt skrive ut dette-- DOCTYPE HTML, som ser litt kryptisk. Men vi vil komme tilbake til det. HTML, med disse rare vinklede braketter og skråstreker, innsiden av som nå kommer jeg til å si her kommer leder av nettsiden min. Innsiden av det, jeg bare vet, og du vil snart vite, at jeg kan sette tittelen på min nettside. Og så under leder av nettsiden er kommer til å gå til den såkalte kroppen av websiden. Og jeg bare innrykk bare som i C til slags holde ting pent lesbar stilistisk. Og nå kommer jeg til å lagre dette som en filen på skrivebordet mitt, kalt hello.html. Og jeg kommer til å fortelle det ja, bruke HTML. Ikke endre det til .txt, selv selv om alt dette er en tekstfil, på samme måte som en C-program skrevet med en tekst editor. Selv om ikke i CS50 IDE på øyeblikket, bare her på min Mac. Og hvis jeg nå gå til skrivebordet mitt, vil du se hello.html. Hvis jeg dobbeltklikker dette, det vil åpne Chrome. Og selv om denne filen skjer for å leve på skrivebordet mitt, det er kanskje den enkleste nettside jeg kunne gjøre. Legg merke til at tittelen på Kategorien vei opp toppen er hello world. Liket av nettsiden er faktisk hello world. Og alt jeg har gjort for å få til dette punktet er implementere, eller er skrive et nytt språk, kalt HTML. Det er ikke et programmerings språk som C. Det er ikke kommer til å være forhold, og løkker og funksjoner. Det er et kodespråk, der Hvis du bare fortelle mottaker Programmet hva du vil gjøre. Dette betyr hei nettleser, her kommer en HTML-side. Hei nettleser, her kommer hodet på siden min. Hei nettleser, her kommer kroppen på siden min. Hei nettleser, det er det for kroppen. Det er det for HTML-siden. Og med disse enkle definisjoner alene, vil vi snart se at en, vi kan representere dette som et tre. Men mer om det senere. Så dette vil alle interconnect til våre nyeste datastrukturer. To, vil vi introdusere dette dum spøk. Dette er en faktisk tatovering som denne fyren hadde på halsen hans. Det er trolig morsomt den første uken eller to, og deretter, kanskje ikke så mye. Men HTML, og selv på nettet siden jeg bare gjort, super sinn numbingly disappointing-- bare si hei verden i svart tekst på hvit bakgrunn. Sikkert vi kan gjøre mye bedre. Og vi vil gjøre det ved å introdusere et annet språk kalles CSS. Dette også ikke et programmerings language-- ingen løkker og betingelser, eller for looper, men egentlig, bare syntaks der vi kan si, gjøre denne teksten stor. Gjør denne teksten små. Høyre justere det. Venstre justere det. Gjør det rosa. Gjør det lilla. Gjør det blå. Eller gjøre en rekke andre visuelle effekter. Og så får vi se hvordan du starter stylizing websider slik at de ser på en måte nærmere hva vi ønsker. Og til slutt, har vi faktisk ødelagt kanskje mye av TV og film for deg. Jeg trodde vi skulle ende her med vår endelige sekunder på en endelig klipp som viser deg hvordan hacking på internett fungerer. Hvis vi kunne dimme lyser en siste gang. [VIDEO PLAYBACK] -Aldri. Jeg blir hacket. -Okorsky? -No-- Nei, dette er viktig. De har allerede brent gjennom Kripos offentlig brannmur. -Vel, Isolere node og dump dem på den andre siden av ruteren. -Jeg prøver. Det har gått for fort. -OH, Er ikke bra. De bruker vår forbindelse [Uhørbart] denne databasen. Bryte den. -Jeg Kan ikke. Det er et poeng angrep. Han eller hun er bare gå etter min maskin. -Det er ikke mulig. Det er DOD nivået mitt kryptering. Det vil ta måneder å get-- -Hei, Hva er det? En video game? -Nei Tony, vi får hacket. -Hvis De får i Abby datamaskin, hele NCIS nettverket er neste. -Jeg Kan ikke stoppe ham. Gjør noe McGee. -Jeg Har aldri sett kode som dette. -Å. -Hvor Er det? Abby? -Jeg Har ikke gjort noe. Jeg trodde du gjorde. -Nei. -Jeg gjorde. [END PLAYBACK] DAVID J. MALAN: Den beste delen er to personer skrive på tastaturet samtidig. Så det er det for CS50. Vi holder oss rundt etter kontortid. Og vi ser deg neste gang. [MUSIC SPILLE - "SEINFELD tema"] Dette er CS50. Jeg ønsker ikke å være en pirat. SPEAKER 2: Yarr David. Det er en fin dublett du være seg. Mange av forliket i at puff.