DOUG LLOYD: Hvis du har været at se disse videoer i den rækkefølge, som vi anbefaler, vi er ved at gennemgå lidt af en kultur skift. Fordi nu, vi kommer til at starte taler om internettet og web teknologier. Så indtil nu, vi har virkelig gjort en masse C. Og når vi har været kører vores programmer, vi har kørt dem fra kommandolinjen. Det er temmelig meget, hvordan brugerne har blevet interagere med programmerne at vi skriver. De pluk noget at bede, noget sker i terminalvinduet, og så det er gjort. Nogle gange har du måske vedholdende data, der er tilbage bagefter. Men det er temmelig meget det. Det er på kommandolinjen. Det er den eneste måde, at brugeren kan interagere. Fra dette punkt fremad, vi kommer til at starte som overgår så brugerne kan interagere med vores hjemmesider. Så vi kommer til at skrive hjemmesider, som ikke er skrevet i C, men er skrevet i en række andre programmeringssprog, herunder PHP, og det er slags helper sprog, HTML, CSS og lignende. Så vi kommer til at starte taler om disse ting. Før vi kommer ind web programmering selv, Jeg synes det er nok en god idé at tage et skridt tilbage og tale om, hvordan computere og mennesker interagerer via internettet. Så denne video er virkelig en primer, en grundlæggende vejledning, til internettet. Nu det forbehold her er CS50 er ikke et netværk klasse. Så det, vi kommer til at tale om her, er temmelig højt niveau. Vi kommer ikke til at komme ind i nogen lavt niveau detaljer om, hvordan alle disse ting fungerer. Hvis du er interesseret i det, jeg vil kraftigt anbefale at tage en klasse på computernetværk. Og vi kan måske endda fortælle hvid løgn eller to bare med henblik på at gøre generel forståelse klart. Så med det sagt, lad os tale om hvordan vi interagerer med internettet. Så her er vi. Her er os. Vi er temmelig ser frem til komme på internettet, som som vi alle ved, er propfyldt fuld af katte. Nu skal vi bare forbinde til internettet som denne? Nå, nok ikke. Intuitivt, du ved at, siger for eksempel, når du ændrer din Wi-Fi netværke på din computer, du ikke kan se en kaldet internet medmindre der bare så sker at være navnet på din lokale Wi-Fi. Højre? Det er normalt noget lignende hjem. Eller hvis du er på arbejde, er det måske være navnet på din virksomhed. Der er ikke kun én valgmulighed kaldet internettet. Og så noget eller nogle tingene eksisterer mellem når vi ønsker at oprette forbindelse til internettet. Hvad er nogle af de ting? Nå, vi kommer til at tale om det. Vi er også vil tale om nogle af de vigtige ting vi har brug for at være i stand til at forbinde til internettet. Og den første af disse ting er en IP-adresse. Så du har sikkert hørt udtrykket IP-adresse før. Hvad betyder det? Tja, en IP-adresse er dybest set en entydig identifikator af din computer på et netværk. Ligesom ethvert hjem eller kontor har en unik adresse som man kunne sende en mail. Tilsvarende hver computer, hvis det ønsker at modtage data eller sende data, skal have en unik adresse. Så når oplysningerne er sendt eller modtaget, det bliver sendt fra eller modtaget til den korrekte placering. Denne adressering ordning, som jeg sagde, kaldes IP-adressering. IP er står for Internet Protocol, som vi vil tale om igen om kort tid. Nu, hvad betyder IP-adressering ud? Nå, at ordningen var dybest set, da den først blev gennemført, at give hver computer en unik 32-bit adresse. Det er en masse bits. Det er 4 milliarder adresser. Og generelt stedet for at anvende hexadecimal notation, der vi har brugt tidligere i forbindelse med pejlemærker i C for at tale om adresser, vi normalt repræsenterer IP adresser i lidt mere af en human venlige måde, der repræsenterer dem som fire klynger af 8 bit repræsenteret som decimaltal. Fordi mennesker ikke taler ofte hexadecimal, medmindre du programmere. Men folk, der bruger internettet er ikke nødvendigvis programmører. Og så gør det let og tilgængelige for dem at være i stand til at tale om, hvad deres IP-adresse er i tilfælde af de måske brug for at ringe op nogen at fejlfinde noget, det er bedre at gøre det i de mere fælles konventionelle decimaltal format. Og så en IP-adresse bare ser temmelig meget som dette, w.x.y.z, hvor hver enkelt af disse breve repræsenterer en ikke-negativ værdi i området fra 0 til 255. Erindre, at et 8-bit tal kan indeholde 256 forskellige værdier. Og så derfor vores sortiment er 0 til 255. Og vi har fire klynger af 8 bits til en grand alt 32 bit. Og så en IP-adresse måske se noget som dette. Det er sortering af en generisk standard-IP-adresse, 123.45.67.89. Alle af dem er i området fra 0 til 255, så det er en gyldig IP-adresse. Her på Harvard University, som alle vores IP adresser starter med 140,247. Det er bare den måde, at IP adresser i dette geografiske område har fået tildelt. Og så dette kunne være en IP-adresse der kunne eksistere her på Harvard. Så som jeg sagde, hvis hver IP-adresse er 32 bit, har vi omkring 4 milliarder at give ud, lidt mere end 4 mia. Men vi kan slags se et problem, ikke? Hvad er verdens befolkning lige nu? Tja, det er et sted nord for 7 milliarder mennesker. Og i den vestlige verden I det mindste de fleste mennesker har mere end én enhed stand til internet-forbindelse. Jeg har en lige her. Og jeg har en anden i min lomme. Og jeg har en tilbage på mit kontor. Og så det er tre. Og det er ikke engang tælle dem, jeg har derhjemme, også. Og så er sådan et problem, ikke? Vi har mindst 7 milliarder mennesker og kun 4 milliarder adresser. Og hver enhed er meningen kan identificeres entydigt. Vi har udviklet nogle løsninger at behandle dette problem, noget, der hedder en privat IP-adresse, som vi ikke kommer til at komme ind i denne video. Men dybest set, det giver fremme web, internettet, at slags falske ud en lille smule, at du har en unik adresse ved at have private adresser og derefter kanalisere dem gennem en enkelt adresse, hvor deles af mange forskellige computere. Men det er virkelig ikke en langsigtet løsning. Selv dette faste ikke kommer til at vare evigt. Og så er vi nødt til at have en anden måde at håndtere dette. Så som jeg sagde, havde vi omkring 4 mia. Men det kommer ikke til at være god nok, ikke? Og så den måde, at det har besluttet der er vi kommer til at beskæftige sig med dette er på en længere IP-adresser. I stedet for 32-bit-adresser, vi er nødt til 128-bit adresser. Så i stedet for 4 milliarder adresser, vi kommer at have den enorme antal adresser, hvilket er 340 milliarder milliarder milliarder milliarder, så en masse af IP-adresser. Og denne nye ordning hedder IPv6 er almindeligt hvordan det er nævnt. Den gamle ordning bliver IPv4. Det er lidt af et problem i at dette problem har været kendt om for en virkelig lang tid. Og du vil se det meget i forbindelse med computere og computing. Vi er gode til at foregribe problemer. Men vi er dårlige til at håndtere dem selv om vi ved om dem. Så IPv6 har eksisteret i et stykke tid. Og kun i de sidste par år har vi faktisk begyndte indfasning disse IPv6-adresser at udfase IPv4-adresser. Men nogle steder har dem. Og de ser ens til en almindelig IP-adresse. Men de er meget længere. Så i stedet for nu har fire klynger af 8 bytes til din adresse, vi nu har otte klynger af 16 bytes. Og 8 gange 16 er 128. Og vi repræsenterer disse i mindre konventionelle hexadecimal form. Fordi der 16-bit tal betyder, at stedet for at være et område fra 0 til 255, Vi ville have en række 0 til 65.535. Og så har en flok af disse hænger sammen ville være meget vanskelig at læse. Og så vi normalt bruger hex lige ud af bekvemmelighed. Og så en typisk IPv6-adresse kunne se noget som dette. Det er helt sikkert en del længere tid end IPv4-adressen, vi har set før. Men dette ville være en gyldig IPv6-adresse. Denne ene handler også om IPv6-adresse. Denne ene sker for at tilhøre Google. Og varsel der er en bundt af nuller der. Undertiden disse adresser kan få så længe. Og da vi er stadig temmelig tidligt i IPv6, nogle gange kan der være store bidder af nuller i der, at vi ikke har brug for. Hvis du læser dette højt, det er 2001.4860.4860.0.0.0.0.8844. Det er lidt af et parti, ikke? Så hvis du ser en flok nuller, kan du nogle gange se en IPv6-adresse som denne, hvor de udelade nuller og bruge en dobbelt kolon i stedet. Det er OK, selv om. Fordi vi ved, at der er formodes at være otte forskellige bidder. Og så indirekte, ser vi fire. Så vi ved, at der skal være fire sæt af nuller som denne, der udfylder det i. Så nogle gange, kan du se en IPv6-adresse, der ikke har otte adskilte bidder som vi gør her. Du kan se det ser sådan ud. Og det betyder bare, at alt det, du ikke kan se i mellem hvor at dobbelt kolon er bare nul adskilt. Så ok. Vi ved lidt mere om IP-adresser nu. Men hvordan får vi dem? Vi kan ikke bare vælge den, vi ønsker. Hvis vi gjorde det, ville vi ender kampene nogen for den samme IP-adresse. Eller nogen har måske valgt det tidligere. Hvis vi prøver og tage det, vi skal at løbe ind i lidt af et problem. Og så vi kan ikke bare vælge IP-adresse, som vi ønsker. Så den måde, at vi får en IP-adressen er et sted mellem vores computer og internet, det store internet derude, der er noget, der hedder en DHCP-server, en Dynamic Host Configuration Protocol server. Det er en stor mundfuld af tekst. Men virkelig alt det gør, er det tildeler dig en IP-adresse. Din DHCP-server har en liste over adresser, at det gyldigt kan tildele. Og det giver dig en. Det er temmelig meget alt der er til det. Nu, før DHCP, denne opgave tildele adresser faldt til en systemadministrator. Så en faktisk person ville have til manuelt at tildele din computer og adresse, når du forbundet til et netværk. Så DHCP bare slags automatiserer dette proces med at give dig en IP-adresse. Men det er, hvordan du får det. Det er bare et program kørende et sted mellem dig og internettet, der har en bank af IP-adresser, at det kan give ud. Og når du opretter forbindelse til netværk, det giver dig en. Så lad os revidere dette diagram. Et eller andet sted mellem dig og internettet, der er en DHCP-server. OK. Så det er godt. Nu, lad os tale om DNS. Så vi har talt, selv om disse IP-adresser. Og vi ved, at hvis vi er kommer til entydigt at identificere en enhed på internettet, er det skal have en unik adresse. Og vi kunne besøge det tage fat, hvis vi ønskede at. Men du har sikkert aldrig har skrevet i noget som 192.168.1.0 i din browser, ikke? Du behøver ikke skrive i tal i din browser. Du normalt skriver i menneskeligt læsbare navne ligesom google.com eller cs50.harvard.edu, højre? De er ikke IP-adresser, selv om. Så eksisterer denne service kaldet Domain Name System, DNS, der oversætter IP adresser til human forståelige ord eller sætninger, der er langt mere mindeværdige end at huske et sæt af fire tal eller, hurtigt, et sæt på otte hexadecimale tal. Det ville være virkelig udfordrende, ikke? Tænk over før dage af mobiltelefoner. Du havde din Lagring af dine vens telefonnumre. Det kunne have fået hård efter et lille stykke tid. Og på samme måde, hvis du vil at besøge en masse hjemmesider, du sandsynligvis ikke ønsker at huske en masse numre. Du hellere huske en masse ord. Så denne kortlægning Dette oversætte, af sæt tal til læsbar navne slags gør DNS den gule sider af internettet. Og du kan tænke på det, som om det er bare en enorm liste løber fra 0.0.0.0 alle vejen ned til 255.255.255.255, der ville være den højeste possible--, der er hele spektret fra 0s til 255s af alle 4 milliarder-ish IPv4-adresser. Jeg gjort op dem på toppen og bunden. Men den ene i midten er der er faktisk en IP-adresse. Så hvis vi besøgte 74.125.202.138, tilsyneladende der oversætter til dette websted der, io-- hvad dælen er det? Nå, ikke alle navne, der kortlægger er faktisk klart, hvad det er, ikke? Så nogle gange nogen der ejer en IP-adresse kunne navngive deres vært noget at de er faktisk ikke. For eksempel, at IP-adresse, hvis du gik der, er faktisk bare google.com. Men Google har en masse forskellige servere. Og de kan ikke kalde dem alle google.com. Så de har deres egne internt system til at oversætte google.com til uanset server faktisk der er tilsluttet samme IP-adresse. Og så er der en anden system, der eksisterer mellem at oversætte det volapyk her til google.com. Men vi vil ikke komme ind i denne. Og tilsvarende for IPv6s, vi også vil at have en gule sider der vil være meget større. Og tilsvarende, i midten there-- det var svært at finde en IPv6 adresse, som var legitim. Men jeg fandt en til Google. Men det er Googles irske hjemmeside. Men hvis du gik til, at IPv6-adresse, Hvis din browser var IPv6-stand, der ville bringe dig til Googles irske hjemmeside. Så der du går. Men det er ikke helt rigtigt, ikke? Dette system virker besværligt, ikke? Hvis der er en enorm liste over 4 milliard ting at have til at se op, der er temmelig stor. Der er ingen gule sider af verden, ikke? Hvis du stadig får den gule sider leveret til du-- Jeg fik min den anden dag, og jeg bare genbrugt det. Men hvis du får det gule sider, der leveres til dig, du får ikke en bog, der er hver telefonnummer, der eksisterer på planeten, højre? Du får en liste over de lokale telefonnumre, dem, du er mest tilbøjelige til at kalde. Og det er faktisk, hvad DNS er. Hvis du tænker over det, DNS er virkelig de lokale gule sider. Og store DNS-servere Ligesom google.coms, de faktisk bare mere som biblioteker, har en kopi af alle de lokale gule sider eller alle de lokale DNS-poster. Så der er virkelig ingen repository af den fulde DNS af internettet, ligesom der er ingen gule sider i verden. Der er alle disse lokale små skala DNSs der findes derude. Og der er tjenester, som samle dem sammen. Men de er afhængige af dem, mindre DNS-systemer opdatere deres oplysninger, så de har de mest præcise oplysninger. Så igen, denne analogi er stort aggregerende DNS systemer er ligesom biblioteker, der har en kopi af hver gule sider i verden. De gør ikke selv opdatere disse bøger. De er afhængige af de bøger, der kommer ind, så de kan opdatere oplysningerne hvis de har brug for det. Så DNS-systemet ikke er en kæmpe blok. Det er decentraliseret på tværs mange, mange servere. Så nu ved vi, at et eller andet sted mellem os og internettet der findes en DNS server samt en DHCP-server. Nu adgangspunkter, hvad vores adgangspunkter? Nå, adgangspunkter du sandsynligvis temmelig kender fra faktisk at forbinde til internettet. Det er det netværk, du vælger, hjemmet eller dit arbejde netværk eller hvad har du. Og jeg generalisere den Begrebet et adgangspunkt her med henblik på denne video. Men der er faktisk en masse ting, som kan rulles op i adgangspunkter. Der er begreberne routere, som er sortering af en generel betegnelse, som vi bruger. Men der er også skifter og tingene faktisk kaldt adgangspunkter, der er adskilt fra denne generelle begrebet adgang punkt. Men dybest set, hvad sker, er med IPv4, jeg sagde vi har dette koncept af private adresser, ikke? Og i stedet for hver maskine have en unik IP-adresse, som Vi er løbet tør for, fordi vi er over 4 milliarder enheder forsøger at forbinde til internettet, hvad vi gør i stedet tildele en IP-adresse til en router. At router eller et adgangspunkt bare i dit hjem, for eksempel. Og routerens job som til slags fungere som en trafik cop, tillader alle, der er tilsluttet denne router til at bruge den samme IP tage fat for at komme ud. Giver det mening? Så alle i dit hjem har en privat IP-adresse. De kan ikke oprette forbindelse til internettet, eller på internettet snarere kan ikke tale til dem, gennem at privat adresse. De kan kun tale til dem gennem adressen i routeren. Og det er routerens opgave at tage information at du sender routeren og rette den til det korrekte sted og information, der kommer i routeren for routeren til at sende den til dig. Så routere er virkelig enheder her-- især en router i dit hjem, er den mest almindelige form af brugen tilfældet for de fleste people-- der har den offentlige IP-adresse. Det er den enhed, der er forbundet til internettet. Og du opretter forbindelse til routeren at have informationsstrømmen gennem det på dine vegne. Som jeg sagde, et moderne hjem netværk, router og switch og access point er alle slags bundtet op i en enkelt enhed. Nogle gange kan en modem er bundtet derinde så godt. Det er normalt blot kaldes en router. Men det er virkelig alle disse ting sammen. Store skala virksomhedsnetværk eller såkaldte Wide Area Networks, WAN, faktisk holde disse enheder adskilt. De har en kontakt. De har routere. De har flere adgangspunkter. For eksempel ved en universitet du vil se tingene at ligne såkaldte routere monteret er alle omkring campus. Disse er alle adgangspunkter, der løber i routere, switches, et cetera, at passere oplysninger sammen. Fordi disse netværk er så store, at et enkelt adgangspunkt kan ikke dække den store område. Og så disse store netværk, virksomhedsnetværk, et cetera, opdele disse i separate enheder, så netværket og omfang og vokse, hvis nødvendigt. Så igen, et sted mellem os og internettet, har vi et adgangspunkt. Og det er hvad vi forbindelse til. Og gennem der, vi kan få til internettet. Som jeg sagde i begyndelsen af ​​denne video, dette er ikke et kursus i netværk. Så dette er ikke hele historien. Og jeg har slags tilsløret det. Og måske jeg har forladt dig selv en lille smule forvirret om, hvad nogle af disse ting er. Men det er OK. Vi har ikke brug for hele historien. Det er nok for os at vide bevægelse frem lige dybest set en lille smule om, hvordan internettet fungerer. Så det, vi ved er, at vi har disse private netværk på vores hus. Og vi opretter forbindelse til en router. Og at routeren er tilsluttet til internettet som helhed. Men hvad er internettet som helhed? Jeg bliver ved at sige dette, men hvad er det? Tja, det er egentlig bare alle disse individuelle netværk på mit hus, og på dit hus, og på alle andre Huset, der er forbundet med hinanden. Det er et sammenkoblet netværk, en inter-nettet. Så i stedet for at tænke om internettet som denne kæmpe sky, denne æteriske ting, der eksisterer derude, det er egentlig bare en forbindelse blandt alle disse net. Så her vi gå. Vi har vores lokale netværk. Og vi er ikke den eneste person sandsynligvis på vores lokale netværk forsøger at bruge internettet. Der er sikkert flere af os forsøger at komme ind. Og vi er ikke de eneste netværk der findes i verden, ikke? Der er andre netværk også, at forsøger at oprette forbindelse til internettet. Men internettet er ikke, igen, en separat enhed. Det er bare et sæt regler, der tillader disse netværk, disse små netværk, det blå, lilla, og den røde netværk her, at kommunikere med hinanden. Så der er ingen ting de er alle tilslutning til. De er alle bare tilsluttet til hinanden, ikke? Og så et sted på disse net findes tjenesterne at vi faktisk ønsker. Så måske i den blå netværk er, hvor Google bor. Og i den lilla netværk er, hvor Facebook bor. Og i den røde netværk, godt, måske det er her, alle disse katte er. Og så hvis vi ønsker at få information om katte, vi bare krydse denne kæde af netværk at få de oplysninger, vi ønsker. Og her har jeg repræsenteret netværket som alle at være i stand til at tale med hinanden. Og vi kan kun tale til netværket. Men netværket kan ikke tale tilbage til os. Men det er ikke rigtigt enten, ikke? Det er alt sammen en tovejs gade. Oplysninger kan flyde gennem netværk frem og tilbage. Hvordan gør den det? Nå, internettet er virkelig et system af protokoller. Og vi kommer til at begynde at tale om, hvad disse protokoller er i fremtidige videoer. Men igen, internettet er ikke en separat ting. Det er et sæt regler, der definerer hvordan netværk kommunikere, disse små netværk, disse lokale netværk, som vi er vant til, folk i vores hus, de mennesker på vores skole, folk på vores job, alle deler et netværk. Og hvordan disse netværk interconnect og tale med hinanden, det er, hvad det egentlig internet handler om. Så lad os, i en fremtidig video, tale om nogle af de protokoller, der omfatter internettet til forhåbentlig give dig lidt mere af en godt afrundet forståelse. Jeg er Doug Lloyd. Det er CS50.