DOUG LLOYD: As jy kyk na hierdie video's in die volgorde waarin ons beveel, ons is oor ondergaan bietjie van 'n kultuur skof. Want nou gaan ons om te begin praat oor die internet en web tegnologie. So tot nou toe, ons het regtig is besig met 'n baie C. En toe ons gewees het loop ons programme, ons is hulle hardloop uit die opdrag lyn. Dit is pretty much hoe die gebruikers is interaksie met die programme wat ons skryf. Hulle kies om iets te vinnig, iets gebeur in die terminale venster, en dan is dit gedoen. Soms kan jy aanhoudende het data wat daarna bly. Maar dit is pretty much dit. Dit is by die command line. Dit is die enigste manier waarop die gebruiker kan kommunikeer. Van hierdie punt vorentoe, ons gaan om te begin oorgang sodat die gebruikers kan interaksie met ons webwerf. So ons gaan skryf webtuistes, wat nie in C geskryf word, maar is geskryf in 'n verskeidenheid van ander programmeertale, insluitend PHP, en dit is soort van helper tale, HTML, CSS, en dies meer. So ons gaan begin praat oor die dinge. Voordat ons in web self programmering, Ek dink dit is waarskynlik 'n goeie idee om 'n stap terug te neem en praat oor hoe rekenaars en mense interaksie oor die web. So hierdie video is regtig 'n primer, 'n basiese gids, tot die internet. Nou, die caveat hier is die CS50 is nie 'n netwerk klas. So wat ons gaan om te praat oor hier is redelik hoë vlak. Ons gaan nie kry in enige lae vlak besonderhede van hoe al hierdie dinge werk. As jy belangstel in daardie, sou ek sterk beveel die neem van 'n klas op die rekenaar netwerke. En ons kan selfs vertel wit leuen of twee net vir die doeleindes van die maak van die algemene begrip duidelik. So met wat gesê het, laat ons praat oor hoe ons interaksie met die internet. So hier is ons. Hier is ons. Ons is baie uitsien na kry op die internet, wat soos ons almal weet, is propvol van katte. Nou het ons net toegang tot die internet soos hierdie? Wel, waarskynlik nie. Intuïtief, jy weet wat sê byvoorbeeld wanneer jy jou Wi-Fi verander netwerk op jou rekenaar, jy sien nie een wat geroep internet tensy daardie net so gebeur om die naam van jou plaaslike Wi-Fi wees. Reg? Dit is gewoonlik iets soos die huis. Of as jy by die werk, kan dit wees die naam van jou maatskappy. Daar is nie net een opsie genaamd internet. En so iets of 'n dinge bestaan ​​tussen wanneer Ons wil hê na konnekteer na die internet. Wat is 'n paar van daardie dinge? Wel, ons gaan om te praat oor dit. Ons gaan ook om te praat oor sommige van die belangrike dinge ons moet in staat te wees om om toegang tot die internet. En die eerste van hierdie dinge is 'n IP-adres. So jy het waarskynlik gehoor die IP-adres termyn voor. Wat beteken dit? Wel, 'n IP-adres is basies 'n unieke identifiseerder van jou rekenaar op 'n netwerk. Net soos elke huis of kantoor het 'n unieke adres waaraan mens kan 'n e-pos te stuur. Net so, elke rekenaar as dit wil ontvang data of data te stuur, moet 'n unieke adres het. Sodat wanneer inligting gestuur of ontvang, dit word uit gestuur of ontvang na die regte plek. Dit spreek skema, soos ek gesê, word genoem IP aanspreek. IP is staan ​​vir Internet Protocol, wat sal ons praat oor binnekort weer. Nou, wat beteken IP aanspreek lyk? Wel, die skema basies was, wanneer dit die eerste keer geïmplementeer word, elke rekenaar gee 'n unieke 32-bit adres. Dit is 'n baie stukkies. Dit is 4000000000 adresse. En oor die algemeen, in plaas van die gebruik van heksadesimale notasie, wat ons voorheen gebruik het in die konteks van wysers in C om te praat oor adresse, ons gewoonlik verteenwoordig IP adresse in 'n bietjie meer van 'n mens vriendelike manier, hulle verteenwoordig as vier groepe van 8 bisse verteenwoordig as desimale getalle. Omdat die mens nie gereeld praat heksadesimaal, tensy jy programmering. Maar die mense wat gebruik maak van die internet is nie noodwendig programmeerders. En so maak dit maklik en toeganklik vir hulle in staat wees om te praat oor wat hulle IP adres in die geval hulle dalk nodig om 'n beroep op iemand om iets te los, dit is beter om dit te maak in die meer algemene konvensionele desimale getal formaat. En so 'n IP-adres lyk net pretty much soos hierdie, w.x.y.z, waar elkeen van die briewe verteenwoordig 'n nie-negatiewe waarde in die reeks van 0-255. Onthou dat 'n 8-bis getal kan hou 256 verskillende waardes. En so dit is hoekom ons reeks is 0-255. En ons het vier trosse van 8 stukkies vir 'n groottotaal van 32 stukkies. En so 'n IP-adres mag lyk so. Dit is 'n soort van 'n generiese standaard IP-adres, 123.45.67.89. Almal van hulle is in die reeks van 0 tot 255, so dit is 'n geldige IP-adres. Hier by Harvard Universiteit, al ons IP adresse begin met 140,247. Dit is net die manier waarop die IP adresse in hierdie geografiese gebied toegeken. En so is dit dalk 'n IP adres wat dalk hier bestaan ​​Harvard. So as ek gesê het, as elke IP-adres is 32 stukkies, ons het oor 4000000000 'n bietjie uit te gee, meer as 4 miljard. Maar ons kan soort van sien 'n probleem nie, reg? Wat is die wêreld se bevolking nou? Wel, dit is iewers noord van 7 miljard mense. En in die Westerse wêreld ten minste, die meeste mense het meer as een toestel in staat internet konneksie. Ek het 'n reg hier. En ek het 'n ander een in my sak. En ek het een terug in my kantoor. En so dit is drie. En dat nie eens tel dié wat ek by die huis ook. En so dit is soort van 'n probleem, reg? Ons het ten minste 7 miljard mense en slegs 4 miljard adresse. En elke toestel is veronderstel om uniek geïdentifiseer kan word. Ons het 'n paar regstellings ontwikkel om te gaan met hierdie probleem, iets genoem 'n private IP-adres, wat ons nie gaan kry in in hierdie video. Maar basies, dit laat verder die web, die internet, soort van valse 'n bietjie wat jy het 'n unieke adres deurdat private adresse en dan kanaliseer hulle deur 'n enkele adres, wat gedeel word deur baie verskillende rekenaars. Maar dit is nie regtig 'n lang termyn oplossing. Selfs dit is nie vaste vir ewig gaan duur. En so moet ons 'n ander te hê manier van omgaan met hierdie. So as ek gesê het, ons het oor 4000000000. Maar dit is nie van plan om wees goed genoeg nie, reg? En so het die manier dat dit is daar besluit ons gaan om te gaan met dit is om langer IP adresse te maak. In plaas van 32-bit adresse, ons is gaan 128-bit adresse. So in plaas van 4 miljard adresse, ons gaan dat die groot aantal adresse, wat 340 miljard miljard miljard miljard, so 'n baie IP-adresse. En hierdie nuwe skema IPv6 genoem is algemeen hoe dit verwys. Die ou skema om IPv4. Dit is 'n bietjie van 'n probleem in dat hierdie probleem is bekend oor vir 'n baie lang tyd. En jy sal dit 'n baie in die kyk konteks van rekenaars en rekenaar. Ons is goed op antisipeer probleme. Maar ons is sleg doen het met hulle alhoewel ons weet oor hulle. So IPv6 is om vir 'n rukkie. En slegs in die laaste paar jaar het ons eintlik begin die infasering van hierdie IPv6 adresse uit te faseer die IPv4 adresse. Maar sommige plekke te doen het nie. En hulle lyk soortgelyk om 'n gereelde IP adres. Maar dit is 'n baie langer. So in plaas van nou met vier trosse van 8 grepe vir jou adres ons het nou agt groepe van 16 grepe. En 8 keer 16 is 128. En ons hierdie verteenwoordig in die minder konvensionele heksadesimale vorm. Want met 16-bit getalle beteken dat in plaas van om 'n verskeidenheid van 0-255, Ons wil 'n reeks van 0 moet 65.535. En so 'n klomp van daardie vas saam sou baie moeilik wees om te lees. En so het ons gebruik gewoonlik hex net uit gerief. En so 'n tipiese IPv6 adres kan iets soos hierdie. Dit is beslis 'n baie langer as die IPv4 adres wat ons voorheen gesien het. Maar dit sou 'n geldige IPv6 adres. Hierdie een is ook oor IPv6 adres. Hierdie een gebeur om te behoort aan Google. En daar is 'n kennisgewing klomp nulle daar. Soms word hierdie adresse kan so lank te kry. En omdat ons nog steeds redelik vroeg in IPv6, soms kan daar groot stukke nulle daar dat ons nie nodig het nie. As jy die lees van hierdie hardop, dit is 2001.4860.4860.0.0.0.0.8844. Dit is soort van 'n baie, reg? So as jy sien 'n klomp van die nulle, kan jy soms sien 'n IPv6 adres soos hierdie, waar hulle laat die nulle en gebruik 'n dubbele kolon plaas. Dit is OK, al is. Omdat ons weet dat daar veronderstel is om te wees agt afsonderlike stukke. En so by implikasie, sien ons vier. So ons weet dat daar moet vier stelle nulle soos hierdie, wat vul dit in. So soms, kan jy sien 'n IPv6 adres nie met agt geskei stukke soos ons hier. Jy kan dit sien op soek soos hierdie. En wat net beteken dat alles wat jy sien nie in tussen waar daardie dubbel kolon is is net nul geskei. So, OK. Ons weet 'n bietjie meer oor IP adresse nou. Maar hoe weet ons hulle? Ons kan nie net kies die een wat ons wil hê. As ons dit gedoen het, kan ons uiteindelik veg iemand vir dieselfde IP-adres. Of iemand dalk voorheen gekies is. As ons probeer en neem dit, ons gaan om te loop in 'n bietjie van 'n probleem. En so kan ons nie net kies die IP-adres wat ons wil hê. So die manier waarop ons kry 'n IP adres is iewers tussen ons rekenaar en die internet, dat die groot internet daar buite, daar is iets genaamd 'n DHCP-bediener, 'n DHCP bediener. Dis 'n groot mondvol van die teks. Maar eintlik al wat dit doen, is dit ken jy 'n IP-adres. Jou DHCP-bediener het 'n lys van spreek dat dit geldig kan toewys. En dit gee jou een. Dit is pretty much al wat daar is om dit. En voor DHCP, hierdie taak van die toeken adresse het tot 'n stelsel administrateur. So 'n werklike persoon sou hê na jou rekenaar met die hand te wys en adres as jy gekoppel aan 'n netwerk. So DHCP automatiseert net soort van hierdie proses van gee jou 'n IP-adres. Maar dit is hoe jy dit kry. Dit is net 'n program loop iewers tussen jou en die internet wat 'n bank van het IP adresse wat dit kan gee nie. En wanneer jy toegang tot die netwerk, dit gee jou 'n. So laat heroorweeg hierdie diagram. Iewers tussen jou en die internet, daar is 'n DHCP-bediener. OK. So dit is goed. Nou, laat ons praat oor DNS. Dus het ons gepraat hoewel hierdie IP-adresse. En ons weet dat as ons gaan uniek identifiseer 'n toestel op die internet, is dit het om 'n unieke adres het. En ons kon besoek wat spreek as ons wou. Maar jy het waarskynlik nog nooit getik in iets soos 192.168.1.0 in jou leser, reg? Jy hoef nie te tik in getalle in jou leser. Jy tik gewoonlik leesbare name soos google.com of cs50.harvard.edu, reg? Dit is nie in IP-adresse, al is. So bestaan ​​hierdie diens genoem die Domain Naam Stelsel, DNS, wat vertaal IP adresse aan menslike verstaanbaar woorde of frases wat baie meer onvergeetlike is as om te onthou 'n stel van vier nommers of, gou, 'n stel van agt heksadesimale getalle. Dit sou werklik uitdagende wees, reg? Dink oor voor die dae van selfone. Jy het jou memoriseer jou telefoonnommers vriend se. Dit mag dalk gekry taai na 'n rukkie. En so, as jy wil om 'n klomp van die webwerwe te besoek, het jy waarskynlik nie wil onthou 'n klomp van die nommers. Jy wil eerder onthou 'n klomp van die woorde. So hierdie kartering, hierdie vertaling, van stelle nommers leesbare name soort maak die DNS geel bladsye van die web. En jy kan dink oor asof dit net 'n groot lys loop van 0.0.0.0 al die pad af na 255.255.255.255, wat sou die hoogste possible-- dis wees die volle omvang van die 0s om 255s van alle 4 miljard-ish IPv4 adresse. Ek het die kinders op die bokant en die onderkant. Maar die een in die middel is daar is eintlik 'n IP-adres. So as ons besoek 74.125.202.138, blykbaar wat vertaal na die webwerf daar io-- wat die heck is dit? Wel, nie elke naam wat kaarte is eintlik duidelik wat dit is, reg? So soms iemand wat 'n IP-adres besit kan hul gasheer iets noem dat hulle eintlik nie. Byvoorbeeld dat IP-adres as jy was daar, is eintlik net google.com. Maar Google het 'n baie van verskillende servers. En hulle kan nie noem hulle al google.com. So het hulle hul eie interne stelsel vir die vertaling google.com om alles eintlik bediener verbind tot daardie IP adres. En dan is daar nog ' stelsel wat bestaan ​​tussen dat die codes vertaal hier om google.com. Maar ons sal nie in daardie. En net so aan IPv6s, ons gaan ook om 'n geel bladsye wat sal 'n baie groter wees. En insgelyks, in die middel there-- dit was moeilik om 'n IPv6 vind adres wat wettig is. Maar ek het een vir Google. Maar dit is die Ierse Google se webwerf. Maar as jy gaan om dit te IPv6-adres, as jou browser was IPv6 staat, wat sou jy bring Google se Ierse tuisblad. So daar gaan jy. Maar dit is nie heeltemal waar nie, reg? Dit is die stelsel blyk omslagtig, reg? As daar is 'n groot lys van 4 miljard dinge om op te kyk, dit is redelik groot. Daar is geen geel bladsye van die wêreld, reg? As jy nog steeds die geel bladsye afgelewer you-- Ek het myne die ander dag, en ek het net herwin nie. Maar as jy dit doen kry die geel bladsye aan u gelewer, jy hoef nie 'n boek wat elke kry telefoonnommer wat bestaan ​​op die planeet, reg? Jy kry 'n lys van die plaaslike telefoonnommers, die mense wat jy is waarskynlik om te bel. En dit is eintlik wat DNS is. As jy dink oor dit, is DNS regtig die plaaslike geel bladsye. En 'n groot DNS-bedieners soos google.coms hulle is eintlik net meer soos biblioteke wat 'n afskrif van al die plaaslike geel bladsye of al die plaaslike DNS-rekords. So daar is regtig niemand repository van die volle DNS van die internet, net soos daar is niemand geel bladsye van die wêreld. Daar is al hierdie plaaslike klein skaal DNSs dat daar bestaan ​​nie. En daar is dienste wat saam te voeg hulle saam. Maar hulle is afhanklik van die kleiner DNS stelsels opdatering van hul inligting, sodat hulle het die mees akkurate inligting. So weer, hierdie analogie groot saamgevoeg DNS stelsels soos biblioteke dat 'n afskrif het elke geel bladsye van die wêreld. Hulle doen hulleself nie werk daardie boeke. Hulle is afhanklik van die boeke kom in, sodat hulle kan die inligting op te dateer as hulle dit nodig het. So die DNS-stelsel is nie 'n reuse blok. Dit is gedesentraliseer oor baie, baie bedieners. So nou is ons wat iewers weet tussen ons en die internet bestaan ​​daar 'n DNS-bediener sowel as 'n DHCP-bediener. Nou, toegang punte, wat ons toegang punte? Wel, toegang punte jy waarskynlik mooi vertroud met van eintlik verbind tot die internet. Dit is die netwerk wat jy kies, die huis of jou werk netwerk of wat jy het. En ek veralgemening die konsep van 'n point hier vir doeleindes van hierdie video. Maar daar is eintlik 'n baie van die dinge wat kan opgerol word in toegangspunte. Daar is konsepte van routers, wat is 'n soort van 'n algemene term wat ons gebruik. Maar daar is ook skakel en dinge eintlik genoem toegang punte wat apart van is hierdie algemene konsep van 'n toegang punt. Maar basies wat gebeur is met IPv4, ek gesê ons moet hierdie konsep van private adresse, reg? En in plaas van elke masjien met 'n unieke IP-adres, wat Ons het uit loop, want ons is oor 4000000000 toestelle probeer om toegang tot die internet, wat ons doen is eerder 'n toewys IP adres om 'n router. Dit router of toegang punt net in jou huis, byvoorbeeld. En die werk van die router se as soort van as 'n spietkop, sodat almal wat gekoppel is dat die router om dieselfde IP gebruik spreek uit te kry. Maak wat sin maak? Sodat almal by jou huis het 'n private IP-adres. Hulle kan nie toegang tot die internet, of die internet eerder kan nie met hulle praat, deur middel van dat private adres. Hulle kan net met hulle praat deur die adres in die router. En dit is die router se werk om inligting te neem dat jy die stuur van die router en rig dit na die regte plek en vir die inligting wat kom in die router vir die router om dit te stuur aan jou. So die routers is regtig die toestelle here-- veral 'n router in jou huis, die mees algemene soort van die gebruik geval vir die meeste people-- wat die openbare IP-adres. Dit is die toestel wat verbind tot die internet. En jy toegang tot die router om inligting te vloei het deur dit namens jou. Soos ek gesê het, 'n moderne huis netwerk, die router en skakel en toegang punt is al die soort van die bundel up in 'n enkele toestel. Soms is 'n modem is bundel daar so goed. Dit is gewoonlik net 'n sogenaamde router. Maar dit is regtig al daardie dinge saam. Groot skaal besigheid netwerke of sogenaamde Wide Area Networks, WANs, eintlik hou hierdie toestelle te skei. Hulle het 'n skakelaar. Hulle het routers. Hulle het verskeie toegangspunte. Byvoorbeeld, op 'n universiteit sal jy sien dinge wat lyk soos die sogenaamde routers gemonteer is almal rondom die kampus. Dit is al toegang punte wat vloei in routers, skakelaars, ensovoorts, om inligting te slaag langs. Omdat hierdie netwerke is so groot dat 'n enkele toegangspunt kan dek nie sy groot gebied. En so hierdie groot netwerke, korporatiewe netwerke, ensovoorts, verdeel in aparte hierdie toestelle, sodat die netwerk en skaal en groei as dit nodig is. So weer, iewers tussen ons en die internet, ons het 'n access. En dit is wat ons koppel. En daar deur ons kan kry tot die internet. Soos ek gesê het by die begin van hierdie video, dit is nie 'n kursus oor die netwerk. So, dit is nie die hele storie. En ek het soort van glansende oor dit. En miskien het ek jou selfs 'n bietjie verwar as wat sommige van hierdie dinge is. Maar dit is OK. Ons het nie die hele storie nodig het. Dit is genoeg vir ons om te weet bewegende vorentoe net basies 'n bietjie oor hoe die internet werk. So wat ons weet is ons hierdie private netwerke by ons huis. En ons verbind met 'n router. En dat router is verbind om die internet in die algemeen. Maar wat is die internet in die algemeen? Ek hou aan sê dit nie, maar wat is dit? Wel, dit is regtig net al hierdie individuele netwerke by my huis, en in jou huis, en by elke ander huis, wat saam met mekaar verbind. Dit is 'n onderling netwerk, 'n inter-net. So in plaas van denke oor die internet as hierdie reuse wolk hierdie eteriese ding wat bestaan ​​daar buite, dit is regtig net 'n verband onder al hierdie netwerke. So hier gaan ons. Ons het ons plaaslike netwerk. En ons is nie die enigste persoon waarskynlik op ons plaaslike netwerk probeer om die internet te gebruik. Daar is waarskynlik 'n hele paar ons probeer om in te kom. En ons is nie die enigste netwerk wat bestaan ​​in die wêreld, reg? Daar is ander netwerke, ook dat probeer om toegang tot die internet. Maar die internet is nie, weer 'n aparte entiteit. Dit is net 'n stel reëls wat toelaat hierdie netwerke, hierdie klein netwerke, die blou, die pers, en die rooi netwerk hier, om te kommunikeer met mekaar. So daar is geen ding hulle is almal verbind tot. Hulle is almal net verbind mekaar, reg? En so iewers op hierdie netwerke bestaan ​​die dienste dat ons eintlik wil hê. So miskien in die blou netwerk waar Google woon. En in die pers netwerk waar Facebook woon. En in die rooi netwerk, goed, miskien dit is waar al die katte is. En so, as ons wil te kry inligting oor katte, ons het net deurkruis hierdie ketting van netwerke om die inligting wat ons wil hê. En hier, Ek het voorgestel die netwerk as al in staat is om met mekaar te praat. En ons kan net praat met die netwerk. Maar die netwerk kan nie praat terug na ons. Maar dit is nie waar nie, reg? Dit is al 'n twee-rigting straat. Inligting kan deur te vloei netwerke heen en weer. Hoe werk dit doen? Wel, die internet is regtig 'n stelsel van protokolle. En ons gaan begin praat oor wat die protokolle is in die toekoms videos. Maar weereens, die internet is nie 'n aparte ding. Dit is 'n stel reëls wat bepaal hoe netwerke kommunikeer, hierdie klein netwerke, hierdie plaaslike netwerk wat ons gebruik om, die mense in ons huis, die mense by ons skool, die mense by ons werk, al deel van 'n netwerk. En hoe hierdie netwerke met mekaar te verbind en met mekaar praat, dit is eintlik wat die internet gaan alles oor. So laat, in 'n toekomstige video, praat oor 'n paar van die protokolle wat bestaan ​​uit die internet om hopelik gee jou 'n bietjie meer van 'n afgeronde begrip. Ek is Doug Lloyd. Dit is CS50.