1 00:00:00,000 --> 00:00:02,620 [Powered by Google Translate] [Week 7, Vervolg] 2 00:00:02,620 --> 00:00:05,090 [David J. Malan, Harvard University] 3 00:00:05,090 --> 00:00:07,780 [Dit is CS50.] [CS50.TV] 4 00:00:07,780 --> 00:00:09,810 Oke. Welcome Back. Dit is CS50, 5 00:00:09,810 --> 00:00:12,100 en dit is het einde van week 7. 6 00:00:12,100 --> 00:00:15,460 Dus een van die stomme kleine dingen die gaat rond het internet 7 00:00:15,460 --> 00:00:24,080 en we slurpte, en het moet nu een beetje geeky gevoel voor jou. 8 00:00:24,080 --> 00:00:28,330 Nou, het was leuker om deze man dan het was om jullie. 9 00:00:28,330 --> 00:00:32,619 Spreken van, nou, jongens, 10 00:00:32,619 --> 00:00:42,550 vandaag is Nate's verjaardag. 11 00:00:42,550 --> 00:00:46,630 Om u een idee van hoe goed Nate en ik zijn 12 00:00:46,630 --> 00:00:50,140 op web development op basis van klasse maandag en nu op deze basis, 13 00:00:50,140 --> 00:00:53,170 Ik dacht dat ik trek Nate's homepage, als je het nog niet gezien. 14 00:00:53,170 --> 00:00:57,020 Dit hier ia Nate's HTML. 15 00:00:57,020 --> 00:00:59,380 Dus zie zijn broncode als je wilt zien hoe dit te doen, en Nate, 16 00:00:59,380 --> 00:01:02,250 als we je vernederen even kort, het personeel heb je een beetje iets 17 00:01:02,250 --> 00:01:06,080 als je wilt om een ​​dessert te delen met een aantal van de kinderen in de klas hier. 18 00:01:06,080 --> 00:01:10,150 Als u wilt naar beneden te komen op. 19 00:01:10,150 --> 00:01:14,350 U allen toejuichen en zijn erg leuk, maar niemand is overal zitten in de buurt Nate, 20 00:01:14,350 --> 00:01:17,560 andere reden, dat back zone. 21 00:01:17,560 --> 00:01:24,020 Dus misschien kun je sommige mensen om deze te genieten met. 22 00:01:24,020 --> 00:01:33,380 Happy Birthday, Nate. 23 00:01:33,380 --> 00:01:37,660 >> Extra hellos: We hebben een paar clips toonde van onze CS50x studenten. 24 00:01:37,660 --> 00:01:39,710 Als je wilt zien wie er nog meer is in de wereld 25 00:01:39,710 --> 00:01:41,850 dat is volgende mee, dan kunt u terecht bij deze URL, 26 00:01:41,850 --> 00:01:45,780 waar Jozef, een van onze TFS, heeft samen een montage van soorten 27 00:01:45,780 --> 00:01:50,290 van iedereen die is het indienen van deze video's, onder wie Rick Astley. 28 00:01:50,290 --> 00:01:53,010 En als u door deze, het is echt heel inspirerend 29 00:01:53,010 --> 00:01:56,890 aan de diversiteit van de landen en steden van waaruit mensen afkomstig te zien. 30 00:01:56,890 --> 00:02:00,830 Dus als je wilt een kijkje op die rekening, zal dat oplopen tot het einde van het semester. 31 00:02:00,830 --> 00:02:05,370 Vandaag hebben we onze blik verder met het web, web programmeren, HTML en dergelijke, 32 00:02:05,370 --> 00:02:08,280 en we ook lunchen er deze vrijdag 33 00:02:08,280 --> 00:02:11,360 als je zou willen, en met name niet heeft gedaan. 34 00:02:11,360 --> 00:02:13,630 Deze vrijdag is het thema zal Nate's verjaardag, 35 00:02:13,630 --> 00:02:15,700 dus als je wilt verjaardag lunch te hebben met Nate 36 00:02:15,700 --> 00:02:17,500 en anderen, sommige van onze vrienden van de bedrijven, 37 00:02:17,500 --> 00:02:19,300 gelieve hoofd naar die URL daar. 38 00:02:19,300 --> 00:02:22,510 Ruimte, zoals altijd, is beperkt. Ook, als u bent vergeten, 39 00:02:22,510 --> 00:02:26,460 beseffen dat volgende week is de deadline voor het probleem te stellen 4's speurtocht, 40 00:02:26,460 --> 00:02:30,070 waarbij na het herstellen al die JPEG's uit card.raw, 41 00:02:30,070 --> 00:02:32,880 u en uw sectie vrienden, als u wilt, kunt proberen te fotograferen 42 00:02:32,880 --> 00:02:36,100 omdat veel van de computer wetenschappers die geheugenkaart zijn, 43 00:02:36,100 --> 00:02:39,070 en u en uw sectie zal dan winnen een fantastische prijs. 44 00:02:39,070 --> 00:02:44,470 Kijk terug naar PSET 4 specificatie van wat te dienen en wanneer. 45 00:02:44,470 --> 00:02:47,650 Ook, als u wilt dat uw handwerk vereeuwigd 46 00:02:47,650 --> 00:02:51,400 op het verloop van de website en de geschiedenis van de kleding, 47 00:02:51,400 --> 00:02:54,010 weet dat u nu van harte welkom om te beginnen het indienen van ontwerpen 48 00:02:54,010 --> 00:02:57,180 voor dit jaar T-shirts en sweatshirts en dergelijke. 49 00:02:57,180 --> 00:02:59,200 We zullen ons best doen om zo veel als we kunnen zijn, 50 00:02:59,200 --> 00:03:01,440 maar we zullen moeten een aantal leden van het personeel beoordeling Alle van de ontwerpen 51 00:03:01,440 --> 00:03:04,180 om ervoor te zorgen dat ze in overeenstemming met de specificaties, 52 00:03:04,180 --> 00:03:07,500 en we dan over het algemeen kies een handvol van hen te worden tentoongesteld. 53 00:03:07,500 --> 00:03:10,620 Dus als je het constructietype, weet alleen dat aan de eisen 54 00:03:10,620 --> 00:03:14,030 voor graphics zijn PNG, minstens 200 DPI, 55 00:03:14,030 --> 00:03:16,520 zij niet meer dan 4000 x 4000 pixels, 56 00:03:16,520 --> 00:03:19,010 en niet meer dan 10 MB, maar je bent van harte welkom om dingen te gebruiken zoals 57 00:03:19,010 --> 00:03:22,430 Photoshop of GIMP of verschillende grafische programma's, 58 00:03:22,430 --> 00:03:24,590 wat je tot je beschikking hebt. 59 00:03:24,590 --> 00:03:28,280 >> Ook op de horizon is het laatste project. Het laatste project is echt het hoogtepunt van 50, 60 00:03:28,280 --> 00:03:30,560 waarbij van alle opdrachten in de cursus, 61 00:03:30,560 --> 00:03:33,170 het is uw kans echt doe je eigen ding. 62 00:03:33,170 --> 00:03:35,280 En dat kan gewoon om iets te doen voor de lol, 63 00:03:35,280 --> 00:03:38,160 het kan zijn om een ​​aantal urgente probleem dat uw student groep heeft op te lossen, 64 00:03:38,160 --> 00:03:40,980 voor een aantal nieuwe website, een aantal nieuwe collectie mechanisme voor data. 65 00:03:40,980 --> 00:03:43,420 Het kan een mobiele applicatie voor Android zijn, voor iOS. 66 00:03:43,420 --> 00:03:46,030 Echt, de sky is the limit, en in de komende paar weken, 67 00:03:46,030 --> 00:03:50,900 als we de overgang van C naar deze hogere talen zoals PHP en JavaScript, 68 00:03:50,900 --> 00:03:55,150 vind je jezelf meer en meer vertrouwd met een aantal real-world technieken, 69 00:03:55,150 --> 00:03:57,800 sommige real-world tools, en aan te vullen dat, 70 00:03:57,800 --> 00:04:00,170 weten dat de loop een geschiedenis van seminars heeft, 71 00:04:00,170 --> 00:04:02,880 waarbij in de komende paar weken, een deel van het onderwijzend personeel 72 00:04:02,880 --> 00:04:06,160 en vrienden van ons uit op de campus zal bieden optionele seminars 73 00:04:06,160 --> 00:04:08,540 die verder gaan dan wat er meestal gedaan in paragraaf 74 00:04:08,540 --> 00:04:11,090 u laten kennismaken met dingen zoals Android programmeren, 75 00:04:11,090 --> 00:04:13,450 u laten kennismaken met dingen zoals iOS programmering 76 00:04:13,450 --> 00:04:15,950 of meer geavanceerde web-development technieken. 77 00:04:15,950 --> 00:04:17,970 Er is een hele geschiedenis van deze al online. 78 00:04:17,970 --> 00:04:25,000 Als je naar cs50.net/seminars, we doen dit al heel wat jaren, 79 00:04:25,000 --> 00:04:28,740 en je zult zien dat hier gearchiveerd met PDF's en video's en dergelijke 80 00:04:28,740 --> 00:04:33,090 zijn enkele tientallen video's van seminars. 81 00:04:33,090 --> 00:04:37,380 Vorig jaar, bijvoorbeeld, hadden we een seminar over acing uw technische interviews, 82 00:04:37,380 --> 00:04:40,980 als je eigenlijk op zoek te gaan uit en een stage of full-time optreden te doen. 83 00:04:40,980 --> 00:04:43,450 Windows mobiele ontwikkeling, Android ontwikkeling, Google Maps, 84 00:04:43,450 --> 00:04:47,700 API, CSS, het ontwikkelen voor de BlackBerry, Emacs. 85 00:04:47,700 --> 00:04:52,610 Echt, je van harte welkom om een ​​kijkje op een van deze seminars op uw gemak te nemen. 86 00:04:52,610 --> 00:04:57,080 En we zullen die een deel nieuwe dit semester, als goed. 87 00:04:57,080 --> 00:04:59,020 >> Dus wat is verder met het laatste project? 88 00:04:59,020 --> 00:05:01,090 Nou, ten eerste, ook al is deze datum is enigszins dreigend, 89 00:05:01,090 --> 00:05:06,460 Dit is eigenlijk gewoon een kans om na te denken over het uiteindelijke project te starten heel realistisch. 90 00:05:06,460 --> 00:05:10,550 Wij kennen alleen het begin van een deel van wat we nog die in de loop, 91 00:05:10,550 --> 00:05:13,470 HTML, PHP en dergelijke, maar je bent allemaal bekend met het web, 92 00:05:13,470 --> 00:05:16,270 en Ibias dit gesprek in de richting van het web alleen omdat 93 00:05:16,270 --> 00:05:18,380 de meeste mensen uiteindelijk doen op het web gebaseerde afstudeeropdrachten, 94 00:05:18,380 --> 00:05:20,260 maar dat is zeker niet nodig. 95 00:05:20,260 --> 00:05:22,260 Met behulp van C is prima, Objective C, Java, 96 00:05:22,260 --> 00:05:25,350 elke andere taal die je misschien kent of wilt u weten is heel goed. 97 00:05:25,350 --> 00:05:29,370 Maar om de sappen stromen in eerste instantie te krijgen, zullen we verwachten dat het indienen van een vooraanmelding 98 00:05:29,370 --> 00:05:33,520 die, volgens de PDF op de website, die nu op cs50.net, 99 00:05:33,520 --> 00:05:36,080 en in de linkerbovenhoek zie je afstudeerproject 100 00:05:36,080 --> 00:05:38,920 is de specificatie voor het afstudeerproject, 101 00:05:38,920 --> 00:05:41,470 en er informatie over de vooraanmelding en dergelijke. 102 00:05:41,470 --> 00:05:44,760 Het vrij veel komt neer op een e-mail naar uw onderwijs mede 103 00:05:44,760 --> 00:05:48,450 alleen maar om een ​​praatje met hem of haar over wat je denkt. 104 00:05:48,450 --> 00:05:52,510 Op projects.cs50.net is een opslagplaats van ideeën van mensen op de campus 105 00:05:52,510 --> 00:05:54,480 als je moeite hebt om te komen met een idee, 106 00:05:54,480 --> 00:06:01,140 en manual.cs50.net/APIs is een verzameling van links naar API's. 107 00:06:01,140 --> 00:06:06,710 >> Maar wat is een API? 108 00:06:06,710 --> 00:06:09,790 Wat is een API? Ik heb gezegd dat het ten minste tweemaal, 109 00:06:09,790 --> 00:06:12,640 volgens de transcripten van de afgelopen week. 110 00:06:12,640 --> 00:06:17,050 Wat is dat? [Student, onverstaanbaar] 111 00:06:17,050 --> 00:06:19,340 >> Oke, goed. Dus iets programmeer-interface. 112 00:06:19,340 --> 00:06:22,710 Application programming interface, en dit kan verschillende vormen aannemen, 113 00:06:22,710 --> 00:06:25,850 maar wat dit echt op neer komt is code 114 00:06:25,850 --> 00:06:29,660 dat iemand anders hs geschreven of gegevens die iemand anders heeft verzameld 115 00:06:29,660 --> 00:06:33,670 dat is aan u beschikbaar gesteld in een aantal programmatische manier. 116 00:06:33,670 --> 00:06:36,630 U kunt code schrijven in C, PHP, Python, Ruby, 117 00:06:36,630 --> 00:06:38,760 wat meestal de taal van uw keuze is, 118 00:06:38,760 --> 00:06:42,240 en u kunt een of andere manier voort te bouwen op andermans functionaliteit 119 00:06:42,240 --> 00:06:44,440 of van iemand anders dataset. 120 00:06:44,440 --> 00:06:47,210 Bijvoorbeeld, als ik ga naar deze link hier, 121 00:06:47,210 --> 00:06:50,750 en zie je een paar links op de volgende pagina 122 00:06:50,750 --> 00:06:56,093 waarbij we hebben een eigen API's CS50's, die zeer Harvard-centric, en vervolgens van derden API's. 123 00:06:56,930 --> 00:06:59,300 Onder de derde-API's zijn echt nuttige dingen 124 00:06:59,300 --> 00:07:01,780 zoals de mogelijkheid om de mensen sms'en te sturen, 125 00:07:01,780 --> 00:07:04,690 de mogelijkheid om SMS-berichten te ontvangen van mensen. 126 00:07:04,690 --> 00:07:08,160 En dat soort dingen die je zou geen idee hoe je jezelf uitvoer te leggen, 127 00:07:08,160 --> 00:07:10,440 maar dankzij diensten, zowel gratis als commerciële, 128 00:07:10,440 --> 00:07:14,000 je kunt bouwen op de top van deze en iets doen voor u van belang. 129 00:07:14,000 --> 00:07:16,990 Onder API's CS50's zijn deze campus-centric zaken als 130 00:07:16,990 --> 00:07:21,480 Harvard cursussen, energie, evenementen, eten, kaarten, nieuws, tweets en Shuttleboy eigen, 131 00:07:21,480 --> 00:07:23,940 en dit zijn API's die een beetje zoiets als dit te kijken. 132 00:07:23,940 --> 00:07:26,990 >> Laat me trek de HarvardFood API. 133 00:07:26,990 --> 00:07:30,620 Als je ooit naar de website van HUD's, hebt u waarschijnlijk er geweest 134 00:07:30,620 --> 00:07:35,410 gewoon zien wat er voor het diner of om te zien wat de uren zijn voor een aantal d-hal. 135 00:07:35,410 --> 00:07:38,000 Nou, het is niet bijzonder gemakkelijk te navigeren, 136 00:07:38,000 --> 00:07:41,100 en dus wat we hadden enige tijd geleden werd schreven we software, 137 00:07:41,100 --> 00:07:47,270 het gebeurt te zijn in PHP, die eigenlijk scherm schraapt het geheel van de website van HUD's. 138 00:07:47,270 --> 00:07:51,400 Om te screenen schrapen iets betekent voor een programma te schrijven in een taal zoals PHP 139 00:07:51,400 --> 00:07:55,270 dat zich voordoet als een browser, zelfs al zou je het uit te voeren bij een opdrachtprompt, 140 00:07:55,270 --> 00:07:58,180 dat zich voordoet als een browser, wordt aangesloten op een website, 141 00:07:58,180 --> 00:08:01,480 downloadt de HTML, de taal waarin het is geschreven, 142 00:08:01,480 --> 00:08:04,300 en dan het leest, of meer specifiek, ontleedt het 143 00:08:04,300 --> 00:08:06,140 boven naar beneden, van links naar rechts. 144 00:08:06,140 --> 00:08:08,870 En wat we deden was schreven we onze code op een zodanige wijze dat 145 00:08:08,870 --> 00:08:12,910 elke keer als we iets zagen in dat HTML die eruit zag als iets op het menu, 146 00:08:12,910 --> 00:08:16,470 zoals hamburger, zouden we vervolgens importeren die in onze eigen database. 147 00:08:16,470 --> 00:08:20,410 En elke keer dat we zagen voedingswaarde, zouden we importeren dat in onze eigen database. 148 00:08:20,410 --> 00:08:23,090 En wat we deden was hefboomeffect van het feit dat HUD's website, 149 00:08:23,090 --> 00:08:27,280 zelfs al is het misschien een beetje een uitdaging voor ons mensen om te navigeren zijn 150 00:08:27,280 --> 00:08:32,559 onder de kap, wordt alle HTML gegenereerd door hun eigen computerprogramma's. 151 00:08:32,559 --> 00:08:35,159 Dus al hun HTML, ook al is het misschien rommelig uitzien, 152 00:08:35,159 --> 00:08:38,026 zoals de meeste websites onder de motorkap volgt een patroon. 153 00:08:38,260 --> 00:08:40,799 Dus we net een paar uur uit te vinden dat patroon 154 00:08:40,799 --> 00:08:44,240 zodat op het einde, gooien we al die vieze HTML, 155 00:08:44,240 --> 00:08:47,340 alle van de esthetiek van vet facing en cursief en dergelijke, 156 00:08:47,340 --> 00:08:52,350 en wat wij zijn dan in staat om te doen is bloot dat dezelfde gegevens. 157 00:08:52,350 --> 00:08:54,870 Bijvoorbeeld op deze manier. 158 00:08:54,870 --> 00:08:56,840 Dus, volgens de documentatie hier 159 00:08:56,840 --> 00:08:59,190 hebben de wereld dat als je een URL 160 00:08:59,190 --> 00:09:03,310 dat ziet er zo uit, food.cs50.net / iets, 161 00:09:03,310 --> 00:09:07,220 en u te voorzien van bepaalde parameters, die we zullen praten over vandaag, 162 00:09:07,220 --> 00:09:11,780 als einddatum de tijd, startdatum tijd, maaltijd, enzovoort, 163 00:09:11,780 --> 00:09:14,090 wat onze servers zullen terugkeren naar je, bijvoorbeeld, 164 00:09:14,090 --> 00:09:18,740 wordt een CSV-bestand, komma separted waarden als een Excel-bestand, 165 00:09:18,740 --> 00:09:23,140 met alles voor het ontbijt op deze bijzondere datum in maart vorig jaar 166 00:09:23,140 --> 00:09:25,450 toen ik toevallig te schrijven van deze documentatie. 167 00:09:25,450 --> 00:09:27,870 >> Voor degenen die bekend, CSV is niet de enige bestandsformaat. 168 00:09:27,870 --> 00:09:30,610 Er is een ander formaat dat is alles wat de meest veelzijdige 169 00:09:30,610 --> 00:09:32,670 genaamd JSON, JavaScript Object Notation. 170 00:09:32,670 --> 00:09:34,770 De gegevens kunnen terugkomen in dat formaat. 171 00:09:34,770 --> 00:09:38,110 Dus de afhaalmaaltijden hier is dat de vraag of u een duik nemen in deze API 172 00:09:38,110 --> 00:09:41,170 of een van de andere CS50's of iets die er zijn op het internet, 173 00:09:41,170 --> 00:09:45,560 of helemaal niet realiseren dat de wereld steeds meer begint te standaardiseren 174 00:09:45,560 --> 00:09:47,670 hoe machines elkaar verbonden. 175 00:09:47,670 --> 00:09:50,660 Wij gebruiken standaard data formaten zoals CSV of JSON. 176 00:09:50,660 --> 00:09:54,320 En wat dit betekent voor u is dat je kunt schrijven het interessante deel van een programma 177 00:09:54,320 --> 00:09:56,580 waarmee uw gebruikers zoeken in een eetzaal menu, 178 00:09:56,580 --> 00:10:00,010 waarmee ze te maken lijsten van favorieten waarmee ze te krijgen tekst waarschuwingen 179 00:10:00,010 --> 00:10:02,480 wanneer hun favoriete maaltijd staat te worden geserveerd in een aantal d-hal 180 00:10:02,480 --> 00:10:07,090 door gebruik te maken van iemand anders datasets en voortbouwend op de top van hun API's. 181 00:10:07,090 --> 00:10:13,600 Dus meer op die in de vorm van seminars en de documentatie die u hier online te hebben. 182 00:10:13,600 --> 00:10:16,450 Dus die zijn dus API's. 183 00:10:16,450 --> 00:10:18,900 >> Dat brengt ons terug naar HTML. Korte samenvatting. 184 00:10:18,900 --> 00:10:22,920 Wat is HTML? 185 00:10:22,920 --> 00:10:25,000 [Student, onverstaanbaar] >> Goed. HyperText Markup Language. 186 00:10:25,000 --> 00:10:31,300 Iemand anders, wat is Hypertext Markup Language? 187 00:10:31,300 --> 00:10:37,340 HyperText Markup Language. 188 00:10:37,340 --> 00:10:40,330 Oke. Dus HTML, HyperText. 189 00:10:40,330 --> 00:10:43,100 HyperText verwijst gewoon naar het web, voor het grootste deel. 190 00:10:43,100 --> 00:10:45,730 Markup betekent dat het niet is eigenlijk een programmeertaal, HTML. 191 00:10:45,730 --> 00:10:48,120 Het is niet een taal die je kunt Logic Express inch 192 00:10:48,120 --> 00:10:50,710 Het geen lussen. Het geen voorwaarden. 193 00:10:50,710 --> 00:10:52,820 Het geen functies per se. 194 00:10:52,820 --> 00:10:56,680 Integendeel, het heeft deze dingen tags genoemd, of beter gezegd, elementen. 195 00:10:56,680 --> 00:10:59,970 En die elementen hebben begin tags en eind tags, 196 00:10:59,970 --> 00:11:04,300 of open-tags en gesloten tags, deze tags en wat over het algemeen betekenen voor een browser is, 197 00:11:04,300 --> 00:11:09,270 iets gaan doen en dan stoppen om iets te doen, al zijn er uitzonderingen op die. 198 00:11:09,270 --> 00:11:12,480 Soms is het gewoon 'een regeleinde hier zetten,' bijvoorbeeld. 199 00:11:12,480 --> 00:11:15,150 En we zagen voorbeelden van dat de andere dag, tussen vet geconfronteerd, 200 00:11:15,150 --> 00:11:17,430 regeleinden, en dan een paar andere tags. 201 00:11:17,430 --> 00:11:19,880 Dus HTML is de taal waarin webpagina's worden geschreven. 202 00:11:19,880 --> 00:11:23,760 Dus als ik naar iets als Google.com 203 00:11:23,760 --> 00:11:26,180 en trek je gewoon hun home page, 204 00:11:26,180 --> 00:11:29,690 herinneren dat als u met de rechtermuisknop te klikken of te controleren klikt u op 205 00:11:29,690 --> 00:11:32,140 en kijk naar View Page Source, meestal 206 00:11:32,140 --> 00:11:34,420 het is een grote puinhoop deze dagen onder de motorkap, maar dat komt omdat 207 00:11:34,420 --> 00:11:38,170 computers geven niet om witte ruimte, dus dit hoeft niet mooi te kijken. 208 00:11:38,170 --> 00:11:40,240 Maar als we inzoomen op delen daarvan, 209 00:11:40,240 --> 00:11:43,460 merken dat Chrome gewoon om aardig te zijn, heeft kleurcode dingen. 210 00:11:43,460 --> 00:11:48,460 Inderdaad, dit is de eerste tag die we zagen in een webpagina. 211 00:11:48,460 --> 00:11:51,750 En nogmaals, HTML 5, de nieuwste versie van deze taal, 212 00:11:51,750 --> 00:11:53,830 hoeft dit ding aan het begin, 213 00:11:53,830 --> 00:11:57,820 00:12:03,580 maar dat is gewoon soort van een standaard die zegt: hey wereld hier, een HTML-bestand in versie 5 komt. 215 00:12:03,580 --> 00:12:08,920 >> Het interessante deel begint hier. Dus 00:12:11,640 van de HTML-elementen laatste keer. 217 00:12:11,640 --> 00:12:14,630 Wat waren dat voor twee belangrijke kinderen? 218 00:12:14,630 --> 00:12:17,170 Hoofd en lichaam, net als de man met de tatoeage een moment geleden. 219 00:12:17,170 --> 00:12:19,640 Er zijn twee delen van webpagina hoofd en lichaam, 220 00:12:19,640 --> 00:12:23,750 en terugroepen, dan, dat misschien wel de eenvoudigste webpagina konden we er zo uitziet. 221 00:12:23,750 --> 00:12:27,460 En ik heb ingesprongen het alleen maar om soort van netjes en opgeruimd met mijn code, worden 222 00:12:27,460 --> 00:12:30,710 maar wat echt belangrijk is hier dat er een hiërarchie bij. 223 00:12:30,710 --> 00:12:35,420 En elke tag die ik heb geopend Ik heb gesloten en dat er daarom deze symmetrie 224 00:12:35,420 --> 00:12:38,300 om alle opmaak die ik heb gemaakt. 225 00:12:38,300 --> 00:12:41,620 Dus laatste keer dat we begonnen met het schrijven van web pagina's op mijn eigen laptop. 226 00:12:41,620 --> 00:12:45,470 Ik opende de tekst bewerken, ik heb het bestand als hello.html, 227 00:12:45,470 --> 00:12:50,190 Vervolgens heb ik sleepte het bestand op mijn browser, en voila, ik had een pagina op het internet. 228 00:12:50,190 --> 00:12:53,110 Nu, het is niet helemaal het geval is, ik had een pagina op mijn harde schijf, 229 00:12:53,110 --> 00:12:58,260 en ik was letterlijk de enige persoon in de wereld die dat zou webpagina te zien in een browser. 230 00:12:58,260 --> 00:13:00,670 >> Dus vandaag introduceren we een echte webserver 231 00:13:00,670 --> 00:13:02,750 en het begrip van het daadwerkelijk leveren van content op het Internet 232 00:13:02,750 --> 00:13:04,970 en hoe Dit begint op elkaar aansluiten. 233 00:13:04,970 --> 00:13:08,350 Dus het blijkt dat al die tijd in de CS50 apparaat 234 00:13:08,350 --> 00:13:11,590 u beschikken over een webserver op uw computer. 235 00:13:11,590 --> 00:13:16,560 Wij hebben, in alle eerlijkheid, alleen gebruikt het voor gedit, voor Clang, voor GDB en dergelijke, 236 00:13:16,560 --> 00:13:21,000 maar ook geïnstalleerd door ons voor u in het apparaat is een web-server, 237 00:13:21,000 --> 00:13:23,940 en dat webserver toevallig vrij, een open source, 238 00:13:23,940 --> 00:13:26,580 een van de meest populaire in de wereld, genaamd Apache. 239 00:13:26,580 --> 00:13:31,340 De meer technische benaming is HTTPd, de d voor daemon wordt hier, 240 00:13:31,340 --> 00:13:34,110 wat een technische term voor een server. 241 00:13:34,110 --> 00:13:38,690 Dus geïnstalleerd in de CS50 apparaat is een web-server, en wat betekent dat? 242 00:13:38,690 --> 00:13:43,740 Nou, een webserver is, conceptueel, sommige server op het Internet die serveert webinhoud. 243 00:13:43,740 --> 00:13:48,630 Toen we vroegen om een ​​bestand, het spuugt de HTML die dat bestand componeert, en voila. 244 00:13:48,630 --> 00:13:51,370 Je ziet een aantal website's home page. 245 00:13:51,370 --> 00:13:54,970 Maar een server is, meer precies, een stuk software. 246 00:13:54,970 --> 00:13:59,190 Het hoeft niet op een fysieke machine, het moet alleen een software lopen. 247 00:13:59,190 --> 00:14:01,980 Dus de CS50 apparaat, is natuurlijk een stuk software 248 00:14:01,980 --> 00:14:04,270 ook al is het soort van doen alsof ze een machine te zijn. 249 00:14:04,270 --> 00:14:06,960 Het is alsof ze een computer binnenkant van een computer, 250 00:14:06,960 --> 00:14:11,140 maar dat betekent gewoon dat het apparaat zeker kan lopen dingen zoals webservers. 251 00:14:11,140 --> 00:14:13,260 Het kan zelfs draaien e-mailservers. 252 00:14:13,260 --> 00:14:16,440 We kunnen uitvoeren van een instant messaging-server in het apparaat als we wilden, 253 00:14:16,440 --> 00:14:20,780 en inderdaad, we lopen een andere type server, die bekend staat als een database-server, MySQL. 254 00:14:20,780 --> 00:14:22,620 Maar meer daarover volgende week. 255 00:14:22,620 --> 00:14:26,400 Dit betekent dat ik daadwerkelijk kan webpagina's bezoeken 256 00:14:26,400 --> 00:14:30,480 binnenkant van mijn apparaat met behulp van een browser in het toestel 257 00:14:30,480 --> 00:14:33,600 of zelfs op mijn eigen laptop, mijn Mac of mijn pc. 258 00:14:33,600 --> 00:14:37,780 Dus wat betekent dit? Het blijkt dat elke keer dat je een Linux-computer draait, 259 00:14:37,780 --> 00:14:40,910 zijn bijnaam is "local host." 260 00:14:40,910 --> 00:14:43,370 Het beschikt niet over een domeinnaam, omdat we nog niet gekocht een domeinnaam 261 00:14:43,370 --> 00:14:46,590 voor iets als het apparaat, zodat de standaardnaam is de lokale host. 262 00:14:46,590 --> 00:14:50,470 >> Maar om het apparaat te krijgen om te beginnen met serveren webpagina's, 263 00:14:50,470 --> 00:14:52,270 moeten we eerst hen. 264 00:14:52,270 --> 00:14:55,200 Dus laten we dat doen. Laat me hier gaan in een terminal venster 265 00:14:55,200 --> 00:14:58,190 en merk dat ik op mijn typische John Harvard prompt. 266 00:14:58,190 --> 00:15:01,670 Laat me ga je gang en typ ls, en we zullen een aantal bekende dingen te zien vanuit dit semester, 267 00:15:01,670 --> 00:15:04,580 bureaublad, downloads, dropbox, enzovoort, 268 00:15:04,580 --> 00:15:07,540 maar nu zijn we beginnen te draaien onze aandacht op een paar. 269 00:15:07,540 --> 00:15:11,530 Op veel Linux-webservers er is een map met de naam openbare html, 270 00:15:11,530 --> 00:15:15,630 maar we gaan naar die ene overslaan en op deze, vhosts richten. 271 00:15:15,630 --> 00:15:18,850 Iedereen weet wat een vhost is? 272 00:15:18,850 --> 00:15:21,110 Gewoon dom jargon voor virtuele host, 273 00:15:21,110 --> 00:15:23,850 en wat dit betekent is dat op een typische server 274 00:15:23,850 --> 00:15:26,810 je kunt eigenlijk meerdere websites hosten. 275 00:15:26,810 --> 00:15:31,500 U kunt een domeinnaam zoals foo.com, en je kunt het hosten op een server. 276 00:15:31,500 --> 00:15:36,100 Maar je kunt ook kopen bar.com en hosten op dezelfde server. 277 00:15:36,100 --> 00:15:40,250 De reden hiervoor is, browsers zijn slim genoeg om de server te informeren 278 00:15:40,250 --> 00:15:45,880 wanneer een gebruiker wordt een aantal webpagina vraagt, wat domeinnaam de gebruiker wil de homepage voor. 279 00:15:45,880 --> 00:15:48,760 Dus wat er leuk is aan dit is dat je niet nodig hebt een fysieke server 280 00:15:48,760 --> 00:15:52,040 of een CS50 apparaat voor elke website die u zou willen maken. 281 00:15:52,040 --> 00:15:55,520 U kunt gebruik maken van dezelfde server en het ontwikkelen van een honderd verschillende websites. 282 00:15:55,520 --> 00:15:58,770 En inderdaad, als je een persoon die probeert om een ​​website te starten, 283 00:15:58,770 --> 00:16:02,100 of het nu voor plezier of voor zaken, meestal je uit te gaan op het internet, 284 00:16:02,100 --> 00:16:04,650 en u betaalt iemand die tien dollar per maand, een honderd dollar per maand 285 00:16:04,650 --> 00:16:06,670 om uw website te hosten voor u. 286 00:16:06,670 --> 00:16:11,060 En de manier waarop die werkt is dat ze andere mensen het opladen 287 00:16:11,060 --> 00:16:13,160 tien dollar per maand of honderd dollar per maand 288 00:16:13,160 --> 00:16:17,200 andermans websites te hosten op hun dezelfde server. 289 00:16:17,200 --> 00:16:20,740 De reden dat ze dat kunnen doen is vanwege deze functie genaamd bhosts, 290 00:16:20,740 --> 00:16:23,790 maar meer op dat wanneer het tijd is voor de definitieve projecten. 291 00:16:23,790 --> 00:16:28,360 >> Voor nu, laten we gewoon duiken daar. Dus cd vhosts, en als ik typ ls nu, 292 00:16:28,360 --> 00:16:31,370 merken dat er een map in zijn naam de lokale host. 293 00:16:31,370 --> 00:16:33,440 Dat komt omdat, standaard, het apparaat cijfers 294 00:16:33,440 --> 00:16:36,160 die je ooit zult naar een website draaien op een apparaat. 295 00:16:36,160 --> 00:16:38,970 Dit is niet echt de echte wereld, het is niet een real-world web-server. 296 00:16:38,970 --> 00:16:41,690 Dus laat me gaan in de lokale host, en nu zullen we zien daar 297 00:16:41,690 --> 00:16:44,290 een laatste directory met de naam HTML. 298 00:16:44,290 --> 00:16:47,080 Dus het is een beetje diep, de hiërarchie, maar of en wanneer 299 00:16:47,080 --> 00:16:51,230 u besluit om de ontwikkeling van meerdere websites te starten in de komende n maanden of jaren, 300 00:16:51,230 --> 00:16:54,370 dergelijke mappenstructuur meestal nuttig. 301 00:16:54,370 --> 00:16:56,560 Laten we nu eens gaan in HTML zoals ik net deed, 302 00:16:56,560 --> 00:16:59,010 ls intikt, en niets is er. 303 00:16:59,010 --> 00:17:01,390 Dus laten we nu verder gaan en dit doen. Laat me open te stellen Chrome 304 00:17:01,390 --> 00:17:07,300 binnenkant van het apparaat, en laat mij gaan naar http://localhost. 305 00:17:07,300 --> 00:17:14,440 Dus letterlijk de naam voor mijn apparaat, in te voeren, en ik krijg index van /. 306 00:17:14,440 --> 00:17:18,290 Dit is niet echt laat me iets van belang, 307 00:17:18,290 --> 00:17:23,400 maar het blijkt dat wat we nu zien is dat de map HTML. 308 00:17:23,400 --> 00:17:25,770 Er is niets in die map op dit moment, 309 00:17:25,770 --> 00:17:28,750 dus in plaats, wat ik ga moeten doen is eerst een bestand. 310 00:17:28,750 --> 00:17:33,530 Maak een HTML-bestand zoals wij deden op maandag, maar deze keer zet het binnenkant van het apparaat. 311 00:17:33,530 --> 00:17:36,830 Voor degenen onder u die proberen om mee te volgen met laptops nu, 312 00:17:36,830 --> 00:17:42,040 Laat me u een apart dat zal worden behandeld in de web-based PSET, 313 00:17:42,040 --> 00:17:44,280 maar om te krijgen dit te laten werken voor de allereerste keer, 314 00:17:44,280 --> 00:17:49,830 je gaat te hebben om deze opdracht uit te voeren: sudo service httpd start. 315 00:17:49,830 --> 00:17:52,670 En dit, nogmaals, zal worden herhaald in de laatste PSET, 316 00:17:52,670 --> 00:17:55,460 maar als je meespeelt nu thuis, de webserver 317 00:17:55,460 --> 00:17:58,660 wordt uitgeschakeld in het apparaat, en dat is zo dat het niet sap up RAM 318 00:17:58,660 --> 00:18:01,960 en geheugen voor 7 weken van het semester als we het niet nodig hebben. 319 00:18:01,960 --> 00:18:05,190 Dus je moet dit commando eenmaal uit te voeren, en u zult een uitvoer is als dat te krijgen. 320 00:18:05,190 --> 00:18:07,920 Dan moet je in staat zijn om hier mee te spelen. 321 00:18:07,920 --> 00:18:10,330 Laten we nu eens terug te gaan in deze map. 322 00:18:10,330 --> 00:18:12,770 Deze map is leeg, dus laat me beginnen met het maken van een bestand, 323 00:18:12,770 --> 00:18:16,360 gedit hello.html. 324 00:18:16,360 --> 00:18:20,930 >> Oke. Gedit is open, zoals gewoonlijk. Laat mij dat doen doctype, html, 325 00:18:20,930 --> 00:18:25,270 html, laat me voor mezelf en begin het sluiten van mijn tags op voorhand. 326 00:18:25,270 --> 00:18:28,380 Nu heb ik het hoofd. Laat me ga je gang en sluit het hoofd, 327 00:18:28,380 --> 00:18:32,450 laat me je nu de titel van de pagina doen, hello world zoals de vorige keer, 328 00:18:32,450 --> 00:18:34,790 dicht titel, nu laat mij een lichaam. 329 00:18:34,790 --> 00:18:38,130 Hierin zal ik hallo zeggen, wereld met een aantal exclams 330 00:18:38,130 --> 00:18:40,550 om duidelijk te maken dat het een andere snaar. 331 00:18:40,550 --> 00:18:45,800 Sluiten lichaam, en nu laat me gaan en op te slaan. 332 00:18:45,800 --> 00:18:48,470 Laat me terug naar mijn terminal venster, en als ik typ ls, 333 00:18:48,470 --> 00:18:51,830 Ik zou, vermoedelijk, zie hello.html. En ik doe. 334 00:18:51,830 --> 00:18:55,070 Dus laten we nu terug naar mijn browser, klik herladen, 335 00:18:55,070 --> 00:18:58,930 en je kunt zien dat we inderdaad de binnenkant van deze HTML map. 336 00:18:58,930 --> 00:19:02,310 Ik ben niet het zien van een webpagina nog, dit is Apache, de webserver, 337 00:19:02,310 --> 00:19:04,670 gewoon je me de lijst met de inhoud van deze map. 338 00:19:04,670 --> 00:19:08,260 Net zoals Mac OS of Windows zouden in het algemeen te doen op uw eigen lokale harde schijf. 339 00:19:08,260 --> 00:19:12,730 Dus als ik wil deze webpagina te zien, kan ik op dit kleine link hier, hello.html, 340 00:19:12,730 --> 00:19:15,160 en inderdaad, dat is wat ik had verwacht te zien. 341 00:19:15,160 --> 00:19:18,080 Nu, nogmaals, dit is niet een URL die een van je nu kunt bezoeken, 342 00:19:18,080 --> 00:19:20,760 want voor u, lokale host, als je een laptop hier, 343 00:19:20,760 --> 00:19:23,050 Het is een verwijzing naar uw eigen exemplaar van het apparaat. 344 00:19:23,050 --> 00:19:25,900 Dit is op mijn eigen persoonlijke apparaat, 345 00:19:25,900 --> 00:19:29,080 maar dit is een beetje dom voor mij te hebben, moeten 346 00:19:29,080 --> 00:19:34,480 een gebruiker zoals ik klik op hello.html om daadwerkelijk te zien van de inhoud van deze pagina. 347 00:19:34,480 --> 00:19:42,590 Het blijkt dat webservers zoals Apache laten heb je een standaard bestand voor elke web-server. 348 00:19:42,590 --> 00:19:44,640 Let hier hebben we hello.html. 349 00:19:44,640 --> 00:19:48,410 Wat is het commando in Linux om een ​​bestand te hernoemen? 350 00:19:48,410 --> 00:19:50,870 >> MV, voor beweging. Dus laat me dat doen, 351 00:19:50,870 --> 00:19:55,870 en laat me hello.html hernoemen naar index.html. 352 00:19:55,870 --> 00:19:58,610 Laat ik typ ls om te bevestigen dat het nu is omgedoopt. 353 00:19:58,610 --> 00:20:03,250 Nu dit gaat - als ik terug naar de lokale host, 354 00:20:03,250 --> 00:20:06,710 merk nu dat ik automatisch ben die webpagina te zien. 355 00:20:06,710 --> 00:20:11,740 Dit is identiek aan mijn werkelijk te doen / index.html, 356 00:20:11,740 --> 00:20:14,740 maar het leuke is nu dat de webserver is uitzoeken, 357 00:20:14,740 --> 00:20:18,830 oh, als u een bestand dat, door menselijke conventies, wordt de naam index.html, 358 00:20:18,830 --> 00:20:21,200 laat ik de gebruiker dat bestand standaard 359 00:20:21,200 --> 00:20:25,290 in plaats van een domme directory listing die helemaal niet gebruiksvriendelijk. 360 00:20:25,290 --> 00:20:28,900 Sterker nog, de meeste websites die u bezoekt op het internet niet over een lijst met bestanden om te klikken op, 361 00:20:28,900 --> 00:20:34,040 ze gewoon tonen u de inhoud. Dus dat is hoe we dat kunnen doen, index.html. 362 00:20:34,040 --> 00:20:37,000 Dus dit is allemaal leuk en aardig, maar dit is een vrij eenvoudige webpagina. 363 00:20:37,000 --> 00:20:41,640 Laat me ga je gang en open index.html in mijn vhosts, 364 00:20:41,640 --> 00:20:47,620 lokale hosts, html directory, en laten we iets toevoegen van groter belang. 365 00:20:47,620 --> 00:20:56,120 Dus er is hello world, in plaats daarvan laten we zeggen: 'Dit is CS50, Harvard College. . . ' 366 00:20:56,120 --> 00:21:00,000 Dus het begin van de studiegids beschrijving van een soort daar. 367 00:21:00,000 --> 00:21:03,780 Nu, als ik herladen, moet ik dit zien in mijn home page. 368 00:21:03,780 --> 00:21:09,560 Oke, en ik zie dat, maar stel dat ik wil wat meer inhoud nu een lijst van in dit bestand. 369 00:21:09,560 --> 00:21:15,160 Ik kan hier naar beneden gaan en zeggen, voorwaarden geen, 370 00:21:15,160 --> 00:21:18,740 hoewel sommige van jullie waarschijnlijk graag, 'Ha ha ha, geen vereisten.' 371 00:21:18,740 --> 00:21:24,320 Maar - officieel. Dus herladen, en nu hebben we dezelfde eigenaardigheid die we vorige keer zagen. 372 00:21:24,320 --> 00:21:26,240 Maar waarom is dat? Het was een eenvoudige oplossing. 373 00:21:26,240 --> 00:21:31,440 Waarom is deze pagina kapot is? 374 00:21:31,440 --> 00:21:34,170 [Student, onverstaanbaar] >> Ja, we hebben dit opgelost voordat 375 00:21:34,170 --> 00:21:37,440 door expliciet de browser te vertellen "hier zetten een regeleinde. ' 376 00:21:37,440 --> 00:21:39,440 En dat komt omdat, nogmaals, is een browser alleen maar te doen 377 00:21:39,440 --> 00:21:42,610 expliciet wat de opmaaktaal hem opdraagt, 378 00:21:42,610 --> 00:21:45,730 dus zelfs al heb je misschien druk op enter of twee keer of zelfs tien keer, 379 00:21:45,730 --> 00:21:49,870 het gaat om die samen alle in een enkele ruimte, maar volgens afspraak. 380 00:21:49,870 --> 00:21:52,770 Dus als je echt wilt een regeleinde, moet je de br tag te gebruiken, 381 00:21:52,770 --> 00:21:56,840 en nu bericht, net als maandag, heb ik de / binnenkant van deze tag, 382 00:21:56,840 --> 00:22:00,090 alleen omdat dit werkt gewoon niet goed voelt 383 00:22:00,090 --> 00:22:02,990 om een ​​regeleinde te starten, stop deze met niets ertussen. 384 00:22:02,990 --> 00:22:07,740 >> Dus de conventie in HTML is te openen en tegelijkertijd sluiten van een tag. 385 00:22:07,740 --> 00:22:11,050 Even terzijde, je zult een heleboel websites te zien in boeken niet om dat te doen. 386 00:22:11,050 --> 00:22:14,240 Het is juist om te doen of niet te doen, maar we pleiten zouden 387 00:22:14,240 --> 00:22:17,430 dat het ontwerp-wijs en stilistisch, dit is gewoon beter 388 00:22:17,430 --> 00:22:20,540 want dan elke tag is zowel geopend en gesloten een of andere manier. 389 00:22:20,540 --> 00:22:23,370 Dus laten we nu opslaan en opnieuw laden. Ga terug naar de browser, oke. 390 00:22:23,370 --> 00:22:26,680 Nu maken we enige vooruitgang, maar het is niet genoeg. 391 00:22:26,680 --> 00:22:33,210 Laten we verder gaan en beginnen met typen in sommige langer lichaam van de tekst. 392 00:22:33,210 --> 00:22:40,610 Dus laten we zeggen, 'Een snelle bruine vos springt over een luie hond.' 393 00:22:40,610 --> 00:22:42,700 En nu laat ik gewoon kopiëren en plak deze een paar keer 394 00:22:42,700 --> 00:22:45,040 zodat wij een paragraaf van tekst. 395 00:22:45,040 --> 00:22:47,780 Laten we terug gaan hier. Dus het ziet er niet erg goed. 396 00:22:47,780 --> 00:22:50,000 Ik heb wel een regeleinde, dus het is oke, 397 00:22:50,000 --> 00:22:52,140 maar nu, als we nu op het punt van het hebben van een webpagina 398 00:22:52,140 --> 00:22:55,640 dat heeft veel van de inhoud en niet alleen enkele lijnen aan te tonen HTML, 399 00:22:55,640 --> 00:22:58,570 kunnen we beginnen te denken van deze dingen als werkelijke leden. 400 00:22:58,570 --> 00:23:01,590 En we kunnen beginnen met onze webpagina structureren een beetje schoner. 401 00:23:01,590 --> 00:23:05,120 En inderdaad, wat ik kan doen is hier naar boven binnenkant van mijn body-tag, 402 00:23:05,120 --> 00:23:09,400 en weet je wat, als 'Dit is CS50. . . ' echt demarks het begin van een paragraaf, 403 00:23:09,400 --> 00:23:11,310 Nou, laten we taggen als zodanig. 404 00:23:11,310 --> 00:23:13,570 Laat me streepje van de tekst, maar volgens afspraak, laat ik zeggen 405 00:23:13,570 --> 00:23:15,710 dat deze paragraaf eindigt hier, 406 00:23:15,710 --> 00:23:18,320 en dan in plaats van er dit regeleinde, laat me gewoon zeggen 407 00:23:18,320 --> 00:23:23,300 dat dit hoort daar en als een nieuwe paragraaf, 408 00:23:23,300 --> 00:23:27,610 en ik zal gewoon snel streepje door gewoon verpesten alle van dit spul. 409 00:23:27,610 --> 00:23:30,660 >> Dus nu hebben we een ingesprongen paragraaf daar, 410 00:23:30,660 --> 00:23:33,510 en nu onze markup begint om een ​​beetje meer te krijgen 411 00:23:33,510 --> 00:23:37,070 semantisch overeen met wat we proberen te doen. 412 00:23:37,070 --> 00:23:40,130 We hebben een paragraaf, dus laten we noemen het een paragraaf met de tag p. 413 00:23:40,130 --> 00:23:43,370 We hebben een tweede paragraaf, dus laten we noemen het een paragraaf met de tag p. 414 00:23:43,370 --> 00:23:45,850 En nu is de browser, wat zal doorgaans doen 415 00:23:45,850 --> 00:23:48,490 is net als in een Engels boek of essay, 416 00:23:48,490 --> 00:23:51,280 waar je normaal gesproken ziet een aantal lege ruimtes tussen de. 417 00:23:51,280 --> 00:23:53,720 Browsers zal dat automatisch voor u doen. 418 00:23:53,720 --> 00:23:56,680 Dus nu hebben we twee leden en kunnen we verder met deze. 419 00:23:56,680 --> 00:23:58,770 Maar, uiteraard, op het web, als je lichaam van de tekst 420 00:23:58,770 --> 00:24:01,370 het is meestal niet alleen grote klodders van tekst. 421 00:24:01,370 --> 00:24:04,040 Er zijn vaak hyperlinks in. 422 00:24:04,040 --> 00:24:07,250 Dus als we willen, bijvoorbeeld, zijn enkele links daar, 423 00:24:07,250 --> 00:24:10,760 veronderstel dat interessant kunnen zijn in welke webpagina ik hier het creëren van is - 424 00:24:10,760 --> 00:24:12,780 laat mij gaan naar Google.com, 425 00:24:12,780 --> 00:24:16,540 en laat mij zoeken naar een snelle bruine vos. 426 00:24:16,540 --> 00:24:22,150 Ga naar Google afbeeldingen, en, wat dacht je - dit is leuk. 427 00:24:22,150 --> 00:24:27,420 We gaan met dit. Hier hebben we dus een snelle bruine vos springen over een luie hond. 428 00:24:27,420 --> 00:24:30,560 Dus wat ik ga doen hier, alleen maar omwille van de demonstratie, 429 00:24:30,560 --> 00:24:32,950 wordt veronderstellen dat dit beeld was op mijn server, 430 00:24:32,950 --> 00:24:35,240 en ik was het maken van deze beelden. 431 00:24:35,240 --> 00:24:38,720 Wat ik net deed was de rechter muisknop of Ctrl-klik op de afbeelding, 432 00:24:38,720 --> 00:24:42,370 en wat je ziet in de meeste browsers is er een klein menu - 433 00:24:42,370 --> 00:24:48,800 stoppen met het doen dat - een klein menu waarmee u kunt kiezen koppeling kopiëren locatie of kopieer de URL. 434 00:24:48,800 --> 00:24:52,750 Dus laat me nu terug naar mijn HTML, en stel dat ik wil 435 00:24:52,750 --> 00:24:56,420 om een ​​hyperlink deze naar een andere webpagina. 436 00:24:56,420 --> 00:24:58,640 >> Wat was de label met de naam voor? 437 00:24:58,640 --> 00:25:01,650 [Student, onverstaanbaar] >> Ja. Dus a href voor hyper referentie. 438 00:25:01,650 --> 00:25:04,660 Laat me ga je gang en plak die binnen 439 00:25:04,660 --> 00:25:07,290 Het is een vrij lange URL, dus laat me zoomen weer naar buiten. 440 00:25:07,290 --> 00:25:09,950 Sluiten haakjes, dus let nu op ik ben weg hier 441 00:25:09,950 --> 00:25:11,960 omdat die URL toevallig vrij lang. 442 00:25:11,960 --> 00:25:15,180 Laat me scrollen hier naar het einde van de quick brown fox, 443 00:25:15,180 --> 00:25:18,830 en dan laat ik deze tag te sluiten met 00:25:21,280 waar ik alleen de naam van de tag gesloten. 445 00:25:21,280 --> 00:25:24,470 Laat me nu gaan en op te slaan dat bestand, laadt de webpagina, 446 00:25:24,470 --> 00:25:27,880 en nu, standaard, dat gaat worden blauw onderstreept voor mij, 447 00:25:27,880 --> 00:25:31,980 maar inderdaad, ik kan nu klikken op deze en voila. Er is dat beeld. 448 00:25:31,980 --> 00:25:33,990 En het hoefde niet een beeld te zijn, het kan zijn gekoppeld 449 00:25:33,990 --> 00:25:36,270 met een andere willekeurige website op het internet. 450 00:25:36,270 --> 00:25:39,610 Ik zou dit kunnen doen, bijvoorbeeld met CS50, dus een laatste voorbeeld. 451 00:25:39,610 --> 00:25:42,730 'Dit is CS50' misschien zinvol om te gaan een, href = 452 00:25:42,730 --> 00:25:50,340 http://www.cs50.net, dicht citaat, in de buurt anker. 453 00:25:50,340 --> 00:25:53,990 Dus nu dat is een nog kortere URL, en deze keer zijn we niet van plan om te koppelen aan een afbeelding. 454 00:25:53,990 --> 00:25:57,880 We gaan in plaats daarvan om te linken naar een andere pagina. 455 00:25:57,880 --> 00:25:59,840 Nu hebben we een beeld hier. 456 00:25:59,840 --> 00:26:02,970 Ik voel me als we kunnen doen een beetje beter dan alleen maar linken naar een afbeelding. 457 00:26:02,970 --> 00:26:05,760 Wat als we willen echt belichamen in onze eigen webpagina? 458 00:26:05,760 --> 00:26:09,290 >> Nou, wat kan ik hier doen is, in plaats van link naar deze grafisch, 459 00:26:09,290 --> 00:26:14,690 laat me in plaats daarvan de URL te snijden, en wij zullen te ontdoen van die hyperlink en dit opruimen. 460 00:26:14,690 --> 00:26:17,190 En we zullen hier naar beneden gaan en zich te ontdoen van deze. 461 00:26:17,190 --> 00:26:20,910 We hebben niet echt al die zinnen nu nodig, dus laat me verkorten van de pagina een beetje. 462 00:26:20,910 --> 00:26:24,530 En dan hier beneden laat me gaan in een nieuwe paragraaf, 463 00:26:24,530 --> 00:26:30,100 zeggen dat ik niet de tekst nu wil, ik wil een afbeelding waarvan de bron gaat dat URL zijn. 464 00:26:30,100 --> 00:26:33,100 Een beeld, zoals een regeleinde, is er of het is het niet. 465 00:26:33,100 --> 00:26:35,900 Dus laat me meteen die tag te sluiten. 466 00:26:35,900 --> 00:26:39,440 Laat me nu ga je gang en sluit de paragraaf die ik binnen ben, 467 00:26:39,440 --> 00:26:43,010 en als alles goed gaat met hello, world, als ik nu opnieuw te laden, 468 00:26:43,010 --> 00:26:45,520 Ik, inderdaad, zie rechts in mijn eigen webpagina een afbeelding. 469 00:26:45,520 --> 00:26:48,570 Dus nu hebben we een image tag, een anker tag en dergelijke, 470 00:26:48,570 --> 00:26:51,320 en voor een goede maatregel, laat mij een ander ding dat vaak verwaarloosd 471 00:26:51,320 --> 00:26:55,900 op websites van deze dag: Laten we zorgen voor een beschrijvende tekst voor deze afbeelding 472 00:26:55,900 --> 00:26:58,090 voor mensen die op een mobiel apparaat 473 00:26:58,090 --> 00:27:00,640 en dus misschien niet in staat om dit beeld te downloaden zeer snel, 474 00:27:00,640 --> 00:27:03,310 voor mensen die blind zijn en misschien niet in staat om het beeld te zien 475 00:27:03,310 --> 00:27:06,480 maar ze zou kunnen hebben een schermlezer die kan vertellen wat dit beeld is van. 476 00:27:06,480 --> 00:27:09,100 En om dat te doen, is er een ander attribuut voor het imago-tags 477 00:27:09,100 --> 00:27:11,290 riep alt, voor alternatieve tekst. 478 00:27:11,290 --> 00:27:14,650 En wat ik hier kan doen is zeggen: 'Dit is een snelle bruine vos.' 479 00:27:14,650 --> 00:27:17,650 Zodat zelfs indien de mens kan het beeld niet op het scherm, 480 00:27:17,650 --> 00:27:20,560 hij kan tenminste horen als enkele software, 481 00:27:20,560 --> 00:27:23,080 Wat er eigenlijk op het scherm. 482 00:27:23,080 --> 00:27:25,040 >> Dat zal niet veranderen de esthetiek van de pagina, 483 00:27:25,040 --> 00:27:27,640 maar het is zeker een goede praktijk voor de gebruikers. 484 00:27:27,640 --> 00:27:31,760 Oke, laten we deze webpagina te verlaten in zijn huidige vorm, 485 00:27:31,760 --> 00:27:33,890 maar laten we eens kijken of we kunnen nu niet invoeren 486 00:27:33,890 --> 00:27:36,210 sommige beter benaderingen van het schrijven van deze webpagina's, 487 00:27:36,210 --> 00:27:39,980 een aantal lessen die gaan om ons te dienen en onze pagina's krijgen meer en meer complex. 488 00:27:39,980 --> 00:27:42,220 Wat we niet gaan doen in de komende paar weken 489 00:27:42,220 --> 00:27:46,810 wordt u door alle van de tientallen HTML-tags die er zijn. 490 00:27:46,810 --> 00:27:49,800 Veel terug als in kras in week 0, zal het waarschijnlijk voldoende 491 00:27:49,800 --> 00:27:52,120 op een hoog niveau overzicht van enkele van de concepten te geven, 492 00:27:52,120 --> 00:27:54,530 een korte rondleiding van een aantal van de blokken was je waarschijnlijk in staat, 493 00:27:54,530 --> 00:27:58,240 vrij comfortabel, om te navigeren op uw eigen, de verschillende puzzelstukjes. 494 00:27:58,240 --> 00:28:00,460 En dat gaat weer gebeuren in HTML, het meest waarschijnlijk, 495 00:28:00,460 --> 00:28:04,320 waarbij er voldoende middelen op het web dat we u wijzen op, 496 00:28:04,320 --> 00:28:06,920 verschillende leerboeken, als u liever een studieboek te lezen, 497 00:28:06,920 --> 00:28:10,560 dat zal u door alle van de verschillende dingen die je kunt doen met HTML, 498 00:28:10,560 --> 00:28:16,100 maar echt, hebben we tot nu toe gezien in HTML het grootste deel van de fundamentele concepten. 499 00:28:16,100 --> 00:28:19,900 We hebben het idee van tags worden geopend, worden labels gesloten. 500 00:28:19,900 --> 00:28:22,100 Sommige tags die zijn beide geopend en gesloten 501 00:28:22,100 --> 00:28:24,620 in de zin dat ze leeg zijn, er mag niets binnenkant van hen zijn 502 00:28:24,620 --> 00:28:27,490 als een afbeelding tag of een regeleinde, die zijn er gewoon. 503 00:28:27,490 --> 00:28:32,330 We hebben ook gekeken al bij het idee van een attribuut, zoals alt of bron. 504 00:28:32,330 --> 00:28:36,410 Merk op dat deze woorden de neiging, volgens afspraak, kort en bondig. 505 00:28:36,410 --> 00:28:39,140 >> We hebben geen zeggenschap meer over wat deze dingen worden genoemd, 506 00:28:39,140 --> 00:28:42,060 iemand anders die de uitvinder van HTML kwam met deze namen. 507 00:28:42,060 --> 00:28:44,710 Dus je hoeft alleen te gaan om te weten of opzoeken, elke keer dat je ze nodig hebt, 508 00:28:44,710 --> 00:28:47,160 wat de namen zijn van deze tags en attributen. 509 00:28:47,160 --> 00:28:49,510 Bij deze kenmerken toekent algemeen 510 00:28:49,510 --> 00:28:52,900 het gedrag van sommige tag. 511 00:28:52,900 --> 00:28:55,710 In dit geval is de bron attribuut vertelt de image tag 512 00:28:55,710 --> 00:28:57,940 wat de bron van het beeld moet. 513 00:28:57,940 --> 00:29:04,460 De href attribuut vertelt de ankertag wat het eigenlijk zou moeten worden gekoppeld aan. 514 00:29:04,460 --> 00:29:06,800 Maar in termen van de structuur van een webpagina, hoewel Facebook 515 00:29:06,800 --> 00:29:09,680 en Google en dergelijke eruit ziet als een grote puinhoop 516 00:29:09,680 --> 00:29:12,560 onder de kap op het eerste gezicht, als je begint te lezen door het 517 00:29:12,560 --> 00:29:16,950 meer methodisch, ze volgen allemaal deze fundamentele, basisstructuur. 518 00:29:16,950 --> 00:29:19,660 Maar we kunnen het verbeteren van de stilering van deze dingen. 519 00:29:19,660 --> 00:29:24,180 Dus laat me gaan naar een paar voorbeelden die ik voorbereid. 520 00:29:24,180 --> 00:29:27,280 Laat me ga je gang en kopieer ze vanaf een andere map hier 521 00:29:27,280 --> 00:29:29,380 en leg ze in deze map. 522 00:29:29,380 --> 00:29:32,210 Van te voren, wat ik deed was bereid een paar bestanden: 523 00:29:32,210 --> 00:29:35,670 search0, SEARCH1, search2 en search3 en 4. 524 00:29:35,670 --> 00:29:38,740 Laat me verder gaan en het openstellen van de eerste van deze bestanden, 525 00:29:38,740 --> 00:29:42,570 en laten we kijken of we kunnen niet beginnen om onze eigen zoekmachine te maken. 526 00:29:42,570 --> 00:29:46,530 Op de top van dit bestand, zoals meestal het geval is in de klas, gewoon een stel van opmerkingen. 527 00:29:46,530 --> 00:29:49,760 In HTML, echter de manier waarop je begint een reactie 528 00:29:49,760 --> 00:29:55,640 is <- en dan ben je de binnenkant van een reactie, een multi-line commentaar. 529 00:29:55,640 --> 00:29:59,800 Wanneer u klaar bent om die opmerking te stoppen, kun je ->. 530 00:29:59,800 --> 00:30:02,380 Dus alles aan de top in het blauw is gewoon een reactie. 531 00:30:02,380 --> 00:30:04,620 >> Dit is mijn doctype declaratie, wat ook weer, 532 00:30:04,620 --> 00:30:07,080 je kunt gewoon kopiëren en plakken op het geloof, voor nu. 533 00:30:07,080 --> 00:30:10,410 Dit vertelt alleen de browser, "Hier komt een aantal HTML 5. ' 534 00:30:10,410 --> 00:30:13,600 Daaronder, op lijn 14, is de eerste van mijn echte tags, 535 00:30:13,600 --> 00:30:16,900 en dit zegt alleen, zoals voorheen, hier komt een aantal HTML, 536 00:30:16,900 --> 00:30:19,460 hier komt de kop van mijn pagina, hier komt de titel, 537 00:30:19,460 --> 00:30:23,900 en dan, omgekeerd, dat is het voor de titel, dat is het voor het hoofd. 538 00:30:23,900 --> 00:30:26,460 Hier komt nu het lichaam van mijn pagina. 539 00:30:26,460 --> 00:30:31,040 Dus een paar nieuwe tags nu: h1 staat voor rubriek 1. 540 00:30:31,040 --> 00:30:33,850 Er is een traditie in HTML voor vele jaren terug 541 00:30:33,850 --> 00:30:37,990 van met verschillende afmetingen tekst. 542 00:30:37,990 --> 00:30:41,980 En terug in de dag, elk bedoeld, over het algemeen, net groot en vet. 543 00:30:41,980 --> 00:30:45,860 Maar er is ook h2, die is groot, maar niet zo groot en vet. 544 00:30:45,860 --> 00:30:49,320 Er is h3, dat is een beetje groot, maar lang niet zo groot en vet, 545 00:30:49,320 --> 00:30:52,380 enzovoort, helemaal naar beneden tot h6. 546 00:30:52,380 --> 00:30:55,550 Deze dagen, niettemin, zijn H1, H2 en H3 echt bedoeld 547 00:30:55,550 --> 00:30:57,980 om meer semantische betekenis hebben voor hen, 548 00:30:57,980 --> 00:31:01,100 waarbij h1 is echt een rubriek: de titel van een webpagina, 549 00:31:01,100 --> 00:31:04,210 de kop van een kolom of iets dergelijks van de tekst. 550 00:31:04,210 --> 00:31:09,030 Dus ik heb met opzet zei h1 CS50 zoeken> h1 551 00:31:09,030 --> 00:31:12,640 te worden aangegeven dat dit echt de kop, de titel van mijn pagina. 552 00:31:12,640 --> 00:31:14,850 Niet de titel in de titelbalk zin, 553 00:31:14,850 --> 00:31:18,960 maar de titel die u daadwerkelijk in de webpagina zelf, in het lichaam. 554 00:31:18,960 --> 00:31:20,990 Nu dit, kunt u waarschijnlijk wel raden wat het is, 555 00:31:20,990 --> 00:31:23,110 ook al hebben we een paar nieuwe stukken van de syntaxis. 556 00:31:23,110 --> 00:31:25,930 Dit is een vorm. Dus het web echt interessant 557 00:31:25,930 --> 00:31:28,770 wanneer websites input van gebruikers. 558 00:31:28,770 --> 00:31:31,700 In deze klasse, in het probleem te stellen op de website van de programmering, 559 00:31:31,700 --> 00:31:33,880 we gaan niet naar een website, per se te maken, 560 00:31:33,880 --> 00:31:37,570 met statische content die foto's die je hebt genomen laat zien, 561 00:31:37,570 --> 00:31:40,010 of dit is mijn CV, en dingen over mij, 562 00:31:40,010 --> 00:31:42,450 want die dingen zijn relatief eenvoudig in elkaar te zetten. 563 00:31:42,450 --> 00:31:44,400 Het is moeilijk om mooie dingen te maken op het web, 564 00:31:44,400 --> 00:31:46,390 maar in ieder geval het ophangen van de inhoud is vrij triviaal. 565 00:31:46,390 --> 00:31:49,380 Maar pas echt interessant wanneer iemand uw website te bezoeken 566 00:31:49,380 --> 00:31:52,260 en zorgen voor input en kunnen formulieren invullen, 567 00:31:52,260 --> 00:31:55,800 kunt afvinken checkboxes en kan communiceren met uw website. 568 00:31:55,800 --> 00:31:57,780 En inderdaad, waarschijnlijk elke website die u belangrijk vindt 569 00:31:57,780 --> 00:32:00,710 deze dagen, in detail, is een of andere manier interactief. 570 00:32:00,710 --> 00:32:03,110 Facebook, Google, en dergelijke, dat invoer van de gebruiker te nemen 571 00:32:03,110 --> 00:32:05,100 en produceren uitvoerprofiel. 572 00:32:05,100 --> 00:32:07,780 >> Dus laten we beginnen nu doen. Laten we de overgang nu 573 00:32:07,780 --> 00:32:11,150 van alleen met behulp van HTML-opmaak voor de statische inhoud 574 00:32:11,150 --> 00:32:14,790 als in plaats daarvan een mechanisme voor aflevering van dynamische inhoud. 575 00:32:14,790 --> 00:32:17,350 En in de richting van dat doel, laten we voeren onze eigen zoekmachine. 576 00:32:17,350 --> 00:32:20,820 Laten we het doen als volgt. Hier is de form tag. 577 00:32:20,820 --> 00:32:24,090 De actie attribuut geeft aan dat wanneer de gebruiker vult dit formulier in 578 00:32:24,090 --> 00:32:28,400 met hun toetsenbord, zal het worden voorgelegd aan deze URL hier. 579 00:32:28,400 --> 00:32:31,230 Dus ik ben een beetje vals spelen. Het gaat ons iets langer duren 580 00:32:31,230 --> 00:32:33,780 dan een klasse om de hele zoekmachine implementeren, 581 00:32:33,780 --> 00:32:35,880 dus we zullen gewoon de front-end, bij wijze van spreken. 582 00:32:35,880 --> 00:32:38,650 We doen het deel dat de gebruiker zoeken laat, en wij zullen van Punt sorteren naar Google 583 00:32:38,650 --> 00:32:40,950 het harde deel van het vinden van de zoekresultaten, 584 00:32:40,950 --> 00:32:43,520 maar, in het bijzonder, ik ga praten met web Google-server 585 00:32:43,520 --> 00:32:46,710 met behulp van een van de twee zeer populaire methoden. 586 00:32:46,710 --> 00:32:50,000 Een wordt krijgen, een ander, dat we uiteindelijk zullen zien, zijn post, 587 00:32:50,000 --> 00:32:52,660 hoewel er anderen zijn die minder vaak worden gebruikt. 588 00:32:52,660 --> 00:32:56,440 Dus maak je maar roept het idee van, ik wil een aantal inhoud te krijgen, nog wat zoekresultaten. 589 00:32:56,440 --> 00:32:58,440 Dit kun je misschien raden wat dit doet. 590 00:32:58,440 --> 00:33:01,900 Dit is een soort van input, het is in feite gaan om te kijken als een tekstveld, 591 00:33:01,900 --> 00:33:05,200 en de naam van de input, de naam van de variabele, zogezegd 592 00:33:05,200 --> 00:33:08,610 zal worden q voor zoekopdracht volgens afspraak. 593 00:33:08,610 --> 00:33:11,700 En nogmaals, is de aard van deze ingang niet van plan om een ​​checkbox te zijn; 594 00:33:11,700 --> 00:33:13,890 het is niet van plan om een ​​menu te zijn, het gaat om een ​​tekstveld 595 00:33:13,890 --> 00:33:18,060 zoals aangeduid door dit kenmerk hier en dit tekstvak 596 00:33:18,060 --> 00:33:20,680 zoals een regeleinde, is er of niet. 597 00:33:20,680 --> 00:33:24,480 Dus hebben we een leeg element met de schuine streep in die tag. 598 00:33:24,480 --> 00:33:28,050 Dan ga ik naar een regeleinde zetten, en je kunt misschien wat denk je dit gaat doen. 599 00:33:28,050 --> 00:33:30,210 Dit is een andere soort vorm input. 600 00:33:30,210 --> 00:33:32,350 >> Deze is gebruikt zal worden voor het indienen van het formulier. 601 00:33:32,350 --> 00:33:36,140 Dus dit gaat om de grote knop die de gebruiker kan klikken om het formulier te zijn, 602 00:33:36,140 --> 00:33:40,800 en het etiket op die knop gaat worden "CS50 zoeken. ' 603 00:33:40,800 --> 00:33:44,170 Sluiten vorm, in de buurt lichaam, in de buurt HTML. 604 00:33:44,170 --> 00:33:46,280 Laten we eens kijken wat we hebben in de vorm van deze webpagina. 605 00:33:46,280 --> 00:33:48,260 Dus laat me naar mijn browser, 606 00:33:48,260 --> 00:33:50,360 laat me nog steeds naar,, de lokale host. 607 00:33:50,360 --> 00:33:54,650 Dit is nog steeds index.html, dus als ik wil dit bestand met de naam search0 te zien, 608 00:33:54,650 --> 00:33:59,710 Ik kan gewoon doen / search0.html, voer - 609 00:33:59,710 --> 00:34:01,880 en de eerste van mijn fouten. 610 00:34:01,880 --> 00:34:04,400 Wat is er aan de hand? Ik heb duidelijk niet gemachtigd 611 00:34:04,400 --> 00:34:06,430 dit bestand te openen, om wat voor reden. 612 00:34:06,430 --> 00:34:10,170 Maar dat komt omdat, in tegenstelling tot het werk dat we hebben tot nu toe gedaan in C, 613 00:34:10,170 --> 00:34:14,340 waar de programma's die u schrijft wordt verondersteld dat runable door u, 614 00:34:14,340 --> 00:34:17,590 uitvoerbaar door u, dat is niet echt het geval is op het web, 615 00:34:17,590 --> 00:34:21,010 waarbij je soms zou willen bestanden maken op een server, 616 00:34:21,010 --> 00:34:23,310 maar u niet wilt dat de hele wereld om te kunnen om ze te zien. 617 00:34:23,310 --> 00:34:25,469 Integendeel, u wilt dat de wereld om een ​​aantal bestanden te zien 618 00:34:25,469 --> 00:34:27,730 maar andere niet, gewoon omwille van de privacy van de. 619 00:34:27,730 --> 00:34:30,730 Dus het is meer een opt-in basis als je dingen doet op het web. 620 00:34:30,730 --> 00:34:32,810 En dus laat ik eigenlijk ls hier te typen, 621 00:34:32,810 --> 00:34:37,440 en zie je de bestanden die ik heb, maar herinneren dat als ik dat doe ls-l voor lang, 622 00:34:37,440 --> 00:34:41,520 Ik krijg een langere lijst, dat geeft me wat meer details over deze bestanden 623 00:34:41,520 --> 00:34:45,139 die nu, echt, voor het eerst in die relevant zijn voor ons. 624 00:34:45,139 --> 00:34:47,840 Merk op dat aan de rechterkant zijn de namen van mijn bestanden, 625 00:34:47,840 --> 00:34:50,690 en dan is de tijd waarop ze het laatst zijn gewijzigd of gekopieerd. 626 00:34:50,690 --> 00:34:54,370 Dit nummer hier is wat? Herinnert u zich? 627 00:34:54,370 --> 00:34:56,400 De grootte in bytes, hoe groot het bestand is. 628 00:34:56,400 --> 00:34:59,520 >> Dus ik lijken een soort van logo hier dat groter is dan alle andere bestanden. 629 00:34:59,520 --> 00:35:03,610 Dit is wie ik ben, dit is wat ik ben en wat de groep Ik ben binnen 630 00:35:03,610 --> 00:35:07,430 Maar dan, hier aan de linkerkant is een beetje cryptische reeks, 631 00:35:07,430 --> 00:35:10,040 en we spraken, denk ik, kort hierover in het verleden, 632 00:35:10,040 --> 00:35:12,050 maar dit heeft te maken met machtigingen. 633 00:35:12,050 --> 00:35:14,020 En zelfs als dat is een beetje vaag, 634 00:35:14,020 --> 00:35:17,270 RW betekent waarschijnlijk lezen en schrijven &. 635 00:35:17,270 --> 00:35:22,560 Dus het blijkt dat deze streepjes verschillende sets met permissies geven voor verschillende mensen. 636 00:35:22,560 --> 00:35:24,730 En het patroon is in wezen als volgt. 637 00:35:24,730 --> 00:35:27,650 Als u een reeks streepjes hier, ze zien er als volgt. 638 00:35:27,650 --> 00:35:30,450 Er is een streepje, dan is er nog drie streepjes, 639 00:35:30,450 --> 00:35:33,390 dan is er nog drie, dan is er nog drie. 640 00:35:33,390 --> 00:35:36,800 De eerste is een liggend streepje of het is reclame voor directory. 641 00:35:36,800 --> 00:35:40,220 Zodat men is vrij eenvoudig. Als het een map, d zegt, anders is het een koppelteken. 642 00:35:40,220 --> 00:35:44,080 Er zijn een paar andere gevallen, maar voor nu zullen we alleen de zorg over bestanden en mappen. 643 00:35:44,080 --> 00:35:48,090 Deze volgende drie streepjes - en ik heb kunstmatig geplaatste ruimtes. 644 00:35:48,090 --> 00:35:50,490 Ze waren uiteraard niet aanwezig toen we zagen een moment geleden. 645 00:35:50,490 --> 00:35:52,900 Dit zijn de eigenaar van het bestand de permissies, 646 00:35:52,900 --> 00:35:55,840 en oproepen van een tweede geleden dat het werd lezen en schrijven. 647 00:35:55,840 --> 00:35:58,560 Dat kwam omdat ik, als de persoon die dit bestand een moment geleden, 648 00:35:58,560 --> 00:36:01,250 Ik, net standaard, op een Linux-computer, 649 00:36:01,250 --> 00:36:03,910 de mogelijkheid om verder te lezen en schrijven dat bestand. 650 00:36:03,910 --> 00:36:07,170 >> Dus het besturingssysteem geeft me gewoon RW automatisch. 651 00:36:07,170 --> 00:36:10,840 De middelste betrekking hebben op mijn groep, die van de studenten, 652 00:36:10,840 --> 00:36:14,590 dat is een soort van betekenis op het toestel, want ik ben de enige persoon met behulp van het apparaat. 653 00:36:14,590 --> 00:36:16,620 Dus laat me gewoon mijn handen zwaaien op dat voor nu. 654 00:36:16,620 --> 00:36:19,190 Maar de laatste die het belangrijkst zijn voor het web. 655 00:36:19,190 --> 00:36:21,580 Dit is iedereen in de wereld, en het feit 656 00:36:21,580 --> 00:36:24,600 dat is --- betekent dat niemand anders in de wereld 657 00:36:24,600 --> 00:36:26,680 heeft enige rechten om dit bestand. 658 00:36:26,680 --> 00:36:29,180 Het is duidelijk een probleem, dus ik moet dit op te lossen 659 00:36:29,180 --> 00:36:33,830 door een of andere manier geeft de wereld wat? Lezen en schrijven? 660 00:36:33,830 --> 00:36:35,850 Dat is waarschijnlijk dom, toch? Ik wil niet dat iemand op het web 661 00:36:35,850 --> 00:36:38,530 naar mijn pagina een of andere manier te bezoeken en dat bestand te veranderen, 662 00:36:38,530 --> 00:36:40,800 hoewel ze kon echt niet met een HTML-bestand, 663 00:36:40,800 --> 00:36:44,110 maar gewoon in principe, waarschijnlijk gewoon willen dat ze in staat zijn om het te lezen. 664 00:36:44,110 --> 00:36:47,910 Wat betekent het om het te lezen? Het betekent niet dat ze gaan geven om de eigenlijke HTML, 665 00:36:47,910 --> 00:36:51,820 maar de browser nodig heeft om te kunnen dat opmaaktaal ontleden, 666 00:36:51,820 --> 00:36:53,720 boven naar beneden, van links naar rechts. 667 00:36:53,720 --> 00:36:57,990 Dus iemand op het web moet kunnen om het te lezen, dus ik minimaal nodig om het r. 668 00:36:57,990 --> 00:37:00,240 Ik kan dit doen in een paar verschillende manieren, maar misschien 669 00:37:00,240 --> 00:37:03,080 de eenvoudigste is om deze opdracht hier uit te voeren. 670 00:37:03,080 --> 00:37:10,860 Chmod, verandering modus, dan is een + r dus alle, iedereen in de wereld + lezen, 671 00:37:10,860 --> 00:37:13,830 en vervolgens de naam van het bestand, search0.html. 672 00:37:13,830 --> 00:37:18,310 >> Nu als ik dat doe ls-l weer merken dat het bestand is gewijzigd, 673 00:37:18,310 --> 00:37:21,440 en inderdaad, ik heb aangezet r voor iedereen. 674 00:37:21,440 --> 00:37:23,350 Ik heb ook aan het zetten voor mijn groep, maar dat is prima, 675 00:37:23,350 --> 00:37:27,150 want als ik me omdraaide in op voor iedereen, mijn groep is een subset van dat. 676 00:37:27,150 --> 00:37:31,480 Dus dat is ook goed. Dit betekent dat alleen de computer heeft nu het leesbaar. 677 00:37:31,480 --> 00:37:34,430 Laat me nu terug naar mijn browser, klikt u opnieuw te laden. 678 00:37:34,430 --> 00:37:36,330 Ah-ha. We hebben nu CS50 zoeken. 679 00:37:36,330 --> 00:37:39,830 Ik heb ingezoomd een beetje kunstmatig - vrij afschuwelijke zoekmachine. 680 00:37:39,830 --> 00:37:41,930 Maar laten we eens kijken of het echt werkt. 681 00:37:41,930 --> 00:37:45,880 Ten eerste, laat me doen een snelle sanity check, laat me controleren klikt u op en bekijk pagina te verbeteren. 682 00:37:45,880 --> 00:37:50,780 Merk op dat binnen Chrome we nu dezelfde HTML die ik zelf gemaakt te zien. 683 00:37:50,780 --> 00:37:55,420 Hier niet in de war, dat wel. Ik kan niet beginnen met het veranderen van de code hier, 684 00:37:55,420 --> 00:37:59,420 omdat de browser heeft een alleen-lezen weergave van deze code. 685 00:37:59,420 --> 00:38:06,060 De browser heeft zojuist gevraagd lokale host naar een bestand genaamd search0.html. 686 00:38:06,060 --> 00:38:09,490 Het is nu puur toeval dat het apparaat 687 00:38:09,490 --> 00:38:13,480 toevallig op dezelfde computer als mijn browser. 688 00:38:13,480 --> 00:38:20,470 Ik kon gewoon, gelijkwaardig, hebt getypt in www.facebook.com/search0.html, 689 00:38:20,470 --> 00:38:23,830 en als Facebook had een bestand met de naam die zou ik dan het zien van hun HTML. 690 00:38:23,830 --> 00:38:27,360 En, natuurlijk, kan ik niet veranderen het bestand dat afkomstig is van Facebook, hetzij. 691 00:38:27,360 --> 00:38:29,360 Dus nu zijn we soort van het vervagen van de lijnen. 692 00:38:29,360 --> 00:38:32,130 Het apparaat is zowel een server, waar je van webpagina's, 693 00:38:32,130 --> 00:38:34,870 maar het is ook een klant in de zin dat ik een browser met behulp van 694 00:38:34,870 --> 00:38:37,630 om daadwerkelijk praten met die server. 695 00:38:37,630 --> 00:38:39,610 Dus laten we eens kijken of mijn Google zoekmachine werkt. 696 00:38:39,610 --> 00:38:44,930 Laat me ga je gang en zoek naar snelle bruine vos, in te voeren. 697 00:38:44,930 --> 00:38:47,540 En voila, ik heb nu mijn eigen zoekmachine. 698 00:38:47,540 --> 00:38:51,460 >> Maar hoe werkt dit? 699 00:38:51,460 --> 00:38:55,380 Beetje een stretch, maar - en nu kun je niet zien, precies, het deel dat is van belang. 700 00:38:55,380 --> 00:38:57,370 Let op wat er gebeurt. 701 00:38:57,370 --> 00:39:00,430 Let op de URL. Het blijkt dat deze methode, 702 00:39:00,430 --> 00:39:02,780 krijgen genaamd, is super-eenvoudig. 703 00:39:02,780 --> 00:39:10,270 Wanneer u opgeeft in een vorm die u wilt resultaten 'krijgen' van enkele server, 704 00:39:10,270 --> 00:39:13,200 wat het gaat doen is nemen wat u hebt getypt in de vorm 705 00:39:13,200 --> 00:39:15,290 en zet het in de URL. 706 00:39:15,290 --> 00:39:18,580 Het gaat om te standaardiseren hoe het wordt gezet in de URL als volgt. 707 00:39:18,580 --> 00:39:22,290 Merk op dat dit is de URL die is de waarde van mijn action attribuut. 708 00:39:22,290 --> 00:39:24,730 Dat is waar ik wilde het formulier te eindigen. 709 00:39:24,730 --> 00:39:26,950 Maar dan merk je vraagteken. 710 00:39:26,950 --> 00:39:30,230 Dit is een verdrag op het web, waarbij de gebruiker input te leveren 711 00:39:30,230 --> 00:39:35,320 naar een website, je toe te voegen aan de URL van een vraagteken, 712 00:39:35,320 --> 00:39:38,330 en dan heb je een hele hoop van sleutel-waarde paren. 713 00:39:38,330 --> 00:39:42,380 De naam van een sleutel, ook wel bekend als een parameter in het web 714 00:39:42,380 --> 00:39:46,380 dan heb je een gelijkteken, dan heb je de waarde van die parameter. 715 00:39:46,380 --> 00:39:49,810 Dus het is in wezen een variabele naam en een variabele waarde, 716 00:39:49,810 --> 00:39:54,250 maar die variabele namen en waarden kwam van de HTML-formulier. 717 00:39:54,250 --> 00:39:56,250 Waarom zijn er de plussen, denk je? 718 00:39:56,250 --> 00:39:59,340 Omdat ik niet typ + tussen mijn woorden. 719 00:39:59,340 --> 00:40:01,430 [Student, onverstaanbaar] 720 00:40:01,430 --> 00:40:05,080 >> Ja, het is gewoon voor het op afstand. Odds zijn, wanneer je hebt gezien een URL, 721 00:40:05,080 --> 00:40:07,320 er is nooit spaties bevat, alleen al omdat 722 00:40:07,320 --> 00:40:09,440 als er waren, kon je niet echt kopiëren en plakken 723 00:40:09,440 --> 00:40:12,700 in een IM of in een e-mail, omdat het zou breken. 724 00:40:12,700 --> 00:40:15,420 U wilt dat de hele zaak om een ​​aaneengesloten reeks tekens zijn. 725 00:40:15,450 --> 00:40:18,450 >> Dus de browser is slim genoeg om te beseffen, uh-uh. 726 00:40:18,450 --> 00:40:22,610 Niet zomaar een ruimte daar. Laat me coderen de ruimte in een aantal standaard manier. 727 00:40:22,610 --> 00:40:25,170 Een van de verdragen daarvoor is dat de browser 728 00:40:25,170 --> 00:40:29,350 automatisch in een + waar je anders zou hebben een ruimte. 729 00:40:29,350 --> 00:40:32,140 Dus nu, kennis heeft Google al een soort van gebruiksvriendelijk. 730 00:40:32,140 --> 00:40:34,380 Ik heb helemaal niet maken deze webpagina, 731 00:40:34,380 --> 00:40:37,200 maar ze hebben vooraf ingevuld hun eigen tekstveld 732 00:40:37,200 --> 00:40:39,490 met wat, precies, ik getypt inch 733 00:40:39,490 --> 00:40:43,090 Stel ik wil om te zoeken naar iets anders, zoals een luie hond. 734 00:40:43,090 --> 00:40:45,340 Ik kan hier alleen dit typ, re-search. 735 00:40:45,340 --> 00:40:47,730 Merk op dat de URL verandert hier op, 736 00:40:47,730 --> 00:40:51,390 maar dan merken dat ik eigenlijk kunt zoeken naar wat ik wil 737 00:40:51,390 --> 00:40:53,610 gewoon door te begrijpen hoe URL's werken. 738 00:40:53,610 --> 00:40:56,840 Ik kon doen luie kat, in te voeren, 739 00:40:56,840 --> 00:41:01,370 en nu merk ik krijg een heel lui - moeten we? Ik vind dat we moeten doen. 740 00:41:01,370 --> 00:41:09,900 Ik krijg een heel luie kat. 741 00:41:09,900 --> 00:41:11,930 Oke. Dit is een van de domste dingen die we hebben gedaan. 742 00:41:11,930 --> 00:41:17,160 Maar dat is een luie kat. 743 00:41:17,160 --> 00:41:19,730 Hoe dan ook, wat is de sleutel mee te nemen hier? 744 00:41:19,730 --> 00:41:22,830 Nu zijn we soort van het spelen in de wereld van HTTP. 745 00:41:22,830 --> 00:41:26,050 HTML is alleen deze opmaaktaal, open label, sluit tag, 746 00:41:26,050 --> 00:41:29,490 dat vertelt een browser hoe je content renderen op een webpagina. 747 00:41:29,490 --> 00:41:32,850 Maar wanneer u begint met het verzenden van gegevens via het internet 748 00:41:32,850 --> 00:41:36,290 tussen web browser en de server, dat is waar dit protocol 749 00:41:36,290 --> 00:41:39,370 bekend als HyperText Transfer Protocol overneemt. 750 00:41:39,370 --> 00:41:42,630 Dit is het soort van de menselijke conventie, toen Sam en ik schudden elkaar de hand op maandag, 751 00:41:42,630 --> 00:41:48,300 het starten van een verbinding en beëindigen van een verbinding, hier hetzelfde idee. 752 00:41:48,300 --> 00:41:53,100 Hoe worden de zoekresultaten van Google weer terug naar mij? 753 00:41:53,100 --> 00:41:55,290 Hoe wordt mijn formulier indienen gaan naar Google? 754 00:41:55,290 --> 00:41:58,160 Nou ja, herinneren van de andere dag dat wat er echt aan de hand is 755 00:41:58,160 --> 00:42:02,150 onder de kap bij het aanvragen van een webpagina is, 756 00:42:02,150 --> 00:42:04,860 uw browser stuurt een wat-cryptische boodschap zoals 757 00:42:04,860 --> 00:42:09,510 GET / HTTP/1.1 voor de standaard startpagina. 758 00:42:09,510 --> 00:42:13,000 >> Of, in dit geval, omdat ik specifiek gevraagd eerder 759 00:42:13,000 --> 00:42:17,340 search0.html Dit zou dan de wat-cryptische boodschap 760 00:42:17,340 --> 00:42:20,040 dat mijn browser stuurt naar het apparaat. 761 00:42:20,040 --> 00:42:23,090 Of, in dit geval van Google, wat is er eigenlijk verzonden 762 00:42:23,090 --> 00:42:33,740 is een verzoek om / zoeken, en dan? q = luie kat, met een plus daar. 763 00:42:33,740 --> 00:42:36,790 Dus dit bericht, dat ik, de mens, ben nooit te typen, 764 00:42:36,790 --> 00:42:40,620 maar wordt gestuurd door mijn browser, dit is hoe HTTP gebeurt. 765 00:42:40,620 --> 00:42:43,240 Dit is het equivalent van onze hebben handen geschud. 766 00:42:43,240 --> 00:42:46,320 Dit is de aanvraag, en de server staat op het punt een reactie te sturen. 767 00:42:46,320 --> 00:42:48,560 Dus laten we eens een kijkje op deze onder de kap. 768 00:42:48,560 --> 00:42:55,320 Zoals eerder kunnen we openen deze speciale veld in een browser. 769 00:42:55,320 --> 00:42:58,720 Bekijk pagina, inspecteren elementen. 770 00:42:58,720 --> 00:43:01,550 Dus onder inspecteren element, merken dat wat er gebeurd is in Chrome, 771 00:43:01,550 --> 00:43:04,160 en IE en Firefox hebben soortgelijke mechanismen, 772 00:43:04,160 --> 00:43:07,370 hebben we deze ontwikkeltools toegankelijk voor ons. 773 00:43:07,370 --> 00:43:09,630 Normale mensen geen gebruik maken van deze tabbladen. 774 00:43:09,630 --> 00:43:11,940 Maar wij, nu, zijn geïnteresseerd in wat er aan de hand 775 00:43:11,940 --> 00:43:13,890 onder de motorkap op het netwerk niveau. 776 00:43:13,890 --> 00:43:16,130 Dus als ik trek het netwerk niveau hier, 777 00:43:16,130 --> 00:43:18,510 laat me ga je gang en dit venster uitbreiden, 778 00:43:18,510 --> 00:43:21,840 open dit bericht hier, en kijk naar de headers. 779 00:43:21,840 --> 00:43:26,010 Dus wat gebeurt er als ik vragen om een ​​bestand van een webserver 780 00:43:26,010 --> 00:43:29,410 is mijn browser stuurt een hele hoop dingen. 781 00:43:29,410 --> 00:43:32,390 En laat me bekijken bron. Dus op aanvraag headers, 782 00:43:32,390 --> 00:43:35,250 en dit is gewoon Chrome toont me wat diagnose-uitgang, 783 00:43:35,250 --> 00:43:37,340 een beetje als een debugger van een soort, 784 00:43:37,340 --> 00:43:40,500 merken dat wat ik hier heb benadrukt is precies wat 785 00:43:40,500 --> 00:43:47,060 Chrome stuurt naar de server om een ​​bestand met de naam search0.html te vragen. 786 00:43:47,060 --> 00:43:50,160 Het is het vertellen van de server wat het denkt zijn naam is, 787 00:43:50,160 --> 00:43:52,210 Dankzij deze host colon gebied, dan is er een aantal 788 00:43:52,210 --> 00:43:56,950 vrij esoterische dingen hier, zoals iets te maken met data en tijden, 789 00:43:56,950 --> 00:43:59,720 iets te maken met de talen die de browser begrijpt, 790 00:43:59,720 --> 00:44:02,850 maar de echt belangrijke lijnen zijn deze eerste twee hier. 791 00:44:02,850 --> 00:44:05,490 >> Wat doet de server reageren met? Nou, als we naar beneden scrollen hier 792 00:44:05,490 --> 00:44:08,510 en bekijk de bron van dit ding, merken dat de server 793 00:44:08,510 --> 00:44:13,700 heeft hierop gereageerd met een wat cryptische boodschap zo goed, 304 niet gewijzigd. 794 00:44:13,700 --> 00:44:16,030 Dat is een beetje vreemd, laat me eigenlijk proberen om dit op te lossen. 795 00:44:16,030 --> 00:44:18,670 Laat me houd Shift ingedrukt en klik hier opnieuw te laden up 796 00:44:18,670 --> 00:44:22,460 de browser dwingen werkelijk dit verzoek voor het eerst. 797 00:44:22,460 --> 00:44:25,700 Laat me in te zoomen, en we zullen nu zien dat de server het antwoord, 798 00:44:25,700 --> 00:44:28,950 omdat ik shift gehouden, is 200 OK. 799 00:44:28,950 --> 00:44:31,170 Dus je hebt waarschijnlijk nog nooit gezien het nummer 200 800 00:44:31,170 --> 00:44:33,300 in het kader van het web, maar wat cijfers 801 00:44:33,300 --> 00:44:36,760 heb je soms onverwacht gezien vanaf een server? 802 00:44:36,760 --> 00:44:42,010 404, bestand niet gevonden; 403, verboden, 500, serverfout. 803 00:44:42,010 --> 00:44:44,890 Dus er zijn deze numerieke codes die de wereld gebruikt in de Web 804 00:44:44,890 --> 00:44:47,870 om fouten, net als C-functies betekenen 805 00:44:47,870 --> 00:44:51,030 kan terugkeren fouten en de belangrijkste kan terugkeren exit codes. 806 00:44:51,030 --> 00:44:54,160 200, hoewel, je zelden ziet, omdat het betekent alles goed is. 807 00:44:54,160 --> 00:44:59,000 En 304 u waarschijnlijk nooit zien, want wat is het betekenende? 808 00:44:59,000 --> 00:45:03,330 Dat er niets is - laten we eens kijken of we weer simuleren - 809 00:45:03,330 --> 00:45:07,170 Oh, nu is het niet mee. 304 zei niet gewijzigd, 810 00:45:07,170 --> 00:45:09,170 dus waarom is de server nog reageert? 811 00:45:09,170 --> 00:45:12,550 Nou ja, voor efficiëntie, een web server automatisch voor u, 812 00:45:12,550 --> 00:45:16,570 als het bestand niet is gewijzigd, zal het niet opnieuw te verzenden de hele HTML-bestand. 813 00:45:16,570 --> 00:45:19,150 Het zal gewoon vertellen de browser het niet is veranderd. 814 00:45:19,150 --> 00:45:21,220 Gebruik gewoon de kopie die u al hebt. 815 00:45:21,220 --> 00:45:22,650 Dus er is dit begrip van caching op het web 816 00:45:22,650 --> 00:45:25,840 voor prestaties, zodat u geen tijd verspilt en afval bandbreedte 817 00:45:25,840 --> 00:45:29,160 downloaden van bestanden opnieuw en opnieuw onnodig. 818 00:45:29,160 --> 00:45:31,460 >> Maar deze webpagina, nu, was super-eenvoudig, 819 00:45:31,460 --> 00:45:34,980 en het alleen liet me de HTML die terug kwam. 820 00:45:34,980 --> 00:45:40,940 Laten we in feite het tabblad Netwerk nu gebruik maken van een Google-zoekopdracht als quick brown fox doen. 821 00:45:40,940 --> 00:45:43,010 Laat mij dan CS50 keuze klik op, 822 00:45:43,010 --> 00:45:46,950 en nu, hier op te merken in de bodem een ​​heleboel dingen terug 823 00:45:46,950 --> 00:45:49,900 want als ik een bezoek aan een echte website, zoals Google.com, 824 00:45:49,900 --> 00:45:53,520 ze hebben foto's, ze tekst hebben, hebben zij een taal genaamd JavaScript daar. 825 00:45:53,520 --> 00:45:55,940 Dus elke rij in deze tabel hier beneden 826 00:45:55,940 --> 00:46:01,490 vertegenwoordigt iets dat Google uit te spugen in reactie op mijn enkel verzoek. 827 00:46:01,490 --> 00:46:04,160 Degene die ik de zorg over, echter is deze eerste. 828 00:46:04,160 --> 00:46:08,420 En als ik naar aan het zoeken, verzoek, klik hier te bekijken bron, 829 00:46:08,420 --> 00:46:11,300 merken dat, inderdaad, de cryptische boodschap dat mijn browser gestuurd 830 00:46:11,300 --> 00:46:15,010 Google was deze twee lijnen hier, 831 00:46:15,010 --> 00:46:18,420 gevolgd door enkele geheimzinnige informatie hier beneden die we negeren voor nu. 832 00:46:18,420 --> 00:46:20,890 Maar let op, ook wat Chrome is vrij handig met, 833 00:46:20,890 --> 00:46:24,540 het is ook laat me de query string die werd het verzonden in 834 00:46:24,540 --> 00:46:27,410 Dus in plaats van toon me dit, wat letterlijk is verzonden, 835 00:46:27,410 --> 00:46:30,800 als ik het bekijken gedecodeerd, Chrome, alleen voor debugging doeleinden, 836 00:46:30,800 --> 00:46:34,270 voor ontwikkelaars net als wij, het is gewoon laten mij een mens-vriendelijke versie van - 837 00:46:34,270 --> 00:46:36,390 dat is niet hoe u de naam spellen vos, blijkbaar. 838 00:46:36,390 --> 00:46:40,520 Ik ben gewoon te merken dit nu - maar het is laten zien wat ik blijkbaar, getypt. 839 00:46:40,520 --> 00:46:45,340 Intussen is de reactie die terug kwam van de server is weer 200 OK. 840 00:46:45,340 --> 00:46:47,930 Maar in dit antwoord natuurlijk 841 00:46:47,930 --> 00:46:51,920 Als we echt bekijken van de pagina HTML - 842 00:46:51,920 --> 00:46:55,440 Sorry, dit is een beetje toetsencombinatie mis gegaan vandaag. 843 00:46:55,440 --> 00:46:59,020 >> Ik zal later wel mee. Dus als we daadwerkelijk de pagina bekijken de bron, 844 00:46:59,020 --> 00:47:02,990 die ik hier kan doen door te klikken op respons, 845 00:47:02,990 --> 00:47:10,080 dit is wat er eigenlijk terug spugen, in aanvulling op die cryptische 200 OK bericht van de server. 846 00:47:10,080 --> 00:47:12,520 Een beetje cryptisch, maar waar is dit allemaal vandaan? 847 00:47:12,520 --> 00:47:15,570 Nou, laten we het doen een ander ding hier. Een ander enigszins cryptisch-commando, 848 00:47:15,570 --> 00:47:20,530 maar deze is een soort van netjes in, dat het aan ons openbaart precies wat er gaande is onder de motorkap. 849 00:47:20,530 --> 00:47:22,530 Dus ik ben terug op mijn Mac hier, heb ik aangesloten 850 00:47:22,530 --> 00:47:25,980 via een programma genaamd SSH, Secure Shell, naar een andere server 851 00:47:25,980 --> 00:47:28,940 omdat de meeste van Harvard de computers blokkeren de commando's die we staan ​​op het punt om te draaien 852 00:47:28,940 --> 00:47:31,640 want er is deze opdracht op sommige servers genoemd traceroute 853 00:47:31,640 --> 00:47:34,810 die u toelaat om te traceren van de route tussen punten a en b, 854 00:47:34,810 --> 00:47:37,020 en tot nu toe hebben we volledig als vanzelfsprekend 855 00:47:37,020 --> 00:47:40,170 dat ik kan typen in Google.com en een of andere manier terug te krijgen gegevens 856 00:47:40,170 --> 00:47:43,530 vanaf halverwege het land of de halve wereld. 857 00:47:43,530 --> 00:47:45,810 Met traceroute kunnen we eigenlijk duiken in een beetje dieper 858 00:47:45,810 --> 00:47:49,370 over hoe het internet werkt, en zie wat er gebeurt onder de motorkap. 859 00:47:49,370 --> 00:47:54,440 Dus laten we verder gaan en willekeurig een route herleiden tot, laten we zeggen, Stanford.edu, 860 00:47:54,440 --> 00:47:57,150 dat is in het hele land, en druk op enter. 861 00:47:57,150 --> 00:47:59,380 Deze opdracht kan worden super-snel of super-slow, 862 00:47:59,380 --> 00:48:02,010 maar wat we nu zien, regel voor regel, 863 00:48:02,010 --> 00:48:08,060 is elk van de stappen of hop tussen ons en Palo Alto, of Stanford, 864 00:48:08,060 --> 00:48:11,010 waar zij hun web-server. 865 00:48:11,010 --> 00:48:16,600 Dus wat doet elk van deze lijnen vertegenwoordigen meer concreet, hoewel? 866 00:48:16,600 --> 00:48:19,100 Een stuk van jargon van het internet? [Student, onverstaanbaar] 867 00:48:19,100 --> 00:48:21,570 >> Wat is dat? [Student, onverstaanbaar] 868 00:48:21,570 --> 00:48:25,390 >> Oh, dus er zijn momenten, maar wat betekent elke rij - wat bedoel ik met hop? 869 00:48:25,390 --> 00:48:29,140 >> Nou, er zijn deze dingen op het internet genaamd routers. 870 00:48:29,140 --> 00:48:33,020 En routers, zoals de naam al doet vermoeden, route-informatie van punt a naar punt b. 871 00:48:33,020 --> 00:48:36,920 Maar er zijn verschillende punten voorbij a en b. 872 00:48:36,920 --> 00:48:40,010 Er c en d en e en f tussen rij 1, 873 00:48:40,010 --> 00:48:43,480 die toevallig ook mijn computer het IP-adres, 874 00:48:43,480 --> 00:48:46,890 of mijn numeriek adres, dat een unieke aanduiding mijn computer, 875 00:48:46,890 --> 00:48:50,300 en stap 15, dat is eigenlijk de zesde webserver, 876 00:48:50,300 --> 00:48:54,640 blijkbaar, dat ik afgeleid van deze, of versie 6 van hun web-server op Stanford. 877 00:48:54,640 --> 00:48:56,680 Maar wat is een beetje netjes is, kunnen we zien het pad 878 00:48:56,680 --> 00:49:00,480 dat mijn 0's en 1's nemen van mijn computer naar Stanford. 879 00:49:00,480 --> 00:49:02,500 Dus stap 1 is mijn eigen computer het adres. 880 00:49:02,500 --> 00:49:05,760 Elke computer op het internet heeft een uniek identificatienummer dat er zo uitziet. 881 00:49:05,760 --> 00:49:08,150 Number.number.number.number. 882 00:49:08,150 --> 00:49:10,370 Ergens op deze campus, waarschijnlijk in het science center, 883 00:49:10,370 --> 00:49:16,780 is een router heet Core Gateway 2-te83, wat dat betekent, 884 00:49:16,780 --> 00:49:20,590 dus dit is een van de grote luxe Harvard routers die routeert veel van hun verkeer. 885 00:49:20,590 --> 00:49:24,640 Hier is nog een van de Harvard-routers, deze is Border Gateway, 886 00:49:24,640 --> 00:49:28,310 grens betekenis is het waarschijnlijk in de periferie van campus ergens. 887 00:49:28,480 --> 00:49:32,790 Dan is er nox een, rij 4, dat is Noord Crossroads, 888 00:49:32,790 --> 00:49:35,070 dat is een grote ISP, Internet Service Provider, 889 00:49:35,070 --> 00:49:37,740 dat plaatsen als Harvard het aansluiten van maximaal. 890 00:49:37,740 --> 00:49:40,760 Maar dan dingen een beetje interessant in lijn 6. 891 00:49:40,760 --> 00:49:45,960 Waar zijn mijn stukjes ineens? Kansas. 892 00:49:45,960 --> 00:49:49,300 De wereld heeft er een gewoonte van het gebruik van de luchthaven codes in veel van deze dingen, 893 00:49:49,300 --> 00:49:52,900 of op zijn minst afkortingen voor staten of steden, 894 00:49:52,900 --> 00:49:56,490 zodat het lijkt alsof, in slechts 60 ms, 895 00:49:56,490 --> 00:49:59,420 een pakket van informatie, 0's en 1's van mijn laptop 896 00:49:59,420 --> 00:50:03,210 kreeg de hele weg naar Kansas, en opnieuw, in 60 ms. 897 00:50:03,210 --> 00:50:08,180 >> Bovendien, na Kansas, namen ze een rondleiding door Houston, waarschijnlijk, 898 00:50:08,180 --> 00:50:10,140 zoals voorgesteld door de naam van deze server. 899 00:50:10,140 --> 00:50:13,310 Dus net als een server op internet moet beschikken over een numeriek adres, 900 00:50:13,310 --> 00:50:18,360 het kan ook eventueel een iets mensvriendelijke adres dat mensen bedacht. 901 00:50:18,360 --> 00:50:20,510 Nu, in stap 8, weten we niet wat dit is. 902 00:50:20,510 --> 00:50:22,550 Soms routers gewoon een soort van negeren, 903 00:50:22,550 --> 00:50:25,010 en ze gewoon niet de vragen te beantwoorden, zodat dat is prima. 904 00:50:25,010 --> 00:50:29,290 Het daaropvolgende stap 8 blijkbaar waar? L.A. 905 00:50:29,290 --> 00:50:35,290 Merk op dat in slechts 78 ms, wat brengt ons mensen zoals 6 + uur om fysiek te doen, 906 00:50:35,290 --> 00:50:40,110 neemt pakketten van informatie op het internet 78 ms om te reizen zo ver. 907 00:50:40,110 --> 00:50:45,890 Stap 10 is in LA als goed, en stap 11 lijkt naar het noorden zijn gegaan, op in de buurt van Stanford. 908 00:50:45,890 --> 00:50:48,750 Dit is hun grens router of border router. 909 00:50:48,750 --> 00:50:51,240 Een paar stappen van Stanford die het negeren van ons, 910 00:50:51,240 --> 00:50:55,610 en ten slotte, bereiken we de webserver in slechts 87 ms. 911 00:50:55,610 --> 00:50:57,760 Nu, al deze nummers, als een terzijde, 912 00:50:57,760 --> 00:51:00,640 gewoon vertellen hoe lang het duurt voor data te krijgen van mij 913 00:51:00,640 --> 00:51:03,530 elk van deze routers, en het is niet cumulatief. 914 00:51:03,530 --> 00:51:06,960 Wat dit programma doet is, stuurt eerst een bericht wezen de eerste router. 915 00:51:06,960 --> 00:51:09,490 Dan de tweede router, vandaar een router de derde, 916 00:51:09,490 --> 00:51:12,610 telkens meten. Dus in theorie, zal deze tijden te groeien 917 00:51:12,610 --> 00:51:14,860 of ten minste redelijk dicht bij elkaar, 918 00:51:14,860 --> 00:51:18,090 en, inderdaad, degenen die hier zijn op de campus zijn super-klein. 919 00:51:18,090 --> 00:51:20,820 Zodra je begint te gaan in het hele land, het duurt gegevens 920 00:51:20,820 --> 00:51:24,830 iets langer te reizen, dichter bij de 100 ms, geven of te nemen. 921 00:51:24,830 --> 00:51:28,330 Maar laten we nu gaan de andere kant op. Wat dacht je van de universiteit van Cambridge in het Verenigd Koninkrijk? 922 00:51:28,330 --> 00:51:32,540 Laat mij in plaats traceroute van www.cam voor Cambridge lopen, 923 00:51:32,540 --> 00:51:36,710 . Ac voor academische,. Uk, en druk hier in te voeren. 924 00:51:36,710 --> 00:51:38,830 Dat was verdomd snel. 925 00:51:38,830 --> 00:51:43,300 Mijn gegevens letterlijk ging naar Cambridge, Engeland, in die fractie van een seconde van de tijd. 926 00:51:43,300 --> 00:51:45,340 >> Dus laten we eens kijken de weg die het kostte. 927 00:51:45,340 --> 00:51:47,520 Harvard, Harvard, Harvard, Noord Crossroads, 928 00:51:47,520 --> 00:51:52,690 die een ISP, en dan is dit Noord-Crossroads, en dan bam. 929 00:51:52,690 --> 00:51:58,320 Wat zit er in tussen de stappen 6 en 7, router 6 en 7? 930 00:51:58,320 --> 00:52:02,040 De Atlantische Oceaan. En we afleiden dit uit het feit dat 931 00:52:02,040 --> 00:52:06,530 We gaan van 20 ms hier om 80 ms hier. 932 00:52:06,530 --> 00:52:10,050 Dus iets nam 60 ms, geven of te nemen, om over. 933 00:52:10,050 --> 00:52:12,910 En dat was waarschijnlijk een grote hoeveelheid water. 934 00:52:12,910 --> 00:52:15,250 Wat gaat er daarna? Nou, hier zijn we in Londen, 935 00:52:15,250 --> 00:52:18,860 slechts 88 ms later. Meer London, meer London, 936 00:52:18,860 --> 00:52:21,730 niet zeker waar dit is, maar we zullen aannemen dat het buiten Londen, 937 00:52:21,730 --> 00:52:26,390 Cambridge hier, en uiteindelijk hebben we - letterlijk, Universiteit van Cambridge 938 00:52:26,390 --> 00:52:29,500 . Something.net, en dan, ten slotte, in de lijn 16, 939 00:52:29,500 --> 00:52:31,720 hun webserver wordt blijkbaar genoemd Scorpius 940 00:52:31,720 --> 00:52:35,500 onder de motorkap, ook al hebben we die kennen als www. 941 00:52:35,500 --> 00:52:38,790 Kind van mind-blowing, denk ik. De eerste keer dat ik ooit heb gedaan dit, is het helemaal in mijn gedachten. 942 00:52:38,790 --> 00:52:41,670 Helaas Harvard blokkeert dit type verkeer, gewoonlijk op het netwerk. 943 00:52:41,670 --> 00:52:44,340 Dus je kunt niet gemakkelijk doen het super. 944 00:52:44,340 --> 00:52:48,500 Echter te realiseren, is dit hier mogelijk is. 945 00:52:48,500 --> 00:52:53,630 Oke. Laten we hier nemen onze 5-minuten pauze. We komen terug en duiken in dieper. 946 00:52:53,630 --> 00:53:00,850 Dus we zijn weer terug, en we hebben soort van kuierde rond in een paar verschillende richtingen hier. 947 00:53:00,850 --> 00:53:03,700 Dus laten we samenvatten precies wat er hier aan de hand. 948 00:53:03,700 --> 00:53:07,990 We begonnen het gesprek over deze taal genaamd HTML. 949 00:53:07,990 --> 00:53:10,680 Nogmaals, geen programmeertaal. Het is gewoon een opmaaktaal 950 00:53:10,680 --> 00:53:15,490 dat is grotendeels over esthetiek en structurering van de inhoud in de vorm van een webpagina. 951 00:53:15,490 --> 00:53:19,220 Maar HTML moet derhalve een soort van mechanisme 952 00:53:19,220 --> 00:53:22,870 voor het reizen tussen de webbrowser en de server. 953 00:53:22,870 --> 00:53:28,360 HTML dus soort van ritten op de top van deze andere taal, 954 00:53:28,360 --> 00:53:31,280 of beter gezegd, een protocol, bekend als HTTP. 955 00:53:31,280 --> 00:53:33,730 >> En HTTP, zoals we hebben gezien tot nu toe, 956 00:53:33,730 --> 00:53:37,140 is een soort van analoog aan deze menselijke conventie van handen schudden. 957 00:53:37,140 --> 00:53:39,940 Wanneer een browser wil vragen om een ​​pagina van een server, 958 00:53:39,940 --> 00:53:43,450 stuurt dat "get" verzoek van browser naar server, 959 00:53:43,450 --> 00:53:48,040 en vervolgens de server reageert met een nummer als 200, is alles oke, 960 00:53:48,040 --> 00:53:53,290 evenals de HTML of een slecht nummer, zoals 404, bestand niet gevonden. 961 00:53:53,290 --> 00:53:58,220 Maar ondertussen HTTP zelf niet het Internet, per se. 962 00:53:58,220 --> 00:54:01,550 HTTP is slechts een dienst, een kenmerk van het internet 963 00:54:01,550 --> 00:54:05,530 net als G chat is een andere dienst, net als e-mail is een andere dienst. 964 00:54:05,530 --> 00:54:09,180 Er is van alles wat we kunnen doen op het internet. 965 00:54:09,180 --> 00:54:12,670 HTTP is slechts een van die toepassingen. 966 00:54:12,670 --> 00:54:17,210 Dus op de top van - HTTP is op de top van iets anders 967 00:54:17,210 --> 00:54:21,750 die we niet bij naam noemen, zou u hebben gehoord van de naam, TCP / IP. 968 00:54:21,750 --> 00:54:25,160 Dus het verhaal dat we net te horen dat er alles over 969 00:54:25,160 --> 00:54:28,720 hoe gegevens reist van punt A naar punt b. 970 00:54:28,720 --> 00:54:30,950 En in dit geval, zoals we aan een zeer laag niveau 971 00:54:30,950 --> 00:54:33,060 router naar router naar router naar router, 972 00:54:33,060 --> 00:54:35,390 hoe de gegevens daadwerkelijk worden verzonden. 973 00:54:35,390 --> 00:54:40,510 Maar langs de weg, gaat het om diverse belemmeringen tegenkomen. 974 00:54:40,510 --> 00:54:43,770 Naast deze routers, zijn er dingen die genoemd firewalls op het internet, 975 00:54:43,770 --> 00:54:46,680 en zo data, zoals we gewoon zenden 976 00:54:46,680 --> 00:54:49,720 van mij naar Stanford, van mij naar Cambridge, 977 00:54:49,720 --> 00:54:54,560 zijn overgedragen op dit niveau zoiets als een IP-adres. 978 00:54:54,560 --> 00:54:57,340 We zagen dit even geleden, en een IP-adres 979 00:54:57,340 --> 00:55:02,480 is slechts een numeriek adres van de vorm w.x.y.z, 980 00:55:02,480 --> 00:55:08,070 waarbij elk van deze tussen, plus of, 0 en 255, 981 00:55:08,070 --> 00:55:10,080 maar je kunt niet echt gebruik maken van alle van de nummers. 982 00:55:10,080 --> 00:55:14,220 Maar elk van deze plaats houders is een getal tussen 0 en 255. 983 00:55:14,220 --> 00:55:16,820 Dus een IP-adres van deze dag is 32 bits. 984 00:55:16,820 --> 00:55:20,780 >> Nu, dat geeft ons hoeveel mogelijke IP-adressen in de wereld? 985 00:55:20,780 --> 00:55:24,420 Ongeveer 4 miljard, omdat elke keer dat we tellen in machten van 2 986 00:55:24,420 --> 00:55:27,760 helemaal tot 32 van iets, dat geeft ons meestal 4 miljard. 987 00:55:27,760 --> 00:55:30,160 Dus dat is een veel IP-adressen, maar u heeft kunnen lezen, 988 00:55:30,160 --> 00:55:32,410 of u kunt nu zien in de populaire pers, 989 00:55:32,410 --> 00:55:36,020 een duw in de richting van een nieuwe versie van IP, IPv6 genaamd. 990 00:55:36,020 --> 00:55:38,290 Op dit moment gebruiken we versie 4. 991 00:55:38,290 --> 00:55:41,060 Er is echt geen sprake is van een versie 5, we gewoon springen recht op 6. 992 00:55:41,060 --> 00:55:46,760 Versie 6 gaat 128 bits te gebruiken voor IP-adressen, die is freaking enorm. 993 00:55:46,760 --> 00:55:49,430 We moeten niet uit nu draaien al geruime tijd, 994 00:55:49,430 --> 00:55:52,980 maar we zijn begonnen met het opraken van versie 4 IP-adressen, 995 00:55:52,980 --> 00:55:56,110 omdat alle van ons hebben niet alleen zaken als laptops en desktops, 996 00:55:56,110 --> 00:55:58,700 veel van ons hebben telefoons, veel van ons hebben andere apparaten 997 00:55:58,700 --> 00:56:01,600 zoals TiVo en dergelijke die een IP-adres zelf. 998 00:56:01,600 --> 00:56:03,720 Harvard zelf heeft tienduizenden computers. 999 00:56:03,720 --> 00:56:07,970 Dus de wereld is echt te weinig IP-adressen, althans van dit formulier. 1000 00:56:07,970 --> 00:56:10,340 Dus in de komende paar jaar, ga je de adressen zien 1001 00:56:10,340 --> 00:56:12,870 op uw eigen computers waarschijnlijk langzaam te veranderen 1002 00:56:12,870 --> 00:56:16,740 als meer en meer bedrijven en universiteiten beginnen om de nieuwere versie te ondersteunen. 1003 00:56:16,740 --> 00:56:22,770 Maar een IP adres is niet voldoende voor een computer om gegevens van computer b vragen. 1004 00:56:22,770 --> 00:56:24,950 Omdat de computer b kan een server, 1005 00:56:24,950 --> 00:56:27,600 en een server, zoals ik al eerder vermeld, kan trossen van de dingen. 1006 00:56:27,600 --> 00:56:29,940 Het kan webpagina's te hosten, kan het een e-mailserver, 1007 00:56:29,940 --> 00:56:32,310 het kan een Skype-server, kan het een G chatserver. 1008 00:56:32,310 --> 00:56:35,870 >> Al deze verschillende diensten die kunnen worden aangebracht op een server 1009 00:56:35,870 --> 00:56:38,330 kunnen allemaal, fysiek op dezelfde machine. 1010 00:56:38,330 --> 00:56:40,380 Dus naast IP adressen, 1011 00:56:40,380 --> 00:56:43,250 de wereld heeft dingen geroepen poorten op het Internet. 1012 00:56:43,250 --> 00:56:47,830 Een poort is maar een getal, dus er is een uniek nummer voor HTTP. 1013 00:56:47,830 --> 00:56:50,280 Het nummer is 80. 1014 00:56:50,280 --> 00:56:55,870 HTTP gebruikt ook nummer 443, maar meer in het bijzonder, voor versleutelde HTTPS. 1015 00:56:55,870 --> 00:57:00,030 Wanneer u de s te zien, voor een veilige, dat is een ander nummer gebruikt. 1016 00:57:00,030 --> 00:57:06,580 Er zijn andere getallen, zoals 25, voor een zogenaamde SMTP, ook bekend als email. 1017 00:57:06,580 --> 00:57:09,620 Er is zoiets als 22 voor SSH, 1018 00:57:09,620 --> 00:57:11,850 en er is een hele hoop andere havens die er zijn. 1019 00:57:11,850 --> 00:57:14,460 Nu, wij mensen zelden zien deze getallen. 1020 00:57:14,460 --> 00:57:21,970 Echter, wanneer u typt in een adres, zoals http://www.facebook.com, 1021 00:57:21,970 --> 00:57:26,560 de browser is het geheim het plaatsen van 80, omdat je met behulp van HTTP. 1022 00:57:26,560 --> 00:57:30,630 Als u, in plaats daarvan, type HTTPS, het is stiekem het plaatsen van 443. 1023 00:57:30,630 --> 00:57:35,180 En we kunnen soort van handmatig zien of ik trek een brower 1024 00:57:35,180 --> 00:57:41,850 en ga naar http://www.facebook.com:80. 1025 00:57:41,850 --> 00:57:44,550 Dan ook expliciet onder vermelding van niet alleen de naam van de website 1026 00:57:44,550 --> 00:57:47,650 maar de poort die ik wil met je praten, en druk op enter. 1027 00:57:47,650 --> 00:57:50,170 Let op het verdwijnt, omdat de browser aanneemt, 1028 00:57:50,170 --> 00:57:53,360 oh, 80, ik ben niet eens gaan om moeite waaruit blijkt dat aan u. 1029 00:57:53,360 --> 00:57:56,400 Maar de reden hiervoor is dat als ik echt wilde iemand een email te sturen, 1030 00:57:56,400 --> 00:58:02,340 Ik zou het echt op te sturen naar hen op poort 25, dat wezen SMTP. 1031 00:58:02,340 --> 00:58:04,890 Een beetje een oversimplificatie, maar sommigen van jullie hebben vrienden 1032 00:58:04,890 --> 00:58:09,290 die daadwerkelijk werken op Facebook, en zij, op dezelfde wijze, hebben servers die e-mail te ontvangen. 1033 00:58:09,290 --> 00:58:12,610 >> Elke keer dat je een email sturen, is wat gmail voor je doet 1034 00:58:12,610 --> 00:58:14,960 of Outlook of wat programma dat u gebruikt, 1035 00:58:14,960 --> 00:58:19,270 Het is een soort geheim invoegen van dat nummer zo goed, 25, in dat geval. 1036 00:58:19,270 --> 00:58:24,490 Het is deze combinatie van IP-adres en het nummer dat uniek is voor 1037 00:58:24,490 --> 00:58:29,190 een computer op het internet en een specifieke dienst op die computer. 1038 00:58:29,190 --> 00:58:33,460 Nu, natuurlijk, hebben de meesten van ons waarschijnlijk nooit handmatig ingetypt een IP-adres. 1039 00:58:33,460 --> 00:58:37,340 Misschien heb je in het apparaat, maar in de echte wereld, niet zo veel. 1040 00:58:37,340 --> 00:58:42,750 Waarom hebben we niet typen IP-adressen in browsers? 1041 00:58:42,750 --> 00:58:45,860 Het zou werken, in feite, kunnen we dit zien, laat me u tonen 1042 00:58:45,860 --> 00:58:50,000 een andere opdracht die maximaal moeten overal op de campus van Harvard te werken op een Mac of een PC. 1043 00:58:50,000 --> 00:58:53,970 Er is een commando genaamd nslookup, nameserver lookup. 1044 00:58:53,970 --> 00:58:59,960 Als ik kijk omhoog www.cnn.com, blijkt dat CNN heeft - oh, interessant. 1045 00:58:59,960 --> 00:59:03,180 CNN is begonnen met behulp van Amazon Web Services. 1046 00:59:03,180 --> 00:59:06,380 Misschien ken je van cloud computing, Amazon is een van de grote spelers in cloud computing. 1047 00:59:06,380 --> 00:59:10,240 Wat ik net deed was, zei ik: 'Geef mij het adres van de website van CNN-server,' 1048 00:59:10,240 --> 00:59:14,090 maar het blijkt dat CNN de webserver wordt beheerd door Amazon, 1049 00:59:14,090 --> 00:59:16,030 Amazon Web Services, suggereert dit. 1050 00:59:16,030 --> 00:59:19,680 En het adres van die server is dit hier. 1051 00:59:19,680 --> 00:59:22,350 Dus ik weet niet zeker of dit zal werken, omdat ze niet gebruikt worden om Amazon te gebruiken. 1052 00:59:22,350 --> 00:59:32,830 Maar laten we proberen dit, http://, IP-adres, voer, en - 1053 00:59:32,830 --> 00:59:35,690 gaat het werken? 1054 00:59:35,690 --> 00:59:39,280 Ja. Het gaat werken. Internet is super-slow vandaag. 1055 00:59:39,280 --> 00:59:43,680 Maar, in een moment, zie je wat nieuws verhaal. 1056 00:59:43,680 --> 00:59:48,360 Daar gaan we dan. Bank of America is aangeklaagd. Oke. 1057 00:59:48,360 --> 00:59:54,000 >> Dit komt omdat dit IP-adres toevallig door synoniem met www.cnn.com. 1058 00:59:54,000 --> 00:59:59,920 Natuurlijk zou het vreselijk marketing te zeggen, ons te bezoeken op het web op 50.112.94.127. 1059 00:59:59,920 --> 01:00:02,370 Je zou nooit herinneren. Dus zelfs deze dagen u wellicht herinneren dingen 1060 01:00:02,370 --> 01:00:07,210 zoals 1-800-COLLECT of geheugensteuntjes de wereld kwam met voor telefoonnummers. 1061 01:00:07,210 --> 01:00:09,540 Die vóór mobiele telefoons, waren nogal moeilijk te onthouden 1062 01:00:09,540 --> 01:00:11,800 totdat je kon gewoon typ het in en vergeet het. 1063 01:00:11,800 --> 01:00:15,730 Dus het web, ook heeft deze conventie van namen en IP-adressen, 1064 01:00:15,730 --> 01:00:17,770 en er zijn deze dingen die er geroepen DNS-servers, 1065 01:00:17,770 --> 01:00:23,870 domeinnaam systemen servers, die IP-adressen te vertalen naar namen en vice versa. 1066 01:00:23,870 --> 01:00:26,340 Dus dat is wat er aan de hand onder de kap. 1067 01:00:26,340 --> 01:00:29,540 Op het einde hebben we TCP / IP, dat is deze zeer low-level protocol 1068 01:00:29,540 --> 01:00:32,570 die echt, net krijgt 0's en 1's over het internet, 1069 01:00:32,570 --> 01:00:36,030 en doet dit door ze in een virtuele enveloppe, 1070 01:00:36,030 --> 01:00:38,820 als je wil, en het schrijven aan de buitenkant van de envelop 1071 01:00:38,820 --> 01:00:43,930 het IP adres van de bestemming, en de numerieke poortnummer 1072 01:00:43,930 --> 01:00:47,520 van de dienst op die bestemming te willen praten. 1073 01:00:47,520 --> 01:00:51,060 Ondertussen, op de envelop is er ook iets bekend als een retouradres, 1074 01:00:51,060 --> 01:00:55,600 dat is uw IP-adres, zodat wanneer CNN een pakket van informatie krijgt van u, 1075 01:00:55,600 --> 01:00:58,710 opent deze virtuele enveloppe, ziet dat je de home page wilt, 1076 01:00:58,710 --> 01:01:04,630 hij weet van de afzender deel van deze virtuele enveloppe die aan de HTML terug te sturen naar. 1077 01:01:04,630 --> 01:01:07,470 Dus laten we eens een kijkje op deze in iets meer detail. 1078 01:01:07,470 --> 01:01:11,370 Dit is van een bedrijf met de naam Ericson, van een paar jaar terug. 1079 01:01:11,370 --> 01:01:14,780 En ze enkele vrijheden genomen met de manier waarop het internet eigenlijk werkt, 1080 01:01:14,780 --> 01:01:18,920 maar het schildert een veel visueel beeld dan alleen maar krijt hier. 1081 01:01:18,920 --> 01:01:26,690 Dus ik geef je "Een beetje van het internet." 1082 01:02:26,660 --> 01:02:29,840 >> [Narrator] Voor de eerste keer in de geschiedenis, 1083 01:02:29,840 --> 01:02:35,260 mensen en machines werken samen, het realiseren van een droom. 1084 01:02:35,260 --> 01:02:38,910 Een verenigen kracht die geen geografische grenzen kent. 1085 01:02:38,910 --> 01:02:43,230 Ongeacht ras, geloof of kleur. 1086 01:02:43,230 --> 01:02:47,770 Een nieuw tijdperk en waarbij communicatie daadwerkelijk brengt mensen samen. 1087 01:02:47,770 --> 01:02:50,070 Dit is 1088 01:02:50,070 --> 01:02:54,980 De Dageraad van het Net. 1089 01:02:54,980 --> 01:03:04,640 Wil je weten hoe het werkt? Klik hier om uw reis te beginnen in het Net. 1090 01:03:04,640 --> 01:03:07,890 Nu, precies wat er gebeurd als je klikt op die link? 1091 01:03:07,890 --> 01:03:10,150 Je begon een stroom van informatie. 1092 01:03:10,150 --> 01:03:13,310 Deze informatie reist in uw eigen persoonlijke postkamer 1093 01:03:13,310 --> 01:03:18,500 waar de heer IP-pakketten het, labels, en stuurt het op zijn manier. 1094 01:03:18,500 --> 01:03:20,960 Elk pakket wordt beperkt in omvang. 1095 01:03:20,960 --> 01:03:23,880 De postkamer moet beslissen hoe de informatie te verdelen 1096 01:03:23,880 --> 01:03:26,070 en hoe het te verpakken. 1097 01:03:26,070 --> 01:03:29,550 Nu, de verpakking moet een etiket met belangrijke informatie 1098 01:03:29,550 --> 01:03:35,570 zoals adres afzender, ontvanger adres en het type pakket is. 1099 01:03:51,700 --> 01:03:54,980 Omdat dit bijzondere pakket is uit te gaan op het internet, 1100 01:03:54,980 --> 01:03:57,720 het wordt ook een adres voor de proxyserver, 1101 01:03:57,720 --> 01:04:01,520 die heeft een speciale functie, zoals we later zullen zien. 1102 01:04:01,520 --> 01:04:06,650 Het pakket wordt nu gestart op uw lokale netwerk of LAN. 1103 01:04:06,650 --> 01:04:10,160 Dit netwerk wordt gebruikt om alle lokale computers verbinden " 1104 01:04:10,160 --> 01:04:15,900 routers, printers, enzovoort, voor de uitwisseling van informatie binnen de fysieke muren van het gebouw. 1105 01:04:15,900 --> 01:04:20,290 De LAN is een vrij ongecontroleerd plaats, en, helaas, 1106 01:04:20,290 --> 01:04:23,950 ongelukken kunnen gebeuren. 1107 01:04:31,190 --> 01:04:34,710 De snelweg van het LAN zit vol met alle soorten informatie. 1108 01:04:34,710 --> 01:04:38,900 Dit zijn IP-pakketten, Novell pakketjes, AppleTalk-pakketten. 1109 01:04:38,900 --> 01:04:41,270 Ze gaan tegen het verkeer in, zoals gewoonlijk. 1110 01:04:41,270 --> 01:04:44,260 De lokale router leest het adres en, indien nodig, 1111 01:04:44,260 --> 01:04:48,520 heft het pakket op een ander netwerk. 1112 01:04:48,520 --> 01:04:54,270 Ah, de router. Een symbool van controle in een schijnbaar ongeorganiseerd wereld. 1113 01:04:54,270 --> 01:05:05,480 [Router mompelen en praten met zichzelf] 1114 01:05:05,480 --> 01:05:10,030 >> [Narrator] Daar is hij, systematisch, onverschillig, methodische, 1115 01:05:10,030 --> 01:05:14,150 conservatief, en soms niet helemaal op de hoogte. 1116 01:05:14,150 --> 01:05:17,680 Maar hij is exact, voor het grootste deel. 1117 01:05:32,270 --> 01:05:36,820 Als de pakketten laat de router, ze maken hun weg naar de corporate internet 1118 01:05:36,820 --> 01:05:40,830 en ga naar de router switch. 1119 01:05:40,830 --> 01:05:46,250 Een beetje efficiënter dan de router, de router switch speelt zo nauw nemen met IP-pakketten, 1120 01:05:46,250 --> 01:05:48,920 behendig routing hen op hun weg. 1121 01:05:48,920 --> 01:05:52,130 Een digitale 'Pinball Wizard,' als je wil. 1122 01:05:52,130 --> 01:06:04,270 [Router-schakelaar in gesprek met zichzelf] 1123 01:06:09,830 --> 01:06:12,150 [Narrator] Zoals pakketten op hun bestemming aankomen, 1124 01:06:12,150 --> 01:06:14,740 ze opgepikt door de netwerkinterface, 1125 01:06:14,740 --> 01:06:18,040 klaar om te worden verzonden naar het volgende niveau. 1126 01:06:18,040 --> 01:06:21,010 In dit geval de proxy. 1127 01:06:21,010 --> 01:06:25,040 De proxy wordt gebruikt door veel bedrijven als een soort van een man midden 1128 01:06:25,040 --> 01:06:27,630 om de belasting van de internetverbinding verminderen 1129 01:06:27,630 --> 01:06:32,240 en om redenen van veiligheid, als goed. 1130 01:06:32,240 --> 01:06:38,750 Zoals u kunt zien, de pakketten zijn allemaal van verschillende grootte, afhankelijk van de inhoud ervan. 1131 01:06:55,210 --> 01:07:01,890 De proxy opent het pakket en zoekt naar het webadres of URL. 1132 01:07:01,890 --> 01:07:04,950 Afhankelijk of het adres aanvaardbaar 1133 01:07:04,950 --> 01:07:08,000 het pakket doorgestuurd naar het Internet. 1134 01:07:13,890 --> 01:07:19,630 Er zijn echter een aantal adressen die niet voldoen aan met de goedkeuring van de proxy. 1135 01:07:19,630 --> 01:07:25,680 Dat wil zeggen, bedrijfs-of management richtlijnen. 1136 01:07:25,680 --> 01:07:30,580 Deze worden summier behandeld. 1137 01:07:30,580 --> 01:07:32,410 We zullen niets van dat. 1138 01:07:32,410 --> 01:07:36,350 Voor degenen die het, het is weer op de weg. 1139 01:07:46,850 --> 01:07:53,310 >> Next up, de firewall. 1140 01:07:53,310 --> 01:07:57,410 De firewall van het bedrijf dient twee doelen. 1141 01:07:57,410 --> 01:08:02,420 Het voorkomt nare dingen van het internet kunnen komen om het intranet, 1142 01:08:02,420 --> 01:08:10,280 en het kan gevoelige bedrijfsinformatie ook voorkomen worden verzonden uit op het internet. 1143 01:08:10,280 --> 01:08:12,980 Eenmaal door de firewall, een router pikt het pakket 1144 01:08:12,980 --> 01:08:18,180 en plaatst deze op een veel smallere weg, of bandbreedte, zoals wij zeggen. 1145 01:08:18,180 --> 01:08:23,720 Uiteraard is de weg is niet breed genoeg om ze allemaal te nemen. 1146 01:08:23,720 --> 01:08:29,319 Nu, je kunt je afvragen wat er gebeurt met al die pakketten die niet te maken langs de weg. 1147 01:08:29,319 --> 01:08:32,270 Wel, toen de heer IP niet ontvangen een bevestiging 1148 01:08:32,270 --> 01:08:35,000 dat een pakket is ontvangen te zijner tijd, 1149 01:08:35,000 --> 01:08:39,890 stuurt hij slechts een vervangende pakket. 1150 01:08:39,890 --> 01:08:44,760 We zijn nu klaar om de wereld van het internet in te voeren. 1151 01:08:44,760 --> 01:08:49,370 Een spinnenweb van onderling verbonden netwerken die onze hele wereld omspannen. 1152 01:08:49,370 --> 01:08:56,050 Hier, routers en switches verbindingen tot stand brengen tussen de netwerken. 1153 01:08:56,050 --> 01:08:59,200 Nu, het Net is een totaal andere omgeving dan vindt u 1154 01:08:59,200 --> 01:09:01,569 binnen de beschermende muren van uw LAN. 1155 01:09:01,569 --> 01:09:04,060 Out hier, het is het Wilde Westen. 1156 01:09:04,060 --> 01:09:06,359 Veel ruimte, veel mogelijkheden, 1157 01:09:06,359 --> 01:09:09,760 genoeg dingen om te verkennen en te gaan plaatsen. 1158 01:09:09,760 --> 01:09:12,760 Dankzij de zeer weinig controle en regulering, 1159 01:09:12,760 --> 01:09:18,300 nieuwe ideeën te vinden vruchtbare grond om de envelop van hun mogelijkheden te duwen. 1160 01:09:18,300 --> 01:09:22,330 Maar door deze vrijheid, bepaalde gevaren ook op de loer liggen. 1161 01:09:22,330 --> 01:09:27,000 Je weet nooit wanneer je de gevreesde ping van de dood te ontmoeten, 1162 01:09:27,000 --> 01:09:29,890 een speciale versie van een normale aanvraag ping, 1163 01:09:29,890 --> 01:09:35,720 die een of andere idioot bedacht te verknoeien nietsvermoedende gastheer. 1164 01:09:35,720 --> 01:09:39,130 Het pad onze pakketten te nemen kan via de satelliet, 1165 01:09:39,130 --> 01:09:43,090 telefoonlijnen, draadloze, of zelfs transoceanische kabel. 1166 01:09:43,090 --> 01:09:46,520 Ze hebben niet altijd de snelste of kortste routes mogelijk, 1167 01:09:46,520 --> 01:09:50,290 maar ze zullen er uiteindelijk wel. 1168 01:09:50,290 --> 01:09:55,230 Misschien is dat waarom het soms ook wel "The World Wide Wait." 1169 01:09:55,230 --> 01:09:57,980 Maar als alles goed werkt, 1170 01:09:57,980 --> 01:10:03,800 kun je omzeilen de hele wereld vijf keer meer dan bij de daling van een hoed, letterlijk. 1171 01:10:03,800 --> 01:10:08,230 En de kosten van een lokaal gesprek of minder. 1172 01:10:08,230 --> 01:10:15,070 Tegen het einde van onze bestemming, vinden we een andere firewall. 1173 01:10:15,070 --> 01:10:18,420 >> Afhankelijk van uw perspectief als een datapakket, 1174 01:10:18,420 --> 01:10:23,730 de firewall kan een bastion van veiligheid of een gevreesde tegenstander te zijn. 1175 01:10:23,730 --> 01:10:28,530 Het hangt allemaal af van welke kant je staat en wat je bedoelingen zijn. 1176 01:10:28,530 --> 01:10:34,990 De firewall is ontworpen om u te laten in alleen die pakketten die haar criteria voldoen. 1177 01:10:34,990 --> 01:10:39,360 Deze firewall werkt op de poorten 80 en 25. 1178 01:10:39,360 --> 01:10:46,630 Alle pogingen om in te voeren via andere poorten worden gesloten voor het bedrijfsleven. 1179 01:10:57,660 --> 01:11:03,480 Poort 25 wordt gebruikt voor e-mail pakketten, 1180 01:11:03,480 --> 01:11:10,720 terwijl poort 80 is de ingang voor pakketten vanaf het internet naar de webserver. 1181 01:11:10,720 --> 01:11:15,080 Binnen de firewall, worden pakketten grondiger gescreend. 1182 01:11:15,080 --> 01:11:17,970 Sommige pakketten maken het gemakkelijk door de douane, 1183 01:11:17,970 --> 01:11:21,420 terwijl anderen zien er net een beetje dubieus. 1184 01:11:21,420 --> 01:11:24,060 Nu is de firewall officier niet gemakkelijk voor de gek houden, 1185 01:11:24,060 --> 01:11:32,120 zoals wanneer deze ping of death pakket probeert zich te vermommen als een normale ping pakket. 1186 01:11:32,120 --> 01:11:37,520 [Firewall officier praten om pakketten] 1187 01:11:37,520 --> 01:11:40,510 [Narrator] Voor die pakketjes gelukkig genoeg om het te maken zo ver, 1188 01:11:40,510 --> 01:11:45,730 de reis is bijna voorbij. 1189 01:11:45,730 --> 01:11:52,130 Het is gewoon een line-up op de interface te worden opgenomen in de webserver. 1190 01:11:52,130 --> 01:11:55,440 Tegenwoordig kan een web server draaien op veel dingen, 1191 01:11:55,440 --> 01:11:59,230 van een mainframe naar een webcam op de computer op uw bureau. 1192 01:11:59,230 --> 01:12:01,720 Waarom niet uw koelkast? 1193 01:12:01,720 --> 01:12:04,870 Met de juiste setup, kun je erachter komen of je hebt de ingrediënten 1194 01:12:04,870 --> 01:12:08,390 voor Chicken Cacciatore, of als u om te gaan winkelen. 1195 01:12:08,390 --> 01:12:11,760 Vergeet niet, dit is het begin van het Net. 1196 01:12:11,760 --> 01:12:17,310 Bijna alles is mogelijk. 1197 01:12:17,310 --> 01:12:20,440 Een voor een worden de pakketten ontvangen, 1198 01:12:20,440 --> 01:12:26,320 geopend, en uitgepakt. 1199 01:12:26,320 --> 01:12:31,200 De informatie die ze bevatten, dat wil zeggen, uw verzoek om informatie, 1200 01:12:31,200 --> 01:12:34,830 wordt doorgestuurd naar de webserver. 1201 01:12:41,540 --> 01:12:47,140 Het pakket zelf is gerecycled, 1202 01:12:47,140 --> 01:12:57,570 klaar om opnieuw te worden gebruikt, en gevuld met uw gevraagde informatie, 1203 01:12:57,570 --> 01:13:03,340 aangepakt, en verzonden op weg terug naar jou. 1204 01:13:03,340 --> 01:13:13,250 Terug langs de firewall, routers, en verder door naar het internet. 1205 01:13:13,250 --> 01:13:21,020 Terug door uw firewall 1206 01:13:21,020 --> 01:13:24,180 en op uw interface, 1207 01:13:24,180 --> 01:13:31,180 klaar om uw web browser te voorzien van de informatie die u hebt aangevraagd. 1208 01:13:31,180 --> 01:13:39,840 Dwz deze film. 1209 01:13:39,840 --> 01:13:43,550 Blij met hun inspanningen, en het vertrouwen van de betere wereld, 1210 01:13:43,550 --> 01:13:50,250 onze trouwe datapakketjes afrijden zalig in de zonsondergang van een andere dag, 1211 01:13:50,250 --> 01:13:56,880 wetende dat ze hebben hun meesters goed bereikbaar. 1212 01:13:56,880 --> 01:14:02,560 Nu, is dat niet een happy end? 1213 01:14:02,560 --> 01:14:07,040 [Malan] Oke, dat is genoeg. We zien je volgende week. 1214 01:14:07,040 --> 01:14:10,040 [CS50.TV]