DOUG LLOYD: Als je hebt het kijken naar deze video's in de volgorde waarin we raden, We staan ​​op het punt om te ondergaan beetje een cultuuromslag. Want nu gaan we om te beginnen praten over het internet en web technologieën. Dus tot nu toe, we hebben echt gedaan veel C. En als we geweest runnen van onze programma's, we hebben hen loopt vanaf de opdrachtregel. Dat is vrij veel hoe de gebruikers zijn interactie met het programma dat we schrijven. Ze halen iets te vragen, iets gebeurt in het terminal-venster, en dan is het gedaan. Soms kun je hardnekkige heb data die daarna overblijft. Maar dat is vrij veel. Het is op de opdrachtregel. Het is de enige manier waarop de gebruiker kan interageren. Vanaf dit punt naar voren, we gaan beginnen overgang zodat gebruikers kunnen omgaan met onze websites. Dus we gaan schrijven websites, die niet in C zijn geschreven, maar zijn geschreven in een verscheidenheid van andere programmeertalen, zoals PHP, en het is een soort helper talen, HTML, CSS, en dergelijke. Dus we gaan om te beginnen praten over die dingen. Voordat we in het web zelf programmeren Ik denk dat het waarschijnlijk een goed idee om een ​​stap terug te nemen en te praten over hoe computers en mensen communiceren via het web. Dus deze video is echt een primer, een eenvoudige gids, op het internet. Nu, het nadeel hier is de CS50 is geen netwerk klasse. Dus wat we gaan praten hier over is vrij hoog niveau. We gaan niet krijgen in een laag niveau details van hoe dit allemaal werkt. Als je geïnteresseerd bent in dat, zou ik sterk raden het nemen van een klasse op computernetwerken. En we kunnen zelfs zeggen leugentje om bestwil of twee gewoon voor het aanbrengen van de algemeen begrip duidelijk. Dus met dat gezegd, laten we praten over hoe we omgaan met het internet. Dus hier zijn we. Hier is ons. We zijn erg uit naar krijgen op het internet, die zoals we allemaal weten, is boordevol katten. Nu hebben we alleen maar aan te sluiten op internet als dit? Nou, waarschijnlijk niet. Intuïtief weet je die, zeg bijvoorbeeld, wanneer u uw Wi-Fi wijzigen netwerk op uw computer, zie je niet een zogenaamde internet tenzij die net zo gebeurt om de naam van uw lokale Wi-Fi zijn. Rechts? Het is meestal iets als thuis. Of als je op het werk, is het misschien zij de naam van uw bedrijf. Er is niet alleen een optie genaamd internet. En zo iets of wat er bestaan ​​tussen het moment waarop we willen verbinden met het internet. Wat zijn sommige van die dingen? Nou, we gaan om te praten over dat. We zijn ook gaan praten over enkele belangrijke zaken we nodig hebben om te kunnen om verbinding met het internet. De eerste van deze er is een IP-adres. Dus je hebt waarschijnlijk gehoord het IP-adres term voor. Wat betekend het? Nou, een IP-adres is in feite een unieke identificatie van de computer op een netwerk. Net als elk huis of kantoor heeft een uniek adres waaraan kan men een e-mail te sturen. Evenzo, elke computer indien gegevens wil ontvangen of verzenden van gegevens, moet een uniek adres hebben. Zodat wanneer informatie wordt verzonden of ontvangen, het wordt van verzonden of ontvangen naar de juiste locatie. Deze adressering regeling, zoals ik zei, heet IP-adressering. IP staat voor Internet Protocol, die we praten over weer kort. Nu, wat doet IP-adressering eruit? Nou, de regeling in feite was, toen het eerst werd uitgevoerd, elke computer te een uniek 32-bit adres. Dat is een veel bits. Dat is 4 miljard adressen. En in het algemeen, in plaats van hexadecimale notatie, die we eerder hebben gebruikt in het kader van pointers in C om te praten over adressen, we meestal vertegenwoordigen IP adressen in een beetje meer van een mens vriendelijke manier, die hen vertegenwoordigen vier clusters van 8 bits weergegeven als decimale getallen. Omdat mensen niet vaak spreken hexadecimale, tenzij je het programmeren. Maar de mensen die gebruik maken van het internet niet noodzakelijk programmeurs. En dus maakt het gemakkelijk en toegankelijk voor hen om te kunnen praten over wat hun IP-adres is in het geval ze misschien moeten roepen iemand om iets op te lossen, het is beter om het te maken in de meer gemeenschappelijke conventionele decimaal getal format. En zo een IP-adres ziet er net vrij veel als deze, w.x.y.z, waarbij elk van die brieven vertegenwoordigt een niet-negatieve waarde in het bereik van 0-255. Bedenk dat een 8-bits getal kan houden 256 verschillende waarden. En dat is dus de reden waarom ons assortiment is 0-255. En we hebben vier clusters van 8 bits voor een totaal van 32 bits. En zo een IP-adres zou kunnen kijken iets als dit. Dit is een soort van een generiek standaard IP-adres, 123.45.67.89. Ze zijn in het bereik van 0 tot 255, dus dat is een geldig IP-adres. Hier aan de Harvard University, die allemaal onze IP-adressen beginnen met 140,247. Dat is gewoon de manier waarop het IP- adressen in dit geografisch gebied zijn toegewezen. En dus dit kan een IP adres die zou kunnen bestaan ​​hier op Harvard. Dus zoals ik al zei, als elke IP-adres is 32 bits, we hebben ongeveer 4 miljard een beetje uit te geven, meer dan 4 miljard. Maar we kunnen soort zien een probleem, toch? Wat is de wereldbevolking op dit moment? Nou, het is ergens ten noorden van 7 miljard mensen. En in de westerse wereld althans, de meeste mensen hebben meer dan één apparaat staat internet connectiviteit. Ik heb één hier. En ik heb nog een in mijn zak. En ik heb een terug in mijn kantoor. En dus dat is drie. En dat betekent niet eens tellen de degenen die ik thuis heb, ook. En dat is een beetje een probleem, toch? We hebben ten minste 7 miljard mensen en slechts 4 miljard adressen. En elk apparaat wordt verondersteld uniek te identificeren. We hebben een aantal oplossingen ontwikkeld om te gaan met dit probleem, zoiets als een eigen IP-adres, dat we niet van plan om in deze video. Maar in principe, Voorts kunnen web, internet, van de soort nep een klein beetje dat u een unieke adres door het hebben van privé-adressen en dan trechtervorming hen door een enkel adres, dat wordt gedeeld door verschillende computers. Maar dat is echt niet een lange termijn oplossing. Zelfs dat is vast niet zal eeuwig duren. En dus moeten we een ander te hebben manier van omgaan met dit. Dus zoals ik al zei, we hadden over 4 miljard. Maar dat gaat niet zijn goed genoeg, toch? Dus de wijze waarop zij werd er besloten dat we zal gaan is om langer te IP-adressen te maken. In plaats van 32-bit adressen, we zijn gaan naar 128-bit adressen. Dus in plaats van 4 miljard adressen, we gaan dat enorm aantal adressen, die 340 miljard miljard miljard miljard, dus veel van de IP-adressen. En deze nieuwe regeling wordt IPv6 genoemd wordt over het algemeen hoe het is bedoeld. De oude regeling zijn IPv4. Het is een beetje een probleem in dit probleem is bekend voor een hele lange tijd. En je zult dit veel in de zien context van computers en informatica. We zijn goed in het anticiperen op problemen. Maar we zijn slecht in het omgaan met hen ook al weten we over hen. Dus IPv6 is al een tijdje. En pas in de laatste paar jaar hebben we eigenlijk begonnen met de geleidelijke invoering van deze IPv6-adressen uit te faseren de IPv4-adressen. Maar sommige plaatsen hebben ze. En ze lijken een normale IP-adres. Maar ze zijn een stuk langer. Dus in plaats van nu met vier clusters van 8 bytes voor uw adres, we hebben nu acht clusters van 16 bytes. En 8 keer 16 is 128. En we deze vertegenwoordigen in de minder conventionele hexadecimale vorm. Omdat met 16-bits getallen betekent dat in plaats van een bereik van 0 tot 255, We hadden een bereik van 0 moeten 65.535. En dus met een bos van die aan elkaar geplakt zou heel moeilijk te lezen zijn. En dus hebben we meestal gebruik hex gewoon uit gemak. En zo een typische IPv6-adres kan er ongeveer zo uitzien. Het is zeker een stuk langer dan het IPv4-adres we eerder hebben gezien. Maar dit zou een geldig IPv6 adres. Deze is ook om IPv6-adres. Dit gebeurt te behoren tot Google. En let er is een stelletje nullen daar. Soms zijn deze adressen kan zo lang te krijgen. En omdat we nog steeds vrij vroeg in IPv6, Soms kunnen er grote stukken nullen in daar dat we niet nodig hebben. Als je dit leest hardop, het 2001.4860.4860.0.0.0.0.8844. Het is een beetje veel, toch? Dus als je een heleboel nullen, zou je soms zie een IPv6-adres als dit, waar ze laat de nullen en gebruik een dubbele dubbele punt in plaats. Dit is OK, dat wel. Omdat we weten dat er verondersteld acht verschillende stukjes. En dus impliciet, zien we vier. Dus we weten dat er moet bestaan ​​uit vier sets nullen als dit, dat vul het in. Dus soms, zou je zien een IPv6-adres niet hebben acht gescheiden brokken zoals wij hier doen. Je zou zien kijken als dit. En dat betekent dat alles wat je niet ziet in tussen wanneer dat dubbele punten wordt is gewoon nul gescheiden. Dus ok. We weten een beetje meer over IP-adressen nu. Maar hoe kunnen we ze te krijgen? We kunnen niet kies gewoon degene die we willen. Als we dat deden, zouden we uiteindelijk vechten iemand van hetzelfde IP-adres. Of iemand zou kunnen hebben eerder gekozen voor het. Als we proberen en neem het, we gaan te lopen in een beetje een probleem. En dus kunnen we niet gewoon halen het IP-adres dat we willen. Dus de manier waarop we een IP-adres ergens tussen onze computer en de internet, die grote internet die er zijn, er is iets genaamd een DHCP-server, een Dynamic Host Configuration Protocol server. Het is een grote hap van de tekst. Maar echt alles wat het doet is het wijst u een IP-adres. DHCP-server heeft een lijst van lost dat het rechtsgeldig kan toewijzen. En het geeft je een. Dat is zo'n beetje alles wat er is om het. Nu voor DHCP, deze taak het toewijzen van adressen daalde tot een systeembeheerder. Dus een echte persoon zou hebben om uw computer handmatig toewijzen en adres wanneer u verbonden met een netwerk. Dus DHCP automatiseert gewoon soort van deze proces van het geven van een IP-adres. Maar dat is hoe je het krijgen. Het is gewoon een programma lopen ergens tussen u en het internet dat een bank van heeft IP-adressen die het kan geven. En wanneer u verbinding maakt met de netwerk, het geeft je een. Dus laten we opnieuw dit diagram. Ergens tussen u en de internet, is er een DHCP-server. OK. Dus dat is goed. Nu, laten we praten over DNS. Dus we hebben al gesproken deze IP-adressen. En we weten dat als we ga uniek te identificeren een apparaat op het internet, moet een uniek adres hebben. En we konden bezoeken, dat pakken als we wilden. Maar je hebt waarschijnlijk nooit getypt in iets als 192.168.1.0 in uw browser, toch? Je hoeft niet te typen in cijfers in uw browser. U typt meestal in leesbare namen zoals google.com of cs50.harvard.edu, toch? Die zijn niet in IP-adressen, dat wel. Dus bestaat deze dienst genaamd de Domain Name Systeem, DNS, dat IP vertaalt adressen menselijke begrijpelijke woorden of zinnen die veel meer onvergetelijk zijn dan onthouden van een reeks van vier cijfers of, binnenkort, een reeks van acht hexadecimale getallen. Dat zou echt een uitdaging zijn, toch? Denken voordat de dagen van mobiele telefoons. Je had je memoriseren uw telefoonnummers vriend. Het zou hebben gekregen moeilijk na een tijdje. En zo ook, als je wilt om een ​​bos van websites te bezoeken, je waarschijnlijk niet wilt herinner me een heleboel nummers. Je liever herinner me een heleboel woorden. Dus dit mapping, dit vertalen van sets van de nummers om mensen leesbare namen soort maakt de DNS gele pagina's van het web. En je kunt denken alsof het is gewoon een enorme lijst loopt van 0.0.0.0 alle de weg naar 255.255.255.255, die zou de hoogste possible-- dat is zijn het volledige gamma van 0s tot 255s van alle 4 miljard-ish IPv4-adressen. Ik maakte de degenen op de bovenkant en de onderkant. Maar in het midden er is in feite een IP-adres. Dus als we bezochten 74.125.202.138, blijkbaar vertaalt naar die site daar, io-- wat de heck is dat? Nou, niet elke naam die kaarten is eigenlijk duidelijk wat het is, toch? Dus soms iemand die een IP-adres bezit misschien hun gastheer iets te noemen dat ze eigenlijk niet. Bijvoorbeeld dat het IP-adres als u ging er, is eigenlijk alleen maar google.com. Maar Google heeft een veel van verschillende servers. En ze kunnen ze niet allemaal noemen google.com. Dus ze hebben hun eigen intern systeem voor het vertalen google.com naar wat eigenlijk server is verbonden met dat IP adres. En dan is er nog een systeem dat bestaat tussen dat gobbledygook vertalen hier om google.com. Maar we zullen niet in dat krijgen. En zo vervolgens IPv6s, we ook gaan een gele pagina's dat zal een stuk groter zijn. En evenzo, in de midden er-- het was moeilijk om een ​​IPv6 vinden mailadres dat legitiem was. Maar ik vond een voor Google. Maar het is de Ierse website van Google. Maar als je naar dat IPv6-adres, Als uw browser was IPv6 staat, dat zou u naar Google's Irish homepage. Dus daar ga je. Maar dit is niet helemaal waar, toch? Dit systeem lijkt omslachtig, toch? Als er een enorme lijst van 4 miljard dingen te moeten opzoeken, dat is vrij groot. Er is geen gele pagina van de wereld, toch? Als u nog steeds de gele pagina's geleverd aan u-- Ik heb de mijne de andere dag, en ik gerecycled het. Maar als je krijgt de gele pagina's bij u afgeleverd, je hoeft niet een boek dat is elke krijgen telefoonnummer dat bestaat op de planeet, toch? Je krijgt een overzicht van de lokale telefoonnummers, degene die je het meest kans om te bellen. En dat is eigenlijk wat DNS is. Als je erover nadenkt, DNS echt de lokale gele pagina's. En grote DNS-servers zoals google.coms, ze zijn eigenlijk alleen maar meer zoals bibliotheken die een kopie van alle lokale gele pagina's of alle lokale DNS verslagen. Dus er is echt niemand repository van de volledige DNS van het internet, net alsof er geen één gele bladzijden van de wereld. Er zijn al deze lokale kleine schaal DNSs die er bestaan. En er zijn diensten die aggregeren ze samen. Maar afhankelijk van wat kleinere DNS systemen updaten van hun gegevens, zodat ze hebben de meest accurate informatie. Dus nogmaals, deze analogie is groot aggregerend DNS systemen zijn als bibliotheken die een exemplaar hebben elke gele bladzijden van de wereld. Ze doen zich niet werken die boeken. Zij zijn afhankelijk van de boeken komen, zodat ze de gegevens bij te werken als ze het nodig hebben. Dus het DNS-systeem is niet een gigantische blok. Het is gedecentraliseerd over vele servers. Dus nu we weten dat er ergens tussen ons en het internet bestaat er een DNS-server en een DHCP-server. Nu, access points, wat onze access points? Nou, access points je waarschijnlijk redelijk bekend met uit eigenlijk verbinding met het internet. Dat is het netwerk dat u kiest, het huis of uw werk netwerk of wat heb je. En ik ben het generaliseren Het concept van een toegangspunt hier voor de doeleinden van deze video. Maar er zijn eigenlijk een heleboel dingen die kan worden opgerold in de access points. Er zijn begrippen routers, waarvan is een soort van een algemene term die we gebruiken. Maar er zijn schakelt ook en dingen die eigenlijk heet access points die los staan ​​van zijn dit algemene concept van een toegangspunt punt. Maar eigenlijk wat er gebeurt is met IPv4, I zei dat we dit concept van privé-adressen, toch? En in plaats van elke machine een uniek IP adres dat we uit hebben gelopen, omdat we zijn meer dan 4 miljard apparaten proberen om verbinding te maken met internet, wat we doen is in plaats daarvan een toewijzen IP-adres van een router. Die router of access point gewoon in uw huis, bijvoorbeeld. En de taak van de router om soort fungeren als een verkeersagent, zodat iedereen die verbonden is die router hetzelfde IP gebruiken richten om eruit te komen. Slaat dat ergens op? Zodat iedereen bij u thuis heeft een eigen IP-adres. Ze kunnen geen verbinding maken met de internet, of het internet in plaats kan niet tot hen spreken, door middel van die privé-adres. Ze kunnen alleen maar om hen te spreken door het adres van de router. En het is de router taak om informatie te nemen dat je het verzenden van de router en direct naar de juiste plaats en voor informatie die komt in de router de router te sturen naar je. Dus de routers zijn echt de apparaten hier-- bijzonder een router in uw huis, de meest voorkomende soort van het gebruik geval voor de meeste people-- dat heeft het publiek IP-adres. Dat is het apparaat dat is aangesloten op het internet. En u verbinding met de router informatie flow erdoor op uw rekening. Zoals ik al zei, een modern thuisnetwerk, de router en switch en access point zijn allerlei gebundeld tot in een enkel apparaat. Soms is een modem gebundeld in daar ook. Dat is meestal gewoon heet een router. Maar het is echt allemaal die dingen samen. Grootschalige zakelijke netwerken of zogenaamde Wide Area Networks, WANS, eigenlijk houdt deze apparaten te scheiden. Ze hebben een schakelaar. Ze hebben routers. Ze hebben meerdere access points. Bijvoorbeeld, in een universitaire je dingen te zien dat eruit zogenaamde routers gemonteerd zijn allemaal rond de campus. Dat zijn alle toegangspunten die daaruit in routers, switches, et cetera, om informatie doorgeven. Omdat deze netwerken zo groot dat een enkel toegangspunt kan niet voor het grote gebied. En dus deze grote netwerken, zakelijke netwerken, et cetera, splitsen deze in afzonderlijke inrichtingen, zodat het netwerk en de omvang en groeien als nodig. Dus nogmaals, ergens tussen ons en het internet, hebben we een access point. En dat is wat we verbinden. En door er, we kunnen krijgen tot het internet. Zoals ik al zei aan het begin van deze video, dit is niet een cursus over netwerken. Dus dit is niet het hele verhaal. En ik heb soort verdoezeld het. En misschien heb ik je wegging zelfs een beetje in de war wat sommige van deze dingen zijn. Maar dat is OK. We niet het hele verhaal nodig. Het is genoeg voor ons om te bewegen weten forward maar eigenlijk een beetje over hoe het internet werkt. Dus wat we weten is dat we deze private netwerken in ons huis. En we verbinden met een router. En dat de router is aangesloten tot het internet in het algemeen. Maar wat is het internet in het algemeen? Ik blijf zeggen, maar wat is het? Nou, het is eigenlijk gewoon al deze afzonderlijke netwerken in mijn huis, en in uw huis, en bij elke andere huis, die met elkaar zijn verbonden. Het is een onderling verbonden netwerk, een inter-net. Dus in plaats van te denken over het internet als deze gigantische wolk, dit etherische ding dat bestaat die er zijn, het is eigenlijk gewoon een verbinding tussen al deze netwerken. Dus hier gaan we. We hebben onze lokale netwerk. En we zijn niet de enige persoon waarschijnlijk op ons lokaal netwerk proberen om het internet te gebruiken. Er is waarschijnlijk een aantal van ons proberen binnen te komen. En we zijn niet het enige netwerk dat bestaat in de wereld, toch? Er zijn andere netwerken, ook dat verbinding probeert te maken met het internet. Maar het internet is niet, weer een aparte entiteit. Het is gewoon een set van regels die het mogelijk maken deze netwerken, deze kleine netwerken de blauwe, paarse, en de rode netwerk Hier communiceren met elkaar. Dus er is geen ding ze allemaal te sluiten op. Ze zijn allemaal verbonden aan elkaar, toch? En ga zo maar ergens op deze netwerken bestaat diensten dat we eigenlijk willen. Dus misschien in de blauwe netwerk is waar Google woont. En in de paarse netwerk is waar Facebook woont. En in de rode netwerk, nou ja, misschien dat is waar al die katten zijn. En dus als we willen krijgen informatie over katten, We doorkruisen deze keten van netwerken om de informatie die we willen. En hier, ik heb voorgesteld het netwerk als geheel kunnen met elkaar spreken. En we kunnen alleen maar praten met het netwerk. Maar het netwerk kan niet praten terug naar ons. Maar dat is niet waar, toch? Dit is allemaal een tweerichtingsverkeer. Informatie kan doorstromen netwerken heen en weer. Hoe werkt dat? Nou, het internet is echt een systeem van protocollen. En we gaan beginnen te praten over wat deze protocollen zijn in de toekomst video's. Maar nogmaals, het internet is niet een aparte zaak. Het is een set van regels die bepaalt hoe netwerken te communiceren, deze kleine netwerken, deze lokaal netwerk dat we gewend zijn, de mensen in ons huis, de mensen op onze school, de mensen bij ons werk, Alle delen van het netwerk. En hoe deze netwerken interconnect en praten met elkaar, dat is eigenlijk wat de internet is alles over. Dus laten we, in een toekomstige video, praten over een aantal van de protocollen omvatten het internet om hopelijk geven u een beetje meer van een goed afgerond begrip. Ik ben Doug Lloyd. Dit is CS50.