1 00:00:00,000 --> 00:00:02,620 [Powered by Google Translate] [Uke 7, Fortsatt] 2 00:00:02,620 --> 00:00:05,090 [David J. Malan, Harvard University] 3 00:00:05,090 --> 00:00:07,780 [Dette er CS50.] [CS50.TV] 4 00:00:07,780 --> 00:00:09,810 OK. Velkommen tilbake. Dette er CS50, 5 00:00:09,810 --> 00:00:12,100 og dette er slutten av uke 7. 6 00:00:12,100 --> 00:00:15,460 Så en av disse dumme små ting som går rundt på Internett 7 00:00:15,460 --> 00:00:24,080 og vi slurpet opp, og det skal nå lage en liten bit av nerdete fornuftig for deg. 8 00:00:24,080 --> 00:00:28,330 Vel, det var morsommere med denne fyren enn det var for dere. 9 00:00:28,330 --> 00:00:32,619 Snakker av, vel, folkens, 10 00:00:32,619 --> 00:00:42,550 i dag er Nate bursdag. 11 00:00:42,550 --> 00:00:46,630 For å gi deg en følelse av hvor god Nate og jeg er 12 00:00:46,630 --> 00:00:50,140 på web utvikling basert på mandagens klasse og basert nå på dette, 13 00:00:50,140 --> 00:00:53,170 Jeg tenkte jeg skulle dra opp Nate hjemmeside, hvis du ikke har sett den ennå. 14 00:00:53,170 --> 00:00:57,020 Dette her ia Nate HTML. 15 00:00:57,020 --> 00:00:59,380 Så se hans kildekoden hvis du ønsker å se hvordan du gjør dette, og Nate, 16 00:00:59,380 --> 00:01:02,250 hvis vi kunne flau du bare en kort stund, fikk de ansatte noe til deg 17 00:01:02,250 --> 00:01:06,080 Hvis du ønsker å dele noen dessert med noen av barna i klassen her. 18 00:01:06,080 --> 00:01:10,150 Hvis du ønsker å komme ned. 19 00:01:10,150 --> 00:01:14,350 Du alle applaudere og er veldig hyggelig, men ingen sitter hvor som helst i nærheten av Nate, 20 00:01:14,350 --> 00:01:17,560 for noen grunn, i det tilbake sonen. 21 00:01:17,560 --> 00:01:24,020 Så kanskje du kan finne noen folk å nyte disse med. 22 00:01:24,020 --> 00:01:33,380 Happy Birthday, Nate. 23 00:01:33,380 --> 00:01:37,660 >> Ytterligere hellos: Vi viste et par klipp fra våre CS50x studenter. 24 00:01:37,660 --> 00:01:39,710 Hvis du ønsker å se hvem andre det er i verden 25 00:01:39,710 --> 00:01:41,850 som er følgende sammen, kan du ta turen til denne nettadressen, 26 00:01:41,850 --> 00:01:45,780 hvor Joseph, en av våre TFS, har satt sammen en montasje av sorterer 27 00:01:45,780 --> 00:01:50,290 av alle som har vært å sende disse videoene, blant dem Rick Astley. 28 00:01:50,290 --> 00:01:53,010 Og hvis du blar gjennom disse, er det egentlig ganske inspirerende 29 00:01:53,010 --> 00:01:56,890 å se mangfoldet av land og byer som folk hailing. 30 00:01:56,890 --> 00:02:00,830 Så hvis du ønsker å ta en titt på det, vil det være opp til slutten av semesteret. 31 00:02:00,830 --> 00:02:05,370 I dag fortsetter vi vår titt på nettet, web-programmering, HTML og lignende, 32 00:02:05,370 --> 00:02:08,280 og vi har også lunsj kommer opp denne fredag 33 00:02:08,280 --> 00:02:11,360 Hvis du ønsker, og spesielt, ikke har gjort det før. 34 00:02:11,360 --> 00:02:13,630 Dette fredagens tema vil være Nate bursdag, 35 00:02:13,630 --> 00:02:15,700 så hvis du ønsker å ha bursdag lunsj med Nate 36 00:02:15,700 --> 00:02:17,500 og andre, noen av våre venner fra industri, 37 00:02:17,500 --> 00:02:19,300 vennligst hodet til den URL'en der. 38 00:02:19,300 --> 00:02:22,510 Plass, som alltid, er begrenset. Også, hvis du har glemt, 39 00:02:22,510 --> 00:02:26,460 innse at neste uke er fristen for problemet satt 4s skattejakt, 40 00:02:26,460 --> 00:02:30,070 der etter å utvinne alle disse JPEG fra card.raw, 41 00:02:30,070 --> 00:02:32,880 du og din del mates, hvis du ønsker, kan du prøve å fotografere 42 00:02:32,880 --> 00:02:36,100 som mange av dataforskere fra at minnekort som mulig, 43 00:02:36,100 --> 00:02:39,070 og du og din del vil da vinne en fabelaktig premie. 44 00:02:39,070 --> 00:02:44,470 Se tilbake til pset 4 spesifikasjon om hva du skal sende og når. 45 00:02:44,470 --> 00:02:47,650 Også, hvis du ønsker å ha ditt verk foreviget 46 00:02:47,650 --> 00:02:51,400 på kurset hjemmeside og dens historie av klær, 47 00:02:51,400 --> 00:02:54,010 vet at du er velkommen nå for å begynne å sende design 48 00:02:54,010 --> 00:02:57,180 for årets T-skjorter og gensere og lignende. 49 00:02:57,180 --> 00:02:59,200 Vi vil gjøre vårt beste for å inkludere så mange som vi kan, 50 00:02:59,200 --> 00:03:01,440 men vi vil ha noen medlemmer av staben gjennom alle design 51 00:03:01,440 --> 00:03:04,180 å sørge for at de er i samsvar med spesifikasjonene, 52 00:03:04,180 --> 00:03:07,500 og vi deretter plukke vanligvis en håndfull av dem til å bli utstilt. 53 00:03:07,500 --> 00:03:10,620 Så hvis du er design type, bare vet at kravene 54 00:03:10,620 --> 00:03:14,030 for grafikk er PNG, minst 200 DPI, 55 00:03:14,030 --> 00:03:16,520 de bør ikke være mer enn 4000 x 4000 piksler, 56 00:03:16,520 --> 00:03:19,010 og ikke mer enn 10 MB, men du er velkommen til å bruke ting som 57 00:03:19,010 --> 00:03:22,430 Photoshop eller GIMP eller ulike grafiske sine programmer, 58 00:03:22,430 --> 00:03:24,590 uansett hva du har til disposisjon. 59 00:03:24,590 --> 00:03:28,280 >> Også på horisonten er det siste prosjektet. Det siste prosjektet er virkelig høydepunktet i 50, 60 00:03:28,280 --> 00:03:30,560 der av alle oppgavene i kurset, 61 00:03:30,560 --> 00:03:33,170 Det er din mulighet virkelig å gjøre dine egne ting. 62 00:03:33,170 --> 00:03:35,280 Og det kan være ganske enkelt å gjøre noe for moro skyld, 63 00:03:35,280 --> 00:03:38,160 det kan være å løse noen presserende problemet ditt studentgruppen har, 64 00:03:38,160 --> 00:03:40,980 for noen ny nettside, noen nye kolleksjon mekanisme for data. 65 00:03:40,980 --> 00:03:43,420 Det kan være en mobil applikasjon for Android, for iOS. 66 00:03:43,420 --> 00:03:46,030 Virkelig, er det ingen begrensninger, og i løpet av de neste ukene, 67 00:03:46,030 --> 00:03:50,900 som vi overgangen fra C til disse høyere nivå språk som PHP og JavaScript, 68 00:03:50,900 --> 00:03:55,150 du vil finne deg selv i økende grad kjent med noen virkelige verden teknikker, 69 00:03:55,150 --> 00:03:57,800 noen reelle verktøy, og å supplere det, 70 00:03:57,800 --> 00:04:00,170 vet at kurset har en historie med seminarer, 71 00:04:00,170 --> 00:04:02,880 der i løpet av de neste ukene, noen av lærerne 72 00:04:02,880 --> 00:04:06,160 og venner av oss fra på campus vil tilby valgfrie seminarer 73 00:04:06,160 --> 00:04:08,540 som går utover det som vanligvis gjøres i avsnitt 74 00:04:08,540 --> 00:04:11,090 å introdusere deg til ting som Android programmering, 75 00:04:11,090 --> 00:04:13,450 å introdusere deg til ting som iOS programmering 76 00:04:13,450 --> 00:04:15,950 eller mer avanserte web-utvikling teknikker. 77 00:04:15,950 --> 00:04:17,970 Det er en hel historie av disse allerede på nettet. 78 00:04:17,970 --> 00:04:25,000 Hvis du går til cs50.net/seminars, har vi gjort dette for en del år, 79 00:04:25,000 --> 00:04:28,740 og du vil se at arkiveres her med PDF-filer og videoer og lignende 80 00:04:28,740 --> 00:04:33,090 er flere dusin videoer av seminarer. 81 00:04:33,090 --> 00:04:37,380 I fjor, for eksempel, hadde vi et seminar om acing dine tekniske intervjuer, 82 00:04:37,380 --> 00:04:40,980 hvis du faktisk ønsker å gå av og gjøre et internship eller heltid gig. 83 00:04:40,980 --> 00:04:43,450 Windows mobile utvikling, Android utvikling, Google Maps, 84 00:04:43,450 --> 00:04:47,700 API, CSS, utvikling for BlackBerry, Emacs. 85 00:04:47,700 --> 00:04:52,610 Virkelig, er du velkommen til å ta en titt på noen av disse seminarene på din bekvemmelighet. 86 00:04:52,610 --> 00:04:57,080 Og vi skal holde noen nye dette semesteret, så vel. 87 00:04:57,080 --> 00:04:59,020 >> Så hva er foran med avsluttende prosjekt? 88 00:04:59,020 --> 00:05:01,090 Vel, først, selv om denne datoen er noe nært forestående, 89 00:05:01,090 --> 00:05:06,460 dette er egentlig bare en mulighet til å begynne å tenke på det avsluttende prosjekt ganske realistisk. 90 00:05:06,460 --> 00:05:10,550 Vi vet bare begynnelsen på noe av det vi vil fortsatt dekke i løpet, 91 00:05:10,550 --> 00:05:13,470 HTML, PHP og lignende, men du er alle kjent med på nettet, 92 00:05:13,470 --> 00:05:16,270 og jeg skjevhet denne samtalen mot nettet bare fordi 93 00:05:16,270 --> 00:05:18,380 de fleste ender opp med å gjøre Web-baserte endelige prosjekter, 94 00:05:18,380 --> 00:05:20,260 men det er på ingen måte nødvendig. 95 00:05:20,260 --> 00:05:22,260 Ved hjelp av C er fine, Objective C, Java, 96 00:05:22,260 --> 00:05:25,350 andre språk du kanskje vet eller ønsker å vite er ganske fin. 97 00:05:25,350 --> 00:05:29,370 Men for å få saftene renner i utgangspunktet, vil vi forvente at innlevering av preproposal 98 00:05:29,370 --> 00:05:33,520 som per i PDF på nettstedet, som er nå på cs50.net, 99 00:05:33,520 --> 00:05:36,080 og øverst til venstre vil du se avsluttende prosjekt 100 00:05:36,080 --> 00:05:38,920 er spesifikasjonen for det endelige prosjektet, 101 00:05:38,920 --> 00:05:41,470 og der er detaljer om preproposal og lignende. 102 00:05:41,470 --> 00:05:44,760 Det ganske mye koker ned til en e-post til din undervisning fellow 103 00:05:44,760 --> 00:05:48,450 bare for å innlede en samtale med ham eller henne om hva du tenker. 104 00:05:48,450 --> 00:05:52,510 På projects.cs50.net er et oppbevaringssted for ideer fra folk på campus 105 00:05:52,510 --> 00:05:54,480 Hvis du sliter med å komme opp med en ide, 106 00:05:54,480 --> 00:06:01,140 og manual.cs50.net/APIs er et oppbevaringssted for lenker til APIer. 107 00:06:01,140 --> 00:06:06,710 >> Hva, skjønt, er en API? 108 00:06:06,710 --> 00:06:09,790 Hva er en API? Jeg har sagt det minst to ganger, 109 00:06:09,790 --> 00:06:12,640 henhold til utskrifter av de siste ukene. 110 00:06:12,640 --> 00:06:17,050 Hva er det? [Student, uforståelig] 111 00:06:17,050 --> 00:06:19,340 >> Ok, bra. Så noe programmeringsgrensesnitt. 112 00:06:19,340 --> 00:06:22,710 Application programming interface, og dette kan ta flere former, 113 00:06:22,710 --> 00:06:25,850 men hva dette egentlig koker ned til er koden 114 00:06:25,850 --> 00:06:29,660 at noen andre hs skriftlig eller data som noen andre har samlet 115 00:06:29,660 --> 00:06:33,670 som er gjort tilgjengelig for deg på noen programmatisk måte. 116 00:06:33,670 --> 00:06:36,630 Du kan skrive kode i C, PHP, Python, Ruby, 117 00:06:36,630 --> 00:06:38,760 uansett språket er typisk, 118 00:06:38,760 --> 00:06:42,240 og du kan liksom bygge på andres funksjonalitet 119 00:06:42,240 --> 00:06:44,440 eller andres datasett. 120 00:06:44,440 --> 00:06:47,210 For eksempel, hvis jeg går til denne linken her, 121 00:06:47,210 --> 00:06:50,750 og du vil se et par linker på den påfølgende siden 122 00:06:50,750 --> 00:06:56,093 hvor vi har CS50 egen APIer, som er svært Harvard-sentrisk, og deretter tredjeparts API. 123 00:06:56,930 --> 00:06:59,300 Blant tredjeparts API-er er virkelig nyttige ting 124 00:06:59,300 --> 00:07:01,780 som å være i stand til å sende SMS til folk, 125 00:07:01,780 --> 00:07:04,690 å være i stand til å motta SMS-meldinger fra folk. 126 00:07:04,690 --> 00:07:08,160 Og ting som det som du kanskje har ingen anelse om hvordan å implementere selv, 127 00:07:08,160 --> 00:07:10,440 men takket være tjenester, noen gratis og noen kommersielle, 128 00:07:10,440 --> 00:07:14,000 du kan bygge oppå dem og gjøre noe av interesse for deg. 129 00:07:14,000 --> 00:07:16,990 Blant CS50 API-er disse campus-sentriske ting som 130 00:07:16,990 --> 00:07:21,480 Harvard kurs, energi, events, mat, kart, nyheter, tweets og Shuttleboy egen, 131 00:07:21,480 --> 00:07:23,940 og disse er APIer som ser litt noe sånt som dette. 132 00:07:23,940 --> 00:07:26,990 >> La meg trekke opp HarvardFood API. 133 00:07:26,990 --> 00:07:30,620 Hvis du har vært på HUD hjemmeside, har du sannsynligvis vært der 134 00:07:30,620 --> 00:07:35,410 å bare se hva som er til middag eller å se hva timene er for noen d-hallen. 135 00:07:35,410 --> 00:07:38,000 Vel, det er ikke særlig lett å navigere, 136 00:07:38,000 --> 00:07:41,100 og så hva vi gjorde for en tid siden ble vi skrev programvare, 137 00:07:41,100 --> 00:07:47,270 det skjer for å være i PHP, som faktisk skjermen skraper helheten av HUD nettsted. 138 00:07:47,270 --> 00:07:51,400 Å skjerme skrape noe betyr å skrive et program i et språk som PHP 139 00:07:51,400 --> 00:07:55,270 som later til å være en nettleser, selv om du kanskje kjøre den på en ledetekst, 140 00:07:55,270 --> 00:07:58,180 som later til å være en nettleser, kobles til et nettsted, 141 00:07:58,180 --> 00:08:01,480 laster sin HTML, hvilket språk det er skrevet, 142 00:08:01,480 --> 00:08:04,300 og leser deretter den, eller mer spesifikt, analyserer det 143 00:08:04,300 --> 00:08:06,140 topp til bunn, fra venstre mot høyre. 144 00:08:06,140 --> 00:08:08,870 Og hva vi gjorde var vi skrev vår kode på en slik måte at 145 00:08:08,870 --> 00:08:12,910 hver gang vi så noe i den HTML som så ut som noe på menyen, 146 00:08:12,910 --> 00:08:16,470 som hamburger, ville vi da importere det inn i vår egen database. 147 00:08:16,470 --> 00:08:20,410 Og hver gang vi så næringsinnhold, ville vi importerer det inn vår egen database. 148 00:08:20,410 --> 00:08:23,090 Og det vi gjorde var å utnytte det faktum at HUD nettsted, 149 00:08:23,090 --> 00:08:27,280 selv om det kan være litt av en utfordring for oss mennesker å navigere 150 00:08:27,280 --> 00:08:32,559 under panseret, alt av HTML generert av sine egne dataprogrammer. 151 00:08:32,559 --> 00:08:35,159 Så alle HTML deres, selv om det kan se rotete, 152 00:08:35,159 --> 00:08:38,026 som de fleste nettsteder under panseret følger det et mønster. 153 00:08:38,260 --> 00:08:40,799 Så vi bare brukte et par timer å finne ut at mønsteret 154 00:08:40,799 --> 00:08:44,240 slik at til slutt, kaster vi bort alle rotete HTML, 155 00:08:44,240 --> 00:08:47,340 alle estetikk fet vendte og kursiv og lignende, 156 00:08:47,340 --> 00:08:52,350 og hva vi er da i stand til å gjøre er å eksponere at samme data. 157 00:08:52,350 --> 00:08:54,870 For eksempel, på denne måten. 158 00:08:54,870 --> 00:08:56,840 Så vi ifølge dokumentasjon her, 159 00:08:56,840 --> 00:08:59,190 har meddelt verden at hvis du ber om en URL 160 00:08:59,190 --> 00:09:03,310 som ser ut som dette, food.cs50.net / noe, 161 00:09:03,310 --> 00:09:07,220 og du gir visse parametre, som vi vil snakke om i dag, 162 00:09:07,220 --> 00:09:11,780 som sluttdato tid, start-dato tid, måltid og så videre, 163 00:09:11,780 --> 00:09:14,090 hva våre servere vil komme tilbake til deg, for eksempel, 164 00:09:14,090 --> 00:09:18,740 er en CSV-fil, komma separted verdier som en Excel-fil, 165 00:09:18,740 --> 00:09:23,140 inneholder alt for frokost på denne datoen i mars i fjor 166 00:09:23,140 --> 00:09:25,450 når jeg kom til å skrive opp denne dokumentasjonen. 167 00:09:25,450 --> 00:09:27,870 >> For de som kjenner, er CSV ikke den eneste filformat. 168 00:09:27,870 --> 00:09:30,610 Det er et annet format som er enda mer allsidig 169 00:09:30,610 --> 00:09:32,670 kalt JSON, JavaScript Object Notation. 170 00:09:32,670 --> 00:09:34,770 Dataene kan komme tilbake i dette formatet. 171 00:09:34,770 --> 00:09:38,110 Så takeaway her er at om du dykke inn i dette API 172 00:09:38,110 --> 00:09:41,170 eller noen andre av CS50-eller noe der ute på Internett, 173 00:09:41,170 --> 00:09:45,560 eller ikke i det hele tatt, innse at verden har stadig begynt å standardisere 174 00:09:45,560 --> 00:09:47,670 hvordan maskinene intercommunicate. 175 00:09:47,670 --> 00:09:50,660 Vi bruker standard dataformater som CSV eller JSON. 176 00:09:50,660 --> 00:09:54,320 Og hva dette betyr for deg er at du kan skrive den interessante delen av et program 177 00:09:54,320 --> 00:09:56,580 som gjør at brukeren søke en spisesalen menyen 178 00:09:56,580 --> 00:10:00,010 som lar dem lage lister over favoritter som lar dem få tekstmeldinger 179 00:10:00,010 --> 00:10:02,480 når deres favoritt måltid er i ferd med å bli servert i noen d-hall 180 00:10:02,480 --> 00:10:07,090 ved hjelp av andres datasett og bygge på toppen av APIer deres. 181 00:10:07,090 --> 00:10:13,600 Så mer på det i form av seminarer og dokumentasjonen som du har her på nettet. 182 00:10:13,600 --> 00:10:16,450 Så de er altså APIer. 183 00:10:16,450 --> 00:10:18,900 >> Det bringer oss tilbake til HTML. Rask oppsummering. 184 00:10:18,900 --> 00:10:22,920 Hva er HTML? 185 00:10:22,920 --> 00:10:25,000 [Student, uforståelig] >> Good. HyperText Markup Language. 186 00:10:25,000 --> 00:10:31,300 Noen andre, hva er Hypertext Markup Language? 187 00:10:31,300 --> 00:10:37,340 HyperText Markup Language. 188 00:10:37,340 --> 00:10:40,330 Okay. Så HTML, HyperText. 189 00:10:40,330 --> 00:10:43,100 HyperText refererer bare til Internett, for det meste. 190 00:10:43,100 --> 00:10:45,730 Markup betyr at det er faktisk ikke et programmeringsspråk, HTML. 191 00:10:45,730 --> 00:10:48,120 Det er ikke et språk som du kan uttrykke logikk i. 192 00:10:48,120 --> 00:10:50,710 Det har ikke løkker. Det har ikke betingelser. 193 00:10:50,710 --> 00:10:52,820 Det har ikke funksjoner, per se. 194 00:10:52,820 --> 00:10:56,680 Snarere har det disse tingene som kalles tags, eller mer riktig, elementer. 195 00:10:56,680 --> 00:10:59,970 Og disse elementene har start-tagger og sluttkoder, 196 00:10:59,970 --> 00:11:04,300 eller åpne koder og lukkede koder, og hva disse kodene betyr generelt for en nettleser er, 197 00:11:04,300 --> 00:11:09,270 begynne å gjøre noe, og så slutte å gjøre noe, selv om det finnes unntak til det. 198 00:11:09,270 --> 00:11:12,480 Noen ganger er det bare "sette et linjeskift her, for eksempel. 199 00:11:12,480 --> 00:11:15,150 Og vi så eksempler på at den andre dagen, mellom fet overfor, 200 00:11:15,150 --> 00:11:17,430 linjeskift, og deretter et par andre koder. 201 00:11:17,430 --> 00:11:19,880 Så HTML er språket som nettsidene er skrevet. 202 00:11:19,880 --> 00:11:23,760 Så hvis jeg går til noe sånt Google.com 203 00:11:23,760 --> 00:11:26,180 og trekk opp bare deres hjemmeside, 204 00:11:26,180 --> 00:11:29,690 husker at hvis du høyreklikker eller Kontroll-klikk 205 00:11:29,690 --> 00:11:32,140 og se på utsikten side kilde, typisk 206 00:11:32,140 --> 00:11:34,420 det er en komplett rot i disse dager under panseret, men det er fordi 207 00:11:34,420 --> 00:11:38,170 datamaskiner ikke bryr seg om tomrom, så dette trenger ikke å se pen. 208 00:11:38,170 --> 00:11:40,240 Men hvis vi zoome inn på deler av den, 209 00:11:40,240 --> 00:11:43,460 merke til at Chrome, bare for å være hyggelig, har fargekodet ting. 210 00:11:43,460 --> 00:11:48,460 Faktisk er dette den aller første tag som vi så i en nettside. 211 00:11:48,460 --> 00:11:51,750 Og igjen, HTML 5, den nyeste versjonen av dette språket, 212 00:11:51,750 --> 00:11:53,830 har denne tingen i begynnelsen, 213 00:11:53,830 --> 00:11:57,820 00:12:03,580 men det er bare en slags standard som sier hei verden, her kommer en HTML-fil i versjon 5. 215 00:12:03,580 --> 00:12:08,920 >> Det interessante begynner her. Så 00:12:11,640 av HTML-elementene sist. 217 00:12:11,640 --> 00:12:14,630 Hva var de to viktigste barn? 218 00:12:14,630 --> 00:12:17,170 Hode og kropp, akkurat som fyren med tatovering for et øyeblikk siden. 219 00:12:17,170 --> 00:12:19,640 Det er to deler av websiden, hode og kropp, 220 00:12:19,640 --> 00:12:23,750 og tilbakekalling, da, at kanskje den enkleste nettside vi kunne gjøre ser slik ut. 221 00:12:23,750 --> 00:12:27,460 Og jeg har rykket det bare for å være snill av pent og ryddig med koden min, 222 00:12:27,460 --> 00:12:30,710 men hva er egentlig viktig her er at det er noen hierarki til dette. 223 00:12:30,710 --> 00:12:35,420 Og hvilken som helst kode som jeg har åpnet har jeg lukket, og at det er derfor denne symmetrien 224 00:12:35,420 --> 00:12:38,300 til alle markeringen som jeg har laget. 225 00:12:38,300 --> 00:12:41,620 Så siste gang vi begynte å skrive websider på min egen laptop. 226 00:12:41,620 --> 00:12:45,470 Jeg åpnet opp tekstredigering, reddet jeg filen som hello.html, 227 00:12:45,470 --> 00:12:50,190 Jeg så dratt filen på nettleseren min, og voila, jeg hadde en side på Internett. 228 00:12:50,190 --> 00:12:53,110 Nå er det ikke helt tilfelle, jeg hadde en side på harddisken min, 229 00:12:53,110 --> 00:12:58,260 og jeg var bokstavelig talt den eneste personen i verden som ville se denne nettsiden i en nettleser. 230 00:12:58,260 --> 00:13:00,670 >> Så i dag introduserer vi en faktisk webserver 231 00:13:00,670 --> 00:13:02,750 og oppfatningen av faktisk serverer innhold på Internett 232 00:13:02,750 --> 00:13:04,970 og hvordan dette begynner å passe sammen. 233 00:13:04,970 --> 00:13:08,350 Så det viser seg at hele denne tiden i CS50 apparatet 234 00:13:08,350 --> 00:13:11,590 du har hatt en webserver på din datamaskin. 235 00:13:11,590 --> 00:13:16,560 Vi har, i rettferdighet, bare brukt det for gedit, for Clang, for GDB og lignende, 236 00:13:16,560 --> 00:13:21,000 men også installert av oss for deg i apparatet er en web-server, 237 00:13:21,000 --> 00:13:23,940 og at webserveren skjer for å være fri, åpen kildekode, 238 00:13:23,940 --> 00:13:26,580 en av de mest populære i verden, kalt Apache. 239 00:13:26,580 --> 00:13:31,340 Dens mer teknisk navn er httpd, d blir for daemon her, 240 00:13:31,340 --> 00:13:34,110 som er en teknisk ord for en server. 241 00:13:34,110 --> 00:13:38,690 Så installert i CS50 apparatet er en web server, og hva betyr det? 242 00:13:38,690 --> 00:13:43,740 Vel, er en web-server, konseptuelt, noen server på Internett som serverer webinnhold. 243 00:13:43,740 --> 00:13:48,630 Når du blir spurt etter en fil, spytter den ut HTML som komponerer denne filen, og voila. 244 00:13:48,630 --> 00:13:51,370 Du ser noen nettside hjemmeside. 245 00:13:51,370 --> 00:13:54,970 Men en server er, mer presist, et stykke programvare. 246 00:13:54,970 --> 00:13:59,190 Det trenger ikke å være på en fysisk maskin, har det bare for å være et stykke programvare kjører. 247 00:13:59,190 --> 00:14:01,980 Så CS50 apparatet, selvfølgelig, er et stykke programvare 248 00:14:01,980 --> 00:14:04,270 selv om det er liksom late som en maskin. 249 00:14:04,270 --> 00:14:06,960 Det later til å være en datamaskin innsiden av en datamaskin, 250 00:14:06,960 --> 00:14:11,140 men det betyr bare at apparatet kan sikkert kjøre ting som webservere. 251 00:14:11,140 --> 00:14:13,260 Det kan faktisk kjøre e-postservere. 252 00:14:13,260 --> 00:14:16,440 Vi kunne kjøre en chat-server i apparatet hvis vi ønsket å, 253 00:14:16,440 --> 00:14:20,780 og ja, vi kjører en annen type server, kjent som en database server, MySQL. 254 00:14:20,780 --> 00:14:22,620 Men mer om det i neste uke. 255 00:14:22,620 --> 00:14:26,400 Dette betyr at jeg faktisk kan gå til websider 256 00:14:26,400 --> 00:14:30,480 innsiden av maskinen min ved hjelp av en nettleser inne i apparatet 257 00:14:30,480 --> 00:14:33,600 eller på min egen laptop, min Mac eller min PC. 258 00:14:33,600 --> 00:14:37,780 Så hva betyr dette? Det viser seg at hver gang du kjører en Linux-datamaskin, 259 00:14:37,780 --> 00:14:40,910 sitt kallenavn er "lokal vert." 260 00:14:40,910 --> 00:14:43,370 Det har ikke et domenenavn fordi vi ikke har kjøpt et domenenavn 261 00:14:43,370 --> 00:14:46,590 for noe som apparatet, så det standardnavnet er lokale verten. 262 00:14:46,590 --> 00:14:50,470 >> Men for å få apparatet til å starte serverer nettsider, 263 00:14:50,470 --> 00:14:52,270 Vi må skape dem først. 264 00:14:52,270 --> 00:14:55,200 Så la oss gjøre det. La meg gå inn i en terminal vindu her 265 00:14:55,200 --> 00:14:58,190 og merker at jeg er på min typisk John Harvard spørsmål. 266 00:14:58,190 --> 00:15:01,670 La meg gå videre og skriv ls, og vi vil se noen kjente ting fra dette semesteret, 267 00:15:01,670 --> 00:15:04,580 desktop, nedlastinger, dropbox og så videre, 268 00:15:04,580 --> 00:15:07,540 men nå begynner vi å snu oppmerksomheten mot et par. 269 00:15:07,540 --> 00:15:11,530 På mange Linux webservere det er denne mappen som heter offentlig html, 270 00:15:11,530 --> 00:15:15,630 men vi kommer til å hoppe over at en for nå og fokusere på dette, vhosts. 271 00:15:15,630 --> 00:15:18,850 Noen som vet hva en vhost er? 272 00:15:18,850 --> 00:15:21,110 Bare dumt sjargong for virtuell host, 273 00:15:21,110 --> 00:15:23,850 og hva dette betyr er at på en typisk server 274 00:15:23,850 --> 00:15:26,810 du kan faktisk være vert for flere nettsteder. 275 00:15:26,810 --> 00:15:31,500 Du kan kjøpe et domenenavn som foo.com, og du kan legge det ut på en server. 276 00:15:31,500 --> 00:15:36,100 Men du kan også kjøpe bar.com og vert det på samme server. 277 00:15:36,100 --> 00:15:40,250 Årsaken er, nettlesere er smart nok til å informere serveren 278 00:15:40,250 --> 00:15:45,880 når en bruker ber om noen nettside, hva domenenavn brukeren ønsker hjemmesiden for. 279 00:15:45,880 --> 00:15:48,760 Så hva er fint om dette er at du ikke trenger en fysisk server 280 00:15:48,760 --> 00:15:52,040 eller en CS50 apparatet for hvert nettsted du kanskje ønsker å skape. 281 00:15:52,040 --> 00:15:55,520 Du kan bruke den samme serveren og utvikle hundre forskjellige nettsteder. 282 00:15:55,520 --> 00:15:58,770 Og ja, hvis du er en person som prøver å starte et nettsted, 283 00:15:58,770 --> 00:16:02,100 enten for gøy eller for virksomheten, typisk vil gå ut på Internett, 284 00:16:02,100 --> 00:16:04,650 og du må betale noen ti dollar i måneden, hundre dollar i måneden 285 00:16:04,650 --> 00:16:06,670 å være vert for nettstedet for deg. 286 00:16:06,670 --> 00:16:11,060 Og måten som fungerer er de tar andre mennesker 287 00:16:11,060 --> 00:16:13,160 ti dollar i måneden eller hundre dollar i måneden 288 00:16:13,160 --> 00:16:17,200 å være vert andres nettsteder på sin samme server. 289 00:16:17,200 --> 00:16:20,740 Grunnen til at de kan gjøre det er på grunn av denne funksjonen kalles bhosts, 290 00:16:20,740 --> 00:16:23,790 men mer om det når det gjelder tid for siste prosjekter. 291 00:16:23,790 --> 00:16:28,360 >> For nå, la oss bare dykke i det. Så cd vhosts, og hvis type I ls nå, 292 00:16:28,360 --> 00:16:31,370 merke til at det er en mappe der som heter lokale verten. 293 00:16:31,370 --> 00:16:33,440 Det er fordi, som standard, apparatet tallene 294 00:16:33,440 --> 00:16:36,160 du noen gang kommer til å kjøre en nettside på et apparat. 295 00:16:36,160 --> 00:16:38,970 Dette er ikke egentlig den virkelige verden, det er ikke en reell web server. 296 00:16:38,970 --> 00:16:41,690 Så la meg gå inn lokale verten, og nå får vi se der 297 00:16:41,690 --> 00:16:44,290 en siste katalog kalt HTML. 298 00:16:44,290 --> 00:16:47,080 Så det er litt dypt, hierarkiet, men hvis og når 299 00:16:47,080 --> 00:16:51,230 du bestemmer deg for å begynne å utvikle flere nettsteder i løpet av de neste n måneder eller år, 300 00:16:51,230 --> 00:16:54,370 denne typen mappestruktur tendens til å være nyttig. 301 00:16:54,370 --> 00:16:56,560 Nå la oss gå inn HTML som jeg nettopp gjorde, 302 00:16:56,560 --> 00:16:59,010 Skriv inn ls, og ingenting er der. 303 00:16:59,010 --> 00:17:01,390 Så la oss nå gå videre og gjøre dette. La meg åpne opp Chrome 304 00:17:01,390 --> 00:17:07,300 innsiden av maskinen, og la meg gå til http://localhost. 305 00:17:07,300 --> 00:17:14,440 Så bokstavelig navnet for enheten min, gå inn, og jeg får indeks /. 306 00:17:14,440 --> 00:17:18,290 Dette er egentlig ikke viser meg noe av interesse, 307 00:17:18,290 --> 00:17:23,400 men det viser seg at det vi ser er at mappen, HTML. 308 00:17:23,400 --> 00:17:25,770 Det er ingenting inne den mappen akkurat nå, 309 00:17:25,770 --> 00:17:28,750 så i stedet, hva jeg nødt til å gjøre er å først lage en fil. 310 00:17:28,750 --> 00:17:33,530 Opprett en HTML-fil som vi gjorde på mandag, men denne gangen satt det inne i apparatet. 311 00:17:33,530 --> 00:17:36,830 For de av dere som prøver å følge med bærbare datamaskiner nå, 312 00:17:36,830 --> 00:17:42,040 la meg gjøre en side som vil bli dekket i det web-baserte pset, 313 00:17:42,040 --> 00:17:44,280 men for å få dette til å fungere for aller første gang, 314 00:17:44,280 --> 00:17:49,830 du er nødt til å kjøre denne kommandoen: sudo tjenesten httpd start. 315 00:17:49,830 --> 00:17:52,670 Og dette, igjen, vil bli gjentatt i siste pset, 316 00:17:52,670 --> 00:17:55,460 men hvis du spiller sammen hjemme nå, webserveren 317 00:17:55,460 --> 00:17:58,660 er slått av i apparatet, og det er slik at det ikke tappe opp RAM 318 00:17:58,660 --> 00:18:01,960 og minne for 7 uker ut i semesteret når vi ikke trenger det. 319 00:18:01,960 --> 00:18:05,190 Så du trenger for å kjøre denne kommandoen en gang, og du vil få en utgang sånn. 320 00:18:05,190 --> 00:18:07,920 Da bør du være i stand til å spille sammen her. 321 00:18:07,920 --> 00:18:10,330 Nå la oss gå tilbake til denne mappen. 322 00:18:10,330 --> 00:18:12,770 Denne mappen er tom, så la meg begynne å lage en fil, 323 00:18:12,770 --> 00:18:16,360 gedit hello.html. 324 00:18:16,360 --> 00:18:20,930 >> OK. Gedit er åpen, som vanlig. La meg gjøre doctype, html, 325 00:18:20,930 --> 00:18:25,270 html, la meg komme i forkant av meg selv og begynne å lukke mine tags på forhånd. 326 00:18:25,270 --> 00:18:28,380 Nå har jeg hodet. La meg gå videre og lukke hodet, 327 00:18:28,380 --> 00:18:32,450 la meg nå gjør tittelen på siden, hallo verden som forrige gang, 328 00:18:32,450 --> 00:18:34,790 nær tittelen, nå la meg gjøre en kropp. 329 00:18:34,790 --> 00:18:38,130 Her vil jeg si hei, verden med noen exclams 330 00:18:38,130 --> 00:18:40,550 å gjøre det klart at det er en annen streng. 331 00:18:40,550 --> 00:18:45,800 Lukk kroppen, og nå la meg gå videre og fil lagre. 332 00:18:45,800 --> 00:18:48,470 La meg gå tilbake til min terminal-vinduet, og hvis jeg skriver ls, 333 00:18:48,470 --> 00:18:51,830 Jeg burde antagelig se hello.html. Og jeg gjør. 334 00:18:51,830 --> 00:18:55,070 Så nå la oss gå tilbake til nettleseren min, klikk på nytt, 335 00:18:55,070 --> 00:18:58,930 og du kan se vi er faktisk inne i denne HTML mappen. 336 00:18:58,930 --> 00:19:02,310 Jeg ser ikke en nettside ennå, dette er Apache, web server, 337 00:19:02,310 --> 00:19:04,670 bare viser meg listen innholdet i denne katalogen. 338 00:19:04,670 --> 00:19:08,260 Akkurat som Mac OS eller Windows vanligvis ville gjøre på ditt eget lokale harddisken. 339 00:19:08,260 --> 00:19:12,730 Så hvis jeg ønsker å se denne nettsiden, kan jeg klikke på denne lille koblingen her, hello.html, 340 00:19:12,730 --> 00:19:15,160 og faktisk, det er hva jeg hadde ventet å se. 341 00:19:15,160 --> 00:19:18,080 Nå, igjen, dette er ikke en URL som noen av dere kan besøke akkurat nå, 342 00:19:18,080 --> 00:19:20,760 fordi for deg, lokale verten, hvis du har en laptop her, 343 00:19:20,760 --> 00:19:23,050 den viser til en egen instans av apparatet. 344 00:19:23,050 --> 00:19:25,900 Dette er på min egen personlige apparatet, 345 00:19:25,900 --> 00:19:29,080 men dette er slags dum for meg å ha, for å ha 346 00:19:29,080 --> 00:19:34,480 en bruker som meg klikke på hello.html å faktisk se innholdet på denne siden. 347 00:19:34,480 --> 00:19:42,590 Det viser seg at webservere som Apache la deg ha en standard fil for alle web server. 348 00:19:42,590 --> 00:19:44,640 Legg merke her har vi hello.html. 349 00:19:44,640 --> 00:19:48,410 Hva er kommandoen i Linux for å endre navn på en fil? 350 00:19:48,410 --> 00:19:50,870 >> MV, for farten. Så la meg gjøre det, 351 00:19:50,870 --> 00:19:55,870 og la meg endre navn hello.html til index.html. 352 00:19:55,870 --> 00:19:58,610 La meg skrive ls for å bekrefte det er nå blitt omdøpt. 353 00:19:58,610 --> 00:20:03,250 Nå er dette kommer til å - hvis jeg går tilbake til lokal vert, 354 00:20:03,250 --> 00:20:06,710 merker nå at jeg automatisk ser at nettsiden. 355 00:20:06,710 --> 00:20:11,740 Dette er identisk med min faktisk gjør / index.html, 356 00:20:11,740 --> 00:20:14,740 men det fine er nå at webserveren er å finne, 357 00:20:14,740 --> 00:20:18,830 oh, hvis du har en fil som, ved menneskelige konvensjoner, heter index.html, 358 00:20:18,830 --> 00:20:21,200 la meg vise brukeren at filen som standard 359 00:20:21,200 --> 00:20:25,290 snarere enn noen dum katalogoppføring som ikke i det hele tatt brukervennlig. 360 00:20:25,290 --> 00:20:28,900 Faktisk har de fleste nettstedene du besøker på Internett, ikke har en liste over filer å klikke på, 361 00:20:28,900 --> 00:20:34,040 de bare vise deg innholdet. Så det er hvordan vi kan gjøre det, index.html. 362 00:20:34,040 --> 00:20:37,000 Så dette er alle morsomme og bra, men dette er en ganske enkel nettside. 363 00:20:37,000 --> 00:20:41,640 La meg gå videre og åpne opp index.html i mine vhosts, 364 00:20:41,640 --> 00:20:47,620 lokale verter, html katalogen, og la oss legge noe av større interesse. 365 00:20:47,620 --> 00:20:56,120 Så det er hallo verden, la oss i stedet si «Dette er CS50, Harvard College. . ». 366 00:20:56,120 --> 00:21:00,000 Så i begynnelsen av kurskatalogen beskrivelse av noe slag der. 367 00:21:00,000 --> 00:21:03,780 Nå hvis jeg laste, bør jeg se dette i min startside. 368 00:21:03,780 --> 00:21:09,560 Ok, og jeg ser det, men antar at jeg vil nå liste opp noen mer innhold i denne filen. 369 00:21:09,560 --> 00:21:15,160 Jeg kunne gå ned her og si, forutsetninger ingen, 370 00:21:15,160 --> 00:21:18,740 selv om noen av dere er sikkert liker, 'Ha ha ha, ingen forutsetninger. 371 00:21:18,740 --> 00:21:24,320 Men - offisielt. Så legg, og nå har vi den samme innfall som vi så forrige gang. 372 00:21:24,320 --> 00:21:26,240 Men hvorfor er det? Det var en enkel løsning. 373 00:21:26,240 --> 00:21:31,440 Hvorfor er denne siden brutt? 374 00:21:31,440 --> 00:21:34,170 [Student, uforståelig] >> Ja, vi har løst dette før 375 00:21:34,170 --> 00:21:37,440 ved å eksplisitt fortelle nettleseren sette et linjeskift her. 376 00:21:37,440 --> 00:21:39,440 Og det er fordi, igjen, er en leser bare kommer til å gjøre 377 00:21:39,440 --> 00:21:42,610 eksplisitt hva kodespråk forteller det å gjøre, 378 00:21:42,610 --> 00:21:45,730 så selv om du kanskje har truffet inn én eller to ganger eller ti ganger, 379 00:21:45,730 --> 00:21:49,870 det kommer til å kombinere det hele inn i en enkelt mellomrom, like ved konvensjonen. 380 00:21:49,870 --> 00:21:52,770 Så hvis du virkelig ønsker et linjeskift, må du bruke br tag, 381 00:21:52,770 --> 00:21:56,840 og nå varsel, som mandag, satte jeg / innsiden av denne koden, 382 00:21:56,840 --> 00:22:00,090 bare fordi dette bare ikke føles riktig 383 00:22:00,090 --> 00:22:02,990 å starte et linjeskift deretter stoppe den med ingenting i mellom. 384 00:22:02,990 --> 00:22:07,740 >> Så konvensjonen i HTML er å åpne og lukke en tag samtidig. 385 00:22:07,740 --> 00:22:11,050 Som en side, vil du se en rekke nettsteder i bøker ikke gjør det. 386 00:22:11,050 --> 00:22:14,240 Det er riktig å gjøre eller ikke gjøre det, men vi vil hevde 387 00:22:14,240 --> 00:22:17,430 at design-messig og stilistisk er dette bare bedre 388 00:22:17,430 --> 00:22:20,540 fordi da hver tag er både åpnet og lukket eller annen måte. 389 00:22:20,540 --> 00:22:23,370 Så nå la oss lagre og laste. Gå tilbake til nettleseren, ok. 390 00:22:23,370 --> 00:22:26,680 Nå vi gjør noen fremgang, men det er ikke helt nok. 391 00:22:26,680 --> 00:22:33,210 La oss gå videre og begynne å skrive på noen lengre kropp av tekst. 392 00:22:33,210 --> 00:22:40,610 Så la oss si, 'En rask brune reven hopper over en lat hund. 393 00:22:40,610 --> 00:22:42,700 Og nå la meg bare kopiere og lime dette noen ganger 394 00:22:42,700 --> 00:22:45,040 slik at vi har et avsnitt med tekst. 395 00:22:45,040 --> 00:22:47,780 La meg gå tilbake hit. Så det er ikke ser veldig bra ut. 396 00:22:47,780 --> 00:22:50,000 Jeg har et linjeskift, så det er greit, 397 00:22:50,000 --> 00:22:52,140 men nå, når vi får til poenget med å ha en nettside 398 00:22:52,140 --> 00:22:55,640 som har massevis av innhold og ikke bare enkle linjer å demonstrere HTML, 399 00:22:55,640 --> 00:22:58,570 Vi kan begynne å tenke på disse tingene som faktiske avsnitt. 400 00:22:58,570 --> 00:23:01,590 Og vi kan begynne å strukturere vår nettside litt mer renslig. 401 00:23:01,590 --> 00:23:05,120 Og ja, hva jeg kan gjøre er å gå opp her inne av kroppen min tag, 402 00:23:05,120 --> 00:23:09,400 og vet du hva, hvis "Dette er CS50. . ». virkelig demarks begynnelsen av et avsnitt, 403 00:23:09,400 --> 00:23:11,310 vel, la oss merke det som sådan. 404 00:23:11,310 --> 00:23:13,570 La meg rykke teksten, bare ved konvensjonen, la meg si 405 00:23:13,570 --> 00:23:15,710 Bestemmelsene i dette punkt slutter her, 406 00:23:15,710 --> 00:23:18,320 og deretter heller enn å gjøre dette linjeskift, la meg bare si 407 00:23:18,320 --> 00:23:23,300 at dette hører til der, og som et nytt avsnitt, 408 00:23:23,300 --> 00:23:27,610 og jeg vil bare raskt rykke ved bare clobbering alt dette ting. 409 00:23:27,610 --> 00:23:30,660 >> Så nå har vi et innrykket avsnitt der, 410 00:23:30,660 --> 00:23:33,510 og nå vår markering begynner å få litt mer 411 00:23:33,510 --> 00:23:37,070 semantisk konsistent med hva vi prøver å gjøre. 412 00:23:37,070 --> 00:23:40,130 Vi har et avsnitt, så la oss kalle det et avsnitt med p-taggen. 413 00:23:40,130 --> 00:23:43,370 Vi har en annet ledd, så la oss kalle det et avsnitt med p-taggen. 414 00:23:43,370 --> 00:23:45,850 Og nå, hva leseren vil typisk gjøre 415 00:23:45,850 --> 00:23:48,490 er akkurat som i en engelsk bok eller essay, 416 00:23:48,490 --> 00:23:51,280 der du vanligvis ser noen linjeskift mellom avsnitt. 417 00:23:51,280 --> 00:23:53,720 Nettlesere vil gjøre det for deg automatisk. 418 00:23:53,720 --> 00:23:56,680 Så nå har vi to avsnitt, og vi kan fortsette denne. 419 00:23:56,680 --> 00:23:58,770 Men, selvfølgelig, på Internett, når du har en kropp av tekst 420 00:23:58,770 --> 00:24:01,370 det er ikke typisk bare store blobs med tekst. 421 00:24:01,370 --> 00:24:04,040 Det er ofte hyperkoblinger i det. 422 00:24:04,040 --> 00:24:07,250 Så hvis vi vil, for eksempel inkludere noen linker der, 423 00:24:07,250 --> 00:24:10,760 anta hva som kan være av interesse i hva nettside Jeg oppretter her er - 424 00:24:10,760 --> 00:24:12,780 la meg gå til Google.com, 425 00:24:12,780 --> 00:24:16,540 og la meg søke etter en rask brune reven. 426 00:24:16,540 --> 00:24:22,150 Gå til Google bilder, og, hva med - dette er søt. 427 00:24:22,150 --> 00:24:27,420 Vi vil gå med dette. Så her har vi en rask brune reven hopper over en lat hund. 428 00:24:27,420 --> 00:24:30,560 Så det jeg skal gjøre her, bare for moro skyld for demonstrasjonen, 429 00:24:30,560 --> 00:24:32,950 er vel at dette bildet var på serveren min, 430 00:24:32,950 --> 00:24:35,240 og jeg hadde vært å skape disse bildene. 431 00:24:35,240 --> 00:24:38,720 Hva jeg gjorde var høyreklikk eller Kontroll-klikk på bildet, 432 00:24:38,720 --> 00:24:42,370 og hva du vil se i de fleste nettlesere er en liten meny - 433 00:24:42,370 --> 00:24:48,800 slutte å gjøre det - en liten meny som lar deg velge Copy Link Location eller kopiere URL. 434 00:24:48,800 --> 00:24:52,750 Så la meg gå tilbake nå til HTML min, og antar at jeg vil 435 00:24:52,750 --> 00:24:56,420 til hyperkobling dette til en annen nettside. 436 00:24:56,420 --> 00:24:58,640 >> Hva var koden kalt for det? 437 00:24:58,640 --> 00:25:01,650 [Student, uforståelig] >> Ja. Så en href for hyper referanse. 438 00:25:01,650 --> 00:25:04,660 La meg gå videre og lime den inn 439 00:25:04,660 --> 00:25:07,290 Det er en ganske lang URL, så la meg zoome ut igjen. 440 00:25:07,290 --> 00:25:09,950 Lukk parentes, så nå merker jeg er veien hit 441 00:25:09,950 --> 00:25:11,960 fordi denne nettadressen skjedde til å være ganske lang. 442 00:25:11,960 --> 00:25:15,180 La meg bla over her til slutten av rask brune reven, 443 00:25:15,180 --> 00:25:18,830 og deretter la meg lukke denne taggen med 00:25:21,280 der jeg bare lukket navnet på taggen. 445 00:25:21,280 --> 00:25:24,470 Nå la meg gå videre og lagre filen, laster websiden, 446 00:25:24,470 --> 00:25:27,880 og nå som standard, som kommer til å bli understreket i blått for meg, 447 00:25:27,880 --> 00:25:31,980 men ja, jeg kan nå klikke på dette og voila. Det er det bildet. 448 00:25:31,980 --> 00:25:33,990 Og det gjorde ikke å være et bilde, det kunne ha knyttet 449 00:25:33,990 --> 00:25:36,270 til noen andre tilfeldige hjemmeside på Internett. 450 00:25:36,270 --> 00:25:39,610 Jeg kunne gjøre dette, for eksempel med CS50, så en siste eksempel her. 451 00:25:39,610 --> 00:25:42,730 'Dette er CS50' kan være fornuftig å gå en, href = 452 00:25:42,730 --> 00:25:50,340 http://www.cs50.net, nær sitat, nær anker. 453 00:25:50,340 --> 00:25:53,990 Så nå er det en enda kortere URL, og denne gangen har vi ikke kommer til å linke til et bilde. 454 00:25:53,990 --> 00:25:57,880 Vi istedenfor å gå å koble til en annen side. 455 00:25:57,880 --> 00:25:59,840 Nå har vi et bilde her. 456 00:25:59,840 --> 00:26:02,970 Jeg føler at vi kan gjøre det litt bedre enn bare å koble til et bilde. 457 00:26:02,970 --> 00:26:05,760 Hva hvis vi ønsker å faktisk det legemliggjøre i vår egen nettside? 458 00:26:05,760 --> 00:26:09,290 >> Vel, hva jeg kan gjøre her er, snarere enn link til dette grafisk, 459 00:26:09,290 --> 00:26:14,690 la meg i stedet kutte URL, og vi vil bli kvitt det hyperkoblingen og rydde opp. 460 00:26:14,690 --> 00:26:17,190 Og vi vil gå ned her og bli kvitt dette. 461 00:26:17,190 --> 00:26:20,910 Vi trenger egentlig ikke alle disse setningene nå, så la meg forkorte siden litt. 462 00:26:20,910 --> 00:26:24,530 Og deretter ned her la meg gå videre i et nytt avsnitt, 463 00:26:24,530 --> 00:26:30,100 sier at jeg ikke vil at teksten nå, vil jeg et bilde som kilde kommer til å være at nettadressen. 464 00:26:30,100 --> 00:26:33,100 Et bilde, som et linjeskift, er enten det eller er det ikke. 465 00:26:33,100 --> 00:26:35,900 Så la meg med en gang lukke denne koden. 466 00:26:35,900 --> 00:26:39,440 La meg gå videre nå og lukk avsnittet som jeg er inne, 467 00:26:39,440 --> 00:26:43,010 og hvis alt går bra med Hello, world, hvis jeg på nytt nå, 468 00:26:43,010 --> 00:26:45,520 Jeg faktisk se rett inni min egen nettside et bilde. 469 00:26:45,520 --> 00:26:48,570 Så nå har vi et bilde tag, en ankerkode og lignende, 470 00:26:48,570 --> 00:26:51,320 og for godt mål, la meg gjøre en annen ting som ofte neglisjert 471 00:26:51,320 --> 00:26:55,900 på nettsteder i disse dager: La oss gi noen beskrivende tekst for dette bildet 472 00:26:55,900 --> 00:26:58,090 for folk som er på en mobil enhet 473 00:26:58,090 --> 00:27:00,640 og derfor ikke kan være i stand til å laste ned dette bildet svært raskt, 474 00:27:00,640 --> 00:27:03,310 for folk som er blinde og kan ikke være i stand til å se bildet 475 00:27:03,310 --> 00:27:06,480 men de kan ha en skjermleser som kan fortelle dem hva dette bildet er av. 476 00:27:06,480 --> 00:27:09,100 Og for å gjøre det, det er en annen egenskap for bilde koder 477 00:27:09,100 --> 00:27:11,290 kalt alt, for alternativ tekst. 478 00:27:11,290 --> 00:27:14,650 Og hva jeg kan gjøre her er å si: "Dette er en rask brune reven. 479 00:27:14,650 --> 00:27:17,650 Slik at selv om den menneskelige ikke kan se bildet på skjermen, 480 00:27:17,650 --> 00:27:20,560 han eller hun kan i det minste høre, som med noen stykke programvare, 481 00:27:20,560 --> 00:27:23,080 hva er egentlig det på skjermen. 482 00:27:23,080 --> 00:27:25,040 >> Det vil ikke endre estetikk på siden, 483 00:27:25,040 --> 00:27:27,640 men det er absolutt god praksis for brukerne. 484 00:27:27,640 --> 00:27:31,760 Greit, la oss forlate denne nettsiden i sin nåværende form, 485 00:27:31,760 --> 00:27:33,890 men la oss se om vi ikke kan nå presentere 486 00:27:33,890 --> 00:27:36,210 noen bedre tilnærminger til å skrive disse nettsidene, 487 00:27:36,210 --> 00:27:39,980 noen leksjoner som kommer til å tjene oss godt som våre sider blir mer og mer komplekse. 488 00:27:39,980 --> 00:27:42,220 Hva vi ikke kommer til å gjøre i løpet av de neste ukene 489 00:27:42,220 --> 00:27:46,810 er leder deg gjennom alle de flere dusin HTML-kodene som det er. 490 00:27:46,810 --> 00:27:49,800 Mye som i grunnen tilbake i uke 0, er det sannsynligvis vil være nok 491 00:27:49,800 --> 00:27:52,120 å gi et høyt nivå oversikt over noen av konseptene, 492 00:27:52,120 --> 00:27:54,530 en rask gjennomgang av noen av de blokkene du var sannsynligvis i stand, 493 00:27:54,530 --> 00:27:58,240 ganske komfortabelt, for å navigere på egen hånd, de ulike brikkene. 494 00:27:58,240 --> 00:28:00,460 Og det kommer til å skje igjen i HTML, mest sannsynlig, 495 00:28:00,460 --> 00:28:04,320 der det er rikelig med ressurser på nettet som vi vil henvise deg til, 496 00:28:04,320 --> 00:28:06,920 ulike lærebøker, hvis du foretrekker å lese en lærebok, 497 00:28:06,920 --> 00:28:10,560 som vil lede deg gjennom alle de forskjellige tingene du kan gjøre med HTML, 498 00:28:10,560 --> 00:28:16,100 men egentlig har vi sett så langt i HTML fleste av de grunnleggende begreper. 499 00:28:16,100 --> 00:28:19,900 Vi har den oppfatningen av koder som blir åpnet, blir kodene stengt. 500 00:28:19,900 --> 00:28:22,100 Noen koder som er både åpnet og lukket 501 00:28:22,100 --> 00:28:24,620 i den forstand at de er tomme, og det bør være noe inne i dem 502 00:28:24,620 --> 00:28:27,490 som et bilde tag eller et linjeskift, som er akkurat det. 503 00:28:27,490 --> 00:28:32,330 Vi har også sett allerede på forestillingen om en attributt, som alt eller kilde. 504 00:28:32,330 --> 00:28:36,410 Legg merke til at disse ordene har en tendens, etter konvensjonen, for å være kort og konsis. 505 00:28:36,410 --> 00:28:39,140 >> Vi har ikke skjønn over hva disse tingene er kalt, 506 00:28:39,140 --> 00:28:42,060 noen andre som oppfant HTML kom opp med disse navnene. 507 00:28:42,060 --> 00:28:44,710 Så du må bare begynne å vite eller slå opp hver gang du trenger dem, 508 00:28:44,710 --> 00:28:47,160 hva navnene er for disse kodene og attributter. 509 00:28:47,160 --> 00:28:49,510 I tilfelle av disse attributtene, attributter generelt 510 00:28:49,510 --> 00:28:52,900 endre oppførselen til noen tag. 511 00:28:52,900 --> 00:28:55,710 I dette tilfellet, forteller kildeattributtet bildet taggen 512 00:28:55,710 --> 00:28:57,940 hva kilden av bildet skal være. 513 00:28:57,940 --> 00:29:04,460 Href-attributtet forteller ankerkoden hva det faktisk skal være å linke til. 514 00:29:04,460 --> 00:29:06,800 Men i forhold til strukturen i en nettside, selv om Facebook 515 00:29:06,800 --> 00:29:09,680 og Google og lignende ser ut som en komplett rot 516 00:29:09,680 --> 00:29:12,560 under panseret ved første øyekast, hvis du begynner å lese gjennom det 517 00:29:12,560 --> 00:29:16,950 mer metodisk, de følger dette grunnleggende, grunnleggende struktur. 518 00:29:16,950 --> 00:29:19,660 Men vi kan forbedre stilisering av disse tingene. 519 00:29:19,660 --> 00:29:24,180 Så la meg gå til noen eksempler som jeg forberedt på forhånd. 520 00:29:24,180 --> 00:29:27,280 La meg gå videre og kopiere dem fra en annen mappe her 521 00:29:27,280 --> 00:29:29,380 og sette dem inn i denne katalogen. 522 00:29:29,380 --> 00:29:32,210 På forhånd hva jeg gjorde var å forberede noen filer: 523 00:29:32,210 --> 00:29:35,670 search0, search1, search2, og search3 og 4. 524 00:29:35,670 --> 00:29:38,740 La meg gå videre og åpne opp den første av disse filene, 525 00:29:38,740 --> 00:29:42,570 og la oss se om vi ikke kan begynne å lage vår egen søkemotor. 526 00:29:42,570 --> 00:29:46,530 På toppen av denne filen, som vanligvis er tilfelle i klassen, bare en haug med kommentarer. 527 00:29:46,530 --> 00:29:49,760 I HTML, men midlene som du starter en kommentar 528 00:29:49,760 --> 00:29:55,640 er <- og så er du inne i en kommentar, en multi-line kommentar. 529 00:29:55,640 --> 00:29:59,800 Når du er klar til å stoppe den kommentaren, kan du gjøre ->. 530 00:29:59,800 --> 00:30:02,380 Så alt øverst i blått er bare en kommentar. 531 00:30:02,380 --> 00:30:04,620 >> Dette er min doctype erklæringen, som igjen 532 00:30:04,620 --> 00:30:07,080 du kan bare kopiere og lime inn på tro, for nå. 533 00:30:07,080 --> 00:30:10,410 Dette forteller bare nettleseren, her kommer noen HTML 5. 534 00:30:10,410 --> 00:30:13,600 Under det, på linje 14, er den første av de faktiske koder, 535 00:30:13,600 --> 00:30:16,900 og dette sier bare, som før, her kommer noen HTML, 536 00:30:16,900 --> 00:30:19,460 her kommer hodet på siden min, her kommer tittelen, 537 00:30:19,460 --> 00:30:23,900 og deretter omvendt, det er det for tittelen, det er det for hodet. 538 00:30:23,900 --> 00:30:26,460 Her kommer nå hovedteksten på siden min. 539 00:30:26,460 --> 00:30:31,040 Så et par nye koder nå: h1 står for overskrift 1. 540 00:30:31,040 --> 00:30:33,850 Det er en tradisjon i HTML for mange år tilbake 541 00:30:33,850 --> 00:30:37,990 for å ha forskjellige størrelser med tekst. 542 00:30:37,990 --> 00:30:41,980 Og tilbake i dag, mente hver enkelt, generelt, akkurat stor og fet. 543 00:30:41,980 --> 00:30:45,860 Men det er også h2, som er stor, men ikke fullt så stor og fet. 544 00:30:45,860 --> 00:30:49,320 Det er H3, som er slags stor, men ikke på langt nær så stor og fet, 545 00:30:49,320 --> 00:30:52,380 og så videre, helt ned til h6. 546 00:30:52,380 --> 00:30:55,550 I disse dager, men er h1, h2 og h3 egentlig mente 547 00:30:55,550 --> 00:30:57,980 å ha mer semantisk mening til dem, 548 00:30:57,980 --> 00:31:01,100 hvor h1 er virkelig en overskrift: overskriften på en nettside, 549 00:31:01,100 --> 00:31:04,210 overskriften i en kolonne eller noe sånt av teksten. 550 00:31:04,210 --> 00:31:09,030 Så jeg har bevisst sagt h1 CS50 søk> h1 551 00:31:09,030 --> 00:31:12,640 å spesifisere at dette er virkelig overskriften, tittelen på siden min. 552 00:31:12,640 --> 00:31:14,850 Ikke tittelen i tittellinjen forstand, 553 00:31:14,850 --> 00:31:18,960 men tittelen at du faktisk ser i selve nettsiden, i kroppen. 554 00:31:18,960 --> 00:31:20,990 Nå dette, kan du sikkert gjette hva det er, 555 00:31:20,990 --> 00:31:23,110 selv om vi har et par nye stykker av syntaks. 556 00:31:23,110 --> 00:31:25,930 Dette er et skjema. Så nettet blir veldig interessant 557 00:31:25,930 --> 00:31:28,770 når nettsteder tar innspill fra brukerne. 558 00:31:28,770 --> 00:31:31,700 I denne klassen, i problemet satt på web-programmering, 559 00:31:31,700 --> 00:31:33,880 Vi kommer ikke til å lage en nettside, per se, 560 00:31:33,880 --> 00:31:37,570 med statisk innhold som viser fotografier som du har tatt, 561 00:31:37,570 --> 00:31:40,010 eller dette er min CV, og ting om meg, 562 00:31:40,010 --> 00:31:42,450 fordi disse tingene er relativt enkelt å sette sammen. 563 00:31:42,450 --> 00:31:44,400 Det er vanskelig å gjøre ting vakker på nettet, 564 00:31:44,400 --> 00:31:46,390 men minst sette opp innholdet er ganske trivielt. 565 00:31:46,390 --> 00:31:49,380 Men ting blir virkelig interessant når noen kan besøke nettstedet ditt 566 00:31:49,380 --> 00:31:52,260 og gi innspill og kan fylle ut skjemaer, 567 00:31:52,260 --> 00:31:55,800 kan krysse av boksene og kan samhandle med ditt nettsted. 568 00:31:55,800 --> 00:31:57,780 Og faktisk, sannsynligvis hver nettside du bryr deg om 569 00:31:57,780 --> 00:32:00,710 i disse dager, i detalj, er noe interaktivt. 570 00:32:00,710 --> 00:32:03,110 Facebook, Google og lignende, som tar brukerundersøkelser 571 00:32:03,110 --> 00:32:05,100 og produsere tilpasset produksjon. 572 00:32:05,100 --> 00:32:07,780 >> Så la oss begynne å gjøre det nå. La oss overgang nå 573 00:32:07,780 --> 00:32:11,150 fra bare å bruke HTML for markering av statisk innhold 574 00:32:11,150 --> 00:32:14,790 som i stedet en levering mekanisme for dynamisk innhold. 575 00:32:14,790 --> 00:32:17,350 Og mot dette målet, la oss gjennomføre vår egen søkemotor. 576 00:32:17,350 --> 00:32:20,820 La oss gjøre det slik. Her er skjemaet tag. 577 00:32:20,820 --> 00:32:24,090 Handlingen attributtet angir at når brukeren fyller ut dette skjemaet 578 00:32:24,090 --> 00:32:28,400 med tastaturet sitt, vil det bli sendt til denne adressen her. 579 00:32:28,400 --> 00:32:31,230 Så jeg er litt juks. Det kommer til å ta oss litt lenger 580 00:32:31,230 --> 00:32:33,780 enn én klasse å implementere hele søkemotor, 581 00:32:33,780 --> 00:32:35,880 så vi får bare gjøre fronten, så å si. 582 00:32:35,880 --> 00:32:38,650 Vi vil gjøre den delen som lar brukeren søke, og vi vil liksom punt til Google 583 00:32:38,650 --> 00:32:40,950 den harde delen av å finne søkeresultatene, 584 00:32:40,950 --> 00:32:43,520 men, spesielt, jeg skal snakke med Googles webserver 585 00:32:43,520 --> 00:32:46,710 ved hjelp av en av to svært populære metoder. 586 00:32:46,710 --> 00:32:50,000 En blir få, en annen at vi vil til slutt se, blir innlegget, 587 00:32:50,000 --> 00:32:52,660 selv om det er andre som er sjeldnere brukt. 588 00:32:52,660 --> 00:32:56,440 Så får bare maner opp tanken på, ønsker jeg å få litt innhold, få noen søkeresultater. 589 00:32:56,440 --> 00:32:58,440 Dette, kan du kanskje gjette hva dette betyr. 590 00:32:58,440 --> 00:33:01,900 Dette er en slags inngang, er det faktisk kommer til å se ut som et tekstfelt, 591 00:33:01,900 --> 00:33:05,200 og navnet på den inngangen, navnet på den variabelen, så å si, 592 00:33:05,200 --> 00:33:08,610 kommer til å bli q for spørring ved konvensjonen. 593 00:33:08,610 --> 00:33:11,700 Og igjen, er den type denne inngangen ikke kommer til å være en avmerkingsboks; 594 00:33:11,700 --> 00:33:13,890 det er ikke til å være en meny, det kommer til å bli et tekstfelt 595 00:33:13,890 --> 00:33:18,060 som vist ved dette attributtet her, og dette tekstboks 596 00:33:18,060 --> 00:33:20,680 som et linjeskift, er enten det eller ikke. 597 00:33:20,680 --> 00:33:24,480 Så vi har et tomt element med skråstrek inni denne koden. 598 00:33:24,480 --> 00:33:28,050 Så jeg kommer til å sette et linjeskift, og du kan kanskje gjette hva dette kommer til å gjøre. 599 00:33:28,050 --> 00:33:30,210 Dette er en annen slags form input. 600 00:33:30,210 --> 00:33:32,350 >> Dette kommer til å bli brukt til å sende inn skjemaet. 601 00:33:32,350 --> 00:33:36,140 Så dette kommer til å bli den store knappen som brukeren kan klikke for å sende inn skjemaet, 602 00:33:36,140 --> 00:33:40,800 og etiketten på denne knappen kommer til å være "CS50 Søk. 603 00:33:40,800 --> 00:33:44,170 Lukk form, tett kropp, nær HTML. 604 00:33:44,170 --> 00:33:46,280 La oss se hva vi har i form av denne nettsiden. 605 00:33:46,280 --> 00:33:48,260 Så la meg gå til nettleseren min, 606 00:33:48,260 --> 00:33:50,360 la meg gå, fortsatt, til lokale verten. 607 00:33:50,360 --> 00:33:54,650 Dette er fortsatt index.html, så hvis jeg ønsker å se denne filen som heter search0, 608 00:33:54,650 --> 00:33:59,710 Jeg kan rett og slett gjøre / search0.html, enter - 609 00:33:59,710 --> 00:34:01,880 og den første av mine feil. 610 00:34:01,880 --> 00:34:04,400 Hva skjer? Jeg åpenbart ikke har tillatelse 611 00:34:04,400 --> 00:34:06,430 å få tilgang til denne filen, eller annen grunn. 612 00:34:06,430 --> 00:34:10,170 Men det er fordi, i motsetning til arbeidet vi har gjort så langt i C, 613 00:34:10,170 --> 00:34:14,340 der programmene du skriver antas å være runable av deg, 614 00:34:14,340 --> 00:34:17,590 kjørbar av deg, det er egentlig ikke tilfelle på nettet, 615 00:34:17,590 --> 00:34:21,010 der noen ganger kan det være lurt å opprette filer på en server, 616 00:34:21,010 --> 00:34:23,310 men du ikke vil at hele verden skal kunne se dem. 617 00:34:23,310 --> 00:34:25,469 Snarere vil du verden for å se noen filer 618 00:34:25,469 --> 00:34:27,730 men ikke andre, bare for personvern skyld. 619 00:34:27,730 --> 00:34:30,730 Så det er mer av en opt-in basis når du gjør ting på nettet. 620 00:34:30,730 --> 00:34:32,810 Og så la meg faktisk skriver ls her, 621 00:34:32,810 --> 00:34:37,440 og du ser filene jeg har, men husker at hvis jeg gjør ls-l for lenge, 622 00:34:37,440 --> 00:34:41,520 Jeg får en lenger liste som gir meg noen flere detaljer om disse filene 623 00:34:41,520 --> 00:34:45,139 som er nå, egentlig, for første gang er relevant for oss. 624 00:34:45,139 --> 00:34:47,840 Legg merke til at helt til høyre er navnene på filene mine, 625 00:34:47,840 --> 00:34:50,690 og deretter tidspunktet de sist ble endret eller kopieres. 626 00:34:50,690 --> 00:34:54,370 Dette nummeret her er hva? Husker du? 627 00:34:54,370 --> 00:34:56,400 Størrelsen i byte, hvor stor filen er. 628 00:34:56,400 --> 00:34:59,520 >> Så jeg synes å ha noen form for logo her som er større enn alle de andre filene. 629 00:34:59,520 --> 00:35:03,610 Dette er hvem jeg er, dette er hva jeg er og hva gruppen jeg er i. 630 00:35:03,610 --> 00:35:07,430 Men så, over her til venstre er litt av kryptisk sekvens, 631 00:35:07,430 --> 00:35:10,040 og vi snakket, tror jeg, kort om dette i det siste, 632 00:35:10,040 --> 00:35:12,050 men dette har å gjøre med tillatelser. 633 00:35:12,050 --> 00:35:14,020 Og selv om det er litt disig, 634 00:35:14,020 --> 00:35:17,270 RW betyr sannsynligvis lese og skrive. 635 00:35:17,270 --> 00:35:22,560 Så det viser seg at disse streker betegne ulike sett av rettigheter for forskjellige mennesker. 636 00:35:22,560 --> 00:35:24,730 Og mønsteret er, i hovedsak, som følger. 637 00:35:24,730 --> 00:35:27,650 Når du ser en sekvens av streker her, de ser ut som følger. 638 00:35:27,650 --> 00:35:30,450 Det er en strek, så er det tre flere streker, 639 00:35:30,450 --> 00:35:33,390 så er det en annen tre, så er det et annet tre. 640 00:35:33,390 --> 00:35:36,800 Den første er enten en dash eller det annonse for katalogen. 641 00:35:36,800 --> 00:35:40,220 Slik at man er ganske enkelt. Hvis det er en mappe, sier det d, ellers er det en bindestrek. 642 00:35:40,220 --> 00:35:44,080 Det er et par andre tilfeller, men for nå vil vi bare bryr seg om filer og kataloger. 643 00:35:44,080 --> 00:35:48,090 Disse neste tre streker - og jeg har kunstig satt inn mellomrom. 644 00:35:48,090 --> 00:35:50,490 De var åpenbart ikke det når vi så dem for et øyeblikk siden. 645 00:35:50,490 --> 00:35:52,900 Dette er filen eierens tillatelser, 646 00:35:52,900 --> 00:35:55,840 og husker fra en annen siden at det ble lest og skrive. 647 00:35:55,840 --> 00:35:58,560 Det var fordi jeg, som den personen som opprettet denne filen et øyeblikk siden, 648 00:35:58,560 --> 00:36:01,250 Jeg, bare som standard, på en Linux-datamaskin, 649 00:36:01,250 --> 00:36:03,910 har evnen til å fortsette å lese og skrive den filen. 650 00:36:03,910 --> 00:36:07,170 >> Slik at operativsystemet gir bare meg RW automatisk. 651 00:36:07,170 --> 00:36:10,840 Den midterste seg forholde seg til min gruppe, nemlig studentene, 652 00:36:10,840 --> 00:36:14,590 som er slags meningsløst på apparatet fordi jeg er den eneste personen som bruker apparatet. 653 00:36:14,590 --> 00:36:16,620 Så la meg bare bølge hendene mine på det for nå. 654 00:36:16,620 --> 00:36:19,190 Men de siste som er viktigst for Internett. 655 00:36:19,190 --> 00:36:21,580 Dette er alle andre i verden, og det faktum 656 00:36:21,580 --> 00:36:24,600 at det er --- betyr at ingen andre i verden 657 00:36:24,600 --> 00:36:26,680 har noen tillatelser til denne filen. 658 00:36:26,680 --> 00:36:29,180 Klart et problem, så jeg trenger å fikse dette 659 00:36:29,180 --> 00:36:33,830 ved en eller annen måte gi verden hva? Lese og skrive? 660 00:36:33,830 --> 00:36:35,850 Det er nok dum, ikke sant? Jeg vil ikke at noen på nettet 661 00:36:35,850 --> 00:36:38,530 å gå for å besøke min side og liksom endre denne filen, 662 00:36:38,530 --> 00:36:40,800 selv om de egentlig ikke kunne gjort med en HTML-fil, 663 00:36:40,800 --> 00:36:44,110 men bare i prinsippet, sannsynligvis bare vil at de skal være i stand til å lese den. 664 00:36:44,110 --> 00:36:47,910 Hva betyr det å lese den? Det betyr ikke at de kommer til å bry seg om den faktiske HTML, 665 00:36:47,910 --> 00:36:51,820 men leseren må være i stand til å analysere det kodespråk, 666 00:36:51,820 --> 00:36:53,720 topp til bunn, fra venstre mot høyre. 667 00:36:53,720 --> 00:36:57,990 Så noen på nettet må være i stand til å lese den, så jeg minimalt behov for å gi den r. 668 00:36:57,990 --> 00:37:00,240 Jeg kan gjøre dette i et par forskjellige måter, men kanskje 669 00:37:00,240 --> 00:37:03,080 det enkleste er å kjøre denne kommandoen her. 670 00:37:03,080 --> 00:37:10,860 Chmod, endre modus, deretter en + r så alt, alle i verden + lese, 671 00:37:10,860 --> 00:37:13,830 og så navnet på filen, search0.html. 672 00:37:13,830 --> 00:37:18,310 >> Nå hvis jeg gjør ls-l igjen, merker at filen er endret, 673 00:37:18,310 --> 00:37:21,440 og ja, jeg har slått på r for alle. 674 00:37:21,440 --> 00:37:23,350 Jeg har også slått den på for min gruppe, men det er fint, 675 00:37:23,350 --> 00:37:27,150 fordi hvis jeg slått på for alle, er min gruppe en undergruppe av det. 676 00:37:27,150 --> 00:37:31,480 Så det er greit også. Dette betyr bare at datamaskinen har nå gjort det lesbart. 677 00:37:31,480 --> 00:37:34,430 Nå la meg gå tilbake til nettleseren min, klikker laste. 678 00:37:34,430 --> 00:37:36,330 Ah-ha. Vi har nå CS50 Søk. 679 00:37:36,330 --> 00:37:39,830 Jeg har zoomet inn litt kunstig - ganske heslig søkemotor. 680 00:37:39,830 --> 00:37:41,930 Men la oss se om det faktisk fungerer. 681 00:37:41,930 --> 00:37:45,880 Først, la meg gjøre en rask sunn fornuft sjekk, la meg styre klikk og se siden kilden. 682 00:37:45,880 --> 00:37:50,780 Legg merke til at i Chrome vi nå ser det samme HTML som jeg selv opprettet. 683 00:37:50,780 --> 00:37:55,420 Ikke bli forvirret her, skjønt. Jeg kan ikke begynne å endre koden her, 684 00:37:55,420 --> 00:37:59,420 fordi nettleseren har en skrivebeskyttet visning av denne koden. 685 00:37:59,420 --> 00:38:06,060 Leseren har nettopp bedt lokal vert for en fil som heter search0.html. 686 00:38:06,060 --> 00:38:09,490 Det er nå en ren tilfeldighet at apparatet 687 00:38:09,490 --> 00:38:13,480 skjer for å være på samme datamaskin som min nettleser. 688 00:38:13,480 --> 00:38:20,470 Jeg kunne bare ha, ekvivalent, har skrevet i www.facebook.com/search0.html, 689 00:38:20,470 --> 00:38:23,830 og hvis Facebook hadde en fil som heter det, ville jeg da bli å se deres HTML. 690 00:38:23,830 --> 00:38:27,360 Og, selvfølgelig, jeg kan ikke endre filen som kommer tilbake fra Facebook, heller. 691 00:38:27,360 --> 00:38:29,360 Så nå er vi liksom viske ut linjene. 692 00:38:29,360 --> 00:38:32,130 Apparatet er både en server, serverer nettsider, 693 00:38:32,130 --> 00:38:34,870 men det er også en klient i den forstand at jeg bruker en nettleser 694 00:38:34,870 --> 00:38:37,630 å faktisk snakke med denne serveren. 695 00:38:37,630 --> 00:38:39,610 Så la oss se om Google søkemotor fungerer. 696 00:38:39,610 --> 00:38:44,930 La meg gå videre og søke etter rask brune reven, skriver. 697 00:38:44,930 --> 00:38:47,540 Og voila, jeg har nå min egen søkemotor. 698 00:38:47,540 --> 00:38:51,460 >> Men hvordan fungerer dette? 699 00:38:51,460 --> 00:38:55,380 Litt av en strekk, men - og nå kan du ikke se, nettopp, den delen som er av interesse. 700 00:38:55,380 --> 00:38:57,370 Legg merke til hva som skjer. 701 00:38:57,370 --> 00:39:00,430 Legg merke til nettadressen. Det viser seg at denne metoden, 702 00:39:00,430 --> 00:39:02,780 kalt får, er super-enkel. 703 00:39:02,780 --> 00:39:10,270 Når du angir i en form som du ønsker å 'komme' resultater fra noen server, 704 00:39:10,270 --> 00:39:13,200 hva det kommer til å gjøre er å ta det du skrev inn i skjemaet 705 00:39:13,200 --> 00:39:15,290 og sette den i nettadressen. 706 00:39:15,290 --> 00:39:18,580 Det kommer til å standardisere hvordan det blir satt inn i URL som følger. 707 00:39:18,580 --> 00:39:22,290 Legg merke til at dette er nettadressen som var verdien av min handling attributt. 708 00:39:22,290 --> 00:39:24,730 Det er der jeg ønsket skjemaet for å ende opp. 709 00:39:24,730 --> 00:39:26,950 Men så oppdager dette spørsmålstegn. 710 00:39:26,950 --> 00:39:30,230 Dette er en konvensjon på nettet der for å gi brukeren innspill 711 00:39:30,230 --> 00:39:35,320 til et nettsted, føyer du til URL et spørsmålstegn, 712 00:39:35,320 --> 00:39:38,330 og da har du en hel haug med nøkkelverdipar. 713 00:39:38,330 --> 00:39:42,380 Navnet på en tast, ellers kjent som en parameter i nettet, 714 00:39:42,380 --> 00:39:46,380 da har du et likhetstegn, da har du verdien av denne parameteren. 715 00:39:46,380 --> 00:39:49,810 Så det er egentlig en variabel navn og en variabel verdi, 716 00:39:49,810 --> 00:39:54,250 men de variablene navn og verdier kom fra HTML-skjemaet. 717 00:39:54,250 --> 00:39:56,250 Hvorfor er addisjonstegn det, tror du? 718 00:39:56,250 --> 00:39:59,340 Fordi jeg ikke skriver + i mellom mine ord. 719 00:39:59,340 --> 00:40:01,430 [Student, uforståelig] 720 00:40:01,430 --> 00:40:05,080 >> Ja, det er bare for avstand. Odds er, når du har sett en URL, 721 00:40:05,080 --> 00:40:07,320 Det er aldri noen mellomrom i den, hvis bare fordi 722 00:40:07,320 --> 00:40:09,440 hvis det var, kunne du ikke virkelig kopiere og lime den 723 00:40:09,440 --> 00:40:12,700 inn i en IM eller inn i en e-post fordi det ville bryte. 724 00:40:12,700 --> 00:40:15,420 Du vil hele greia for å være en sammenhengende rekke med tegn. 725 00:40:15,450 --> 00:40:18,450 >> Så nettleseren er smart nok til å innse, uh-uh. 726 00:40:18,450 --> 00:40:22,610 Ikke bare sette en plass der. La meg kode plass i noen standard måte. 727 00:40:22,610 --> 00:40:25,170 En av de konvensjoner for å gjøre det er å ha nettleseren 728 00:40:25,170 --> 00:40:29,350 automatisk sette en + der du ellers ville ha en plass. 729 00:40:29,350 --> 00:40:32,140 Så nå har varsel Google vært litt brukervennlig. 730 00:40:32,140 --> 00:40:34,380 Jeg absolutt ikke har opprettet denne nettsiden, 731 00:40:34,380 --> 00:40:37,200 men de har utfylt sin egen tekstfelt 732 00:40:37,200 --> 00:40:39,490 med hva, nettopp, jeg skrev i. 733 00:40:39,490 --> 00:40:43,090 Anta at jeg skal søke etter noe annet, som en lat hund. 734 00:40:43,090 --> 00:40:45,340 Jeg kan bare skrive dette her, re-søk. 735 00:40:45,340 --> 00:40:47,730 Legg merke til at nettadressen endrer seg her, 736 00:40:47,730 --> 00:40:51,390 men merker da at jeg faktisk kan søke etter hva jeg vil 737 00:40:51,390 --> 00:40:53,610 bare ved å forstå hvordan nettadresser arbeid. 738 00:40:53,610 --> 00:40:56,840 Jeg kunne gjøre lat katt, enter, 739 00:40:56,840 --> 00:41:01,370 og merker nå har jeg fått en veldig lat - skal vi? Jeg føler at vi burde. 740 00:41:01,370 --> 00:41:09,900 Jeg får en veldig lat katt. 741 00:41:09,900 --> 00:41:11,930 OK. Dette er en av de dummeste tingene vi har gjort. 742 00:41:11,930 --> 00:41:17,160 Men det er en lat katt. 743 00:41:17,160 --> 00:41:19,730 Uansett, hva er nøkkelen takeaway her? 744 00:41:19,730 --> 00:41:22,830 Nå er vi liksom spille i verden av HTTP. 745 00:41:22,830 --> 00:41:26,050 HTML er nettopp dette kodespråk, åpne tag, sluttkode, 746 00:41:26,050 --> 00:41:29,490 som forteller en nettleser hvordan å gjengi innholdet på en nettside. 747 00:41:29,490 --> 00:41:32,850 Men når du begynner å overføre data over Internett 748 00:41:32,850 --> 00:41:36,290 mellom nettleser og server, det er der denne protokollen 749 00:41:36,290 --> 00:41:39,370 kjent som HyperText Transfer Protocol overtar. 750 00:41:39,370 --> 00:41:42,630 Dette er den typen menneske konvensjonen, når Sam og jeg håndhilste på mandag, 751 00:41:42,630 --> 00:41:48,300 starter en tilkobling, og deretter avslutning av en forbindelse, samme ideen her. 752 00:41:48,300 --> 00:41:53,100 Hvordan er Googles resultater kommer tilbake til meg? 753 00:41:53,100 --> 00:41:55,290 Hvordan blir min skjemainnsending kommer til Google? 754 00:41:55,290 --> 00:41:58,160 Vel, husker fra den andre dagen at det som egentlig skjer 755 00:41:58,160 --> 00:42:02,150 under panseret når du ber om en nettside er, 756 00:42:02,150 --> 00:42:04,860 nettleseren sender en noe-kryptisk melding som 757 00:42:04,860 --> 00:42:09,510 GET / HTTP/1.1 for standard hjemmeside. 758 00:42:09,510 --> 00:42:13,000 >> Eller, i dette tilfellet, fordi spesielt jeg ba tidligere 759 00:42:13,000 --> 00:42:17,340 search0.html, dette vil da være noe-kryptiske meldingen 760 00:42:17,340 --> 00:42:20,040 at nettleseren min sender til apparatet. 761 00:42:20,040 --> 00:42:23,090 Eller, i dette tilfellet av Google, er hva som faktisk sendes 762 00:42:23,090 --> 00:42:33,740 er en forespørsel til / søk, og deretter? q = lat katt, med et pluss der. 763 00:42:33,740 --> 00:42:36,790 Så denne meldingen, at jeg, den menneskelige, er aldri å skrive, 764 00:42:36,790 --> 00:42:40,620 men blir sendt av nettleseren min, dette er hvordan HTTP skjer. 765 00:42:40,620 --> 00:42:43,240 Dette tilsvarer våre har rystet hender. 766 00:42:43,240 --> 00:42:46,320 Dette er forespørselen, og serveren er i ferd med å sende et svar. 767 00:42:46,320 --> 00:42:48,560 Så la oss ta en titt på denne under panseret. 768 00:42:48,560 --> 00:42:55,320 Som før, kan vi åpne opp dette spesielle feltet i en nettleser. 769 00:42:55,320 --> 00:42:58,720 Se siden, inspisere elementer. 770 00:42:58,720 --> 00:43:01,550 Så under inspisere element, merker at det har skjedd i Chrome, 771 00:43:01,550 --> 00:43:04,160 og IE og Firefox har lignende mekanismer, 772 00:43:04,160 --> 00:43:07,370 vi har disse utviklerverktøy tilgjengelig for oss. 773 00:43:07,370 --> 00:43:09,630 Normale mennesker ikke bruker disse fanene. 774 00:43:09,630 --> 00:43:11,940 Men vi nå, er interessert i hva som skjer 775 00:43:11,940 --> 00:43:13,890 under panseret på nettverksnivå. 776 00:43:13,890 --> 00:43:16,130 Så hvis jeg drar opp nettverket nivå her, 777 00:43:16,130 --> 00:43:18,510 la meg gå videre og utvide dette vinduet, 778 00:43:18,510 --> 00:43:21,840 åpne opp denne oppføringen her, og se på overskriftene. 779 00:43:21,840 --> 00:43:26,010 Så hva skjer når jeg ber om en fil fra en webserver 780 00:43:26,010 --> 00:43:29,410 er nettleseren min sender en hel haug med ting. 781 00:43:29,410 --> 00:43:32,390 Og la meg vise kilde. Så under forespørselstopptekster, 782 00:43:32,390 --> 00:43:35,250 og dette er bare Chrome viser meg noen diagnostiske utgang, 783 00:43:35,250 --> 00:43:37,340 liksom som en debugger av noe slag, 784 00:43:37,340 --> 00:43:40,500 merker at det jeg har uthevet her er nettopp hva 785 00:43:40,500 --> 00:43:47,060 Chrome sender til serveren for å be om en fil som heter search0.html. 786 00:43:47,060 --> 00:43:50,160 Det er å fortelle serveren hva den mener det heter, 787 00:43:50,160 --> 00:43:52,210 takket være denne verten kolon feltet, så er det noen 788 00:43:52,210 --> 00:43:56,950 ganske esoteriske ting her, som noe å gjøre med datoer og klokkeslett, 789 00:43:56,950 --> 00:43:59,720 noe å gjøre med de språkene at nettleseren forstår, 790 00:43:59,720 --> 00:44:02,850 men de virkelig viktige linjer er disse to første her. 791 00:44:02,850 --> 00:44:05,490 >> Hva svarer serveren med? Vel, hvis vi bla nedover her 792 00:44:05,490 --> 00:44:08,510 og vise kilden til denne tingen, legge merke til at serveren 793 00:44:08,510 --> 00:44:13,700 har reagert med en noe kryptisk melding også, 304 ikke endret. 794 00:44:13,700 --> 00:44:16,030 Det er litt rart, la meg faktisk prøve å fikse dette. 795 00:44:16,030 --> 00:44:18,670 La meg holde nede shift og klikk på nytt opp her 796 00:44:18,670 --> 00:44:22,460 å tvinge nettleseren til å faktisk gjøre denne forespørselen for første gang. 797 00:44:22,460 --> 00:44:25,700 Så la meg zoome inn, og vi vil se nå at serveren respons, 798 00:44:25,700 --> 00:44:28,950 fordi jeg holdt shift, er 200 OK. 799 00:44:28,950 --> 00:44:31,170 Så du har sannsynligvis aldri sett nummer 200 800 00:44:31,170 --> 00:44:33,300 I forbindelse med nettet, men hva tallene 801 00:44:33,300 --> 00:44:36,760 har du noen ganger sett uventet fra en server? 802 00:44:36,760 --> 00:44:42,010 404, finner ikke filen, 403, forbidden, 500, server error. 803 00:44:42,010 --> 00:44:44,890 Så det er disse tallkoder at verden bruker i nettet 804 00:44:44,890 --> 00:44:47,870 å betegne feil, akkurat som C-funksjoner 805 00:44:47,870 --> 00:44:51,030 kan returnere feil og viktigste kan returnere exit koder. 806 00:44:51,030 --> 00:44:54,160 200, skjønt, du sjelden se fordi det betyr at alt er bra. 807 00:44:54,160 --> 00:44:59,000 Og 304 har du sannsynligvis aldri se fordi det er det som betyr? 808 00:44:59,000 --> 00:45:03,330 At ingenting har - la oss se om vi kan simulere dette igjen - 809 00:45:03,330 --> 00:45:07,170 Å, nå er det ikke samarbeider. 304 sa ikke endret, 810 00:45:07,170 --> 00:45:09,170 så hvorfor ble serveren selv svarer? 811 00:45:09,170 --> 00:45:12,550 Vel, for effektivitet, en web-server automatisk for deg, 812 00:45:12,550 --> 00:45:16,570 hvis filen ikke er endret, vil det ikke videresende hele HTML-fil. 813 00:45:16,570 --> 00:45:19,150 Det vil bare fortelle leseren at det ikke har endret seg. 814 00:45:19,150 --> 00:45:21,220 Bare bruke kopien du allerede har. 815 00:45:21,220 --> 00:45:22,650 Så det er denne oppfatningen av caching på nettet 816 00:45:22,650 --> 00:45:25,840 for ytelse, slik at du ikke kaster bort tid og avfall båndbredde 817 00:45:25,840 --> 00:45:29,160 laste ned filer igjen og igjen unødvendig. 818 00:45:29,160 --> 00:45:31,460 >> Men denne nettsiden nå, var super-enkle, 819 00:45:31,460 --> 00:45:34,980 og det bare viste meg HTML som kom tilbake. 820 00:45:34,980 --> 00:45:40,940 La oss faktisk bruker nettet kategorien nå for å gjøre et Google-søk som raskt brune reven. 821 00:45:40,940 --> 00:45:43,010 La meg deretter CS50 søk, 822 00:45:43,010 --> 00:45:46,950 og nå, merker i bunnen her en hel haug med ting kom tilbake 823 00:45:46,950 --> 00:45:49,900 fordi når jeg besøker en ekte nettside som Google.com, 824 00:45:49,900 --> 00:45:53,520 de har bilder, de har tekst, har de et språk som kalles JavaScript der. 825 00:45:53,520 --> 00:45:55,940 Så hver rad i denne tabellen her nede 826 00:45:55,940 --> 00:46:01,490 representerer noe som Google spytter ut som svar på min enkelt forespørsel. 827 00:46:01,490 --> 00:46:04,160 Den jeg bryr meg om, selv om dette er første. 828 00:46:04,160 --> 00:46:08,420 Og hvis jeg går til søket, anmodning, klikker vis kilde her, 829 00:46:08,420 --> 00:46:11,300 merke til at, ja, det kryptiske melding om at nettleseren sendte 830 00:46:11,300 --> 00:46:15,010 til Google var disse to linjene her, 831 00:46:15,010 --> 00:46:18,420 etterfulgt av noen uforståelige informasjon her nede som vi vil ignorere for nå. 832 00:46:18,420 --> 00:46:20,890 Men legg merke til, også, hva Chrome er ganske hendig med, 833 00:46:20,890 --> 00:46:24,540 det er også viser meg søkestrengen som ble sendt i. 834 00:46:24,540 --> 00:46:27,410 Så i stedet for å vise meg dette, som bokstavelig talt ble sendt, 835 00:46:27,410 --> 00:46:30,800 hvis jeg viser det dekodes, Chrome, bare for debugging formål, 836 00:46:30,800 --> 00:46:34,270 for utviklere som oss, det er bare å vise meg et menneske-vennlig versjon av - 837 00:46:34,270 --> 00:46:36,390 det er ikke hvordan du stave rev, tilsynelatende. 838 00:46:36,390 --> 00:46:40,520 Jeg bare merke dette nå - men det viser deg hva jeg, tilsynelatende, skrevet. 839 00:46:40,520 --> 00:46:45,340 Samtidig er svaret som kom tilbake fra serveren på nytt 200 OK. 840 00:46:45,340 --> 00:46:47,930 Men inngår i dette svaret, selvfølgelig, 841 00:46:47,930 --> 00:46:51,920 hvis vi faktisk viser sidens HTML - 842 00:46:51,920 --> 00:46:55,440 Beklager, dette er en liten hurtigtast gått galt i dag. 843 00:46:55,440 --> 00:46:59,020 >> Jeg skal ta dette senere. Så hvis vi faktisk viser sidens kildekode, 844 00:46:59,020 --> 00:47:02,990 som jeg kan gjøre her nede ved å klikke svar, 845 00:47:02,990 --> 00:47:10,080 Dette er hva som faktisk spytte tilbake, i tillegg til at kryptisk 200 OK meldingen fra serveren. 846 00:47:10,080 --> 00:47:12,520 Litt kryptisk, men hvor alt dette kommer fra? 847 00:47:12,520 --> 00:47:15,570 Vel, la oss gjøre en annen ting her. En annen noe-kryptisk kommando, 848 00:47:15,570 --> 00:47:20,530 men dette er slags ryddig i at det viser oss nøyaktig hva som skjer under panseret. 849 00:47:20,530 --> 00:47:22,530 Så jeg er tilbake på Mac min her, har jeg koblet 850 00:47:22,530 --> 00:47:25,980 via et program som heter SSH, Secure Shell, til en annen server 851 00:47:25,980 --> 00:47:28,940 fordi de fleste av Harvard datamaskiner blokkere kommandoen vi er i ferd med å kjøre 852 00:47:28,940 --> 00:47:31,640 fordi det er denne kommandoen på noen servere kalt traceroute 853 00:47:31,640 --> 00:47:34,810 som lar deg spore ruten mellom punkt A og B, 854 00:47:34,810 --> 00:47:37,020 og så langt vi har tatt helt for gitt 855 00:47:37,020 --> 00:47:40,170 at jeg kan skrive inn Google.com og liksom få data tilbake 856 00:47:40,170 --> 00:47:43,530 fra halvveis over hele landet eller halvveis over hele verden. 857 00:47:43,530 --> 00:47:45,810 Med traceroute kan vi faktisk dykke i litt dypere 858 00:47:45,810 --> 00:47:49,370 om hvordan Internett fungerer, og se hva som skjer under panseret. 859 00:47:49,370 --> 00:47:54,440 Så la oss gå videre og vilkårlig spore en rute til, si, Stanford.edu, 860 00:47:54,440 --> 00:47:57,150 som ligger over hele landet, og trykk enter. 861 00:47:57,150 --> 00:47:59,380 Denne kommandoen kan være super-rask eller super-slow, 862 00:47:59,380 --> 00:48:02,010 men det vi ser nå, linje for linje, 863 00:48:02,010 --> 00:48:08,060 er hver og en av de trinn eller humle mellom oss og Palo Alto, eller Stanford, 864 00:48:08,060 --> 00:48:11,010 der de har sine web server. 865 00:48:11,010 --> 00:48:16,600 Så hva gjør hver av disse linjene representerer mer konkret, skjønt? 866 00:48:16,600 --> 00:48:19,100 Et stykke av sjargong fra Internett? [Student, uforståelig] 867 00:48:19,100 --> 00:48:21,570 >> Hva er det? [Student, uforståelig] 868 00:48:21,570 --> 00:48:25,390 >> Å, så det er tider, men hva betyr hver rad - hva mener jeg med hop? 869 00:48:25,390 --> 00:48:29,140 >> Vel, det er disse tingene på internett kalt rutere. 870 00:48:29,140 --> 00:48:33,020 Og rutere, som navnet antyder, ruteinformasjon fra punkt a til punkt b.. 871 00:48:33,020 --> 00:48:36,920 Men det er flere punkter utover a og b. 872 00:48:36,920 --> 00:48:40,010 Det er c og d og e og f mellom rad 1, 873 00:48:40,010 --> 00:48:43,480 som skjer for å være min datamaskinens IP-adresse, 874 00:48:43,480 --> 00:48:46,890 eller min numerisk adresse, som unikt identifiserer datamaskinen min, 875 00:48:46,890 --> 00:48:50,300 og trinn 15, som faktisk er den sjette web server, 876 00:48:50,300 --> 00:48:54,640 tilsynelatende, som jeg inferring fra dette, eller versjon 6 av sin webserver ved Stanford. 877 00:48:54,640 --> 00:48:56,680 Men hva er slags ryddig er, kan vi se banen 878 00:48:56,680 --> 00:49:00,480 at min 0 og 1-ere tar fra datamaskinen til Stanford. 879 00:49:00,480 --> 00:49:02,500 Så trinn 1 er min egen datamaskin adresse. 880 00:49:02,500 --> 00:49:05,760 Hver datamaskin på Internett har en unik identifikator som ser slik ut. 881 00:49:05,760 --> 00:49:08,150 Number.number.number.number. 882 00:49:08,150 --> 00:49:10,370 Et sted på denne campus, sannsynligvis i science center, 883 00:49:10,370 --> 00:49:16,780 er en ruter som kalles Core-Gateway 2-te83, uansett hva det betyr, 884 00:49:16,780 --> 00:49:20,590 så dette er en av Harvards store fancy rutere som ruter mye av trafikken på dem. 885 00:49:20,590 --> 00:49:24,640 Her er en annen av Harvards rutere, er dette en Border Gateway, 886 00:49:24,640 --> 00:49:28,310 grensen betyr det sannsynligvis i utkanten av campus sted. 887 00:49:28,480 --> 00:49:32,790 Så er det en nox, rad 4, som er Nord-Crossroads, 888 00:49:32,790 --> 00:49:35,070 som er en stor leverandør, Internett-leverandøren, 889 00:49:35,070 --> 00:49:37,740 at steder som Harvard koble opp til. 890 00:49:37,740 --> 00:49:40,760 Men så ting blir litt interessant i linje 6. 891 00:49:40,760 --> 00:49:45,960 Hvor er mine biter plutselig? Kansas. 892 00:49:45,960 --> 00:49:49,300 Verden har en vane med å bruke flyplassen koder i mange av disse tingene, 893 00:49:49,300 --> 00:49:52,900 eller i det minste forkortelser for stater eller byer, 894 00:49:52,900 --> 00:49:56,490 så det ser ut som, på bare 60 ms, 895 00:49:56,490 --> 00:49:59,420 en informasjonspakke, er 0 og 1 fra min laptop 896 00:49:59,420 --> 00:50:03,210 fikk hele veien til Kansas, og igjen, i 60 ms. 897 00:50:03,210 --> 00:50:08,180 >> Dessuten, etter Kansas, tok de en tur gjennom Houston, sannsynligvis, 898 00:50:08,180 --> 00:50:10,140 som foreslått av navnet på denne serveren. 899 00:50:10,140 --> 00:50:13,310 Så akkurat som en server på Internett må ha en numerisk adresse, 900 00:50:13,310 --> 00:50:18,360 det kan også eventuelt ha en litt mer menneskevennlige adresse som mennesker kom opp med. 901 00:50:18,360 --> 00:50:20,510 Nå, i trinn 8, vet vi ikke hva dette er. 902 00:50:20,510 --> 00:50:22,550 Noen ganger rutere bare slags ignorere deg, 903 00:50:22,550 --> 00:50:25,010 og de bare ikke svare på spørsmål, så det er fint. 904 00:50:25,010 --> 00:50:29,290 Den ene etter trinn 8 er tilsynelatende der? L.A. 905 00:50:29,290 --> 00:50:35,290 Merke til i bare 78 ms, hva tar oss mennesker som 6 + timer å gjøre fysisk, 906 00:50:35,290 --> 00:50:40,110 tar pakker av informasjon på Internett 78 ms å reise så langt. 907 00:50:40,110 --> 00:50:45,890 Trinn 10 er i LA også, og steg 11 ser ut til å ha gått nordover, opp i nærheten av Stanford. 908 00:50:45,890 --> 00:50:48,750 Dette er deres grense ruter eller grensen router. 909 00:50:48,750 --> 00:50:51,240 Et par trinn ved Stanford som ignorerer oss, 910 00:50:51,240 --> 00:50:55,610 og til slutt, når vi webserveren i bare 87 ms. 911 00:50:55,610 --> 00:50:57,760 Nå, alle disse tallene, som en side, 912 00:50:57,760 --> 00:51:00,640 bare fortelle deg hvor lang tid det tar for data å komme fra meg 913 00:51:00,640 --> 00:51:03,530 til hver av disse ruterne, og det er ikke akkumulere. 914 00:51:03,530 --> 00:51:06,960 Hva dette programmet gjør er, sender den første meldingen, i hovedsak, til den første ruteren. 915 00:51:06,960 --> 00:51:09,490 Deretter en til den andre ruter, deretter en til den tredje ruteren, 916 00:51:09,490 --> 00:51:12,610 måle hver gang. Så i teorien, vil disse tider være økende 917 00:51:12,610 --> 00:51:14,860 eller i det minste temmelig nær til hverandre, 918 00:51:14,860 --> 00:51:18,090 og, faktisk, de som er her på campus er super-liten. 919 00:51:18,090 --> 00:51:20,820 Så snart du begynner å gå over hele landet, tar det data 920 00:51:20,820 --> 00:51:24,830 litt lenger å reise, nærmere 100 ms, gi eller ta. 921 00:51:24,830 --> 00:51:28,330 Men la oss gå den andre retningen nå. Hva med Cambridge University i Storbritannia? 922 00:51:28,330 --> 00:51:32,540 La meg i stedet kjøre traceroute av www.cam for Cambridge, 923 00:51:32,540 --> 00:51:36,710 . Ac for akademisk,. Uk, og trykk enter her. 924 00:51:36,710 --> 00:51:38,830 Det var ganske forbanna fort. 925 00:51:38,830 --> 00:51:43,300 Mine data bokstavelig talt gikk til Cambridge, England, ved at split sekund av gangen. 926 00:51:43,300 --> 00:51:45,340 >> Så la oss se på banen som det tok. 927 00:51:45,340 --> 00:51:47,520 Harvard, Harvard, Harvard, Northern Crossroads, 928 00:51:47,520 --> 00:51:52,690 som er en ISP, og så er dette Nord Crossroads, og deretter bam. 929 00:51:52,690 --> 00:51:58,320 Hva er i mellom trinn 6 og 7, router 6 og 7? 930 00:51:58,320 --> 00:52:02,040 Atlanterhavet. Og vi inferring dette fra det faktum at 931 00:52:02,040 --> 00:52:06,530 vi går fra 20 her ms til 80 ms her. 932 00:52:06,530 --> 00:52:10,050 Så noe tok 60 ms, gi eller ta, for å komme over. 933 00:52:10,050 --> 00:52:12,910 Og det var sannsynligvis en stor kropp av vann. 934 00:52:12,910 --> 00:52:15,250 Hva foregår etter det? Vel, her er vi i London, 935 00:52:15,250 --> 00:52:18,860 bare 88 ms senere. More London, mer London, 936 00:52:18,860 --> 00:52:21,730 ikke sikker på hvor dette er, men vi vil anta at det er utenfor London, 937 00:52:21,730 --> 00:52:26,390 Cambridge her, og til slutt vi - bokstavelig talt, University of Cambridge 938 00:52:26,390 --> 00:52:29,500 . Something.net, og så, endelig, i linje 16, 939 00:52:29,500 --> 00:52:31,720 deres web server er tilsynelatende kalt Scorpius 940 00:52:31,720 --> 00:52:35,500 under panseret, selv om vi vet det som www. 941 00:52:35,500 --> 00:52:38,790 Kind of mind-blowing, tror jeg. Første gang jeg noensinne gjorde dette, det er helt blåste hodet mitt. 942 00:52:38,790 --> 00:52:41,670 Dessverre, blokkerer Harvard denne type trafikk, typisk, i nettverket. 943 00:52:41,670 --> 00:52:44,340 Så du kan ikke gjøre det super enkelt. 944 00:52:44,340 --> 00:52:48,500 Skjønner, skjønt, er dette her mulig. 945 00:52:48,500 --> 00:52:53,630 OK. La oss ta vår 5-minutters pause her. Vi vil komme tilbake og dykke dypere. 946 00:52:53,630 --> 00:53:00,850 Så vi er tilbake, og vi har slags ambled om i et par forskjellige retninger her. 947 00:53:00,850 --> 00:53:03,700 Så la oss oppsummere hva som har skjedd her. 948 00:53:03,700 --> 00:53:07,990 Vi startet samtalen snakker om dette språket kalles HTML. 949 00:53:07,990 --> 00:53:10,680 Igjen, ikke et programmeringsspråk. Det er bare et kodespråk 950 00:53:10,680 --> 00:53:15,490 som i stor grad om estetikk og strukturering av innhold i form av en webside. 951 00:53:15,490 --> 00:53:19,220 Men HTML derfor trenger noen slags mekanisme 952 00:53:19,220 --> 00:53:22,870 for å reise mellom nettleser og server. 953 00:53:22,870 --> 00:53:28,360 HTML derfor slags ritt på toppen av dette andre språket, 954 00:53:28,360 --> 00:53:31,280 eller mer korrekt, en protokoll, kjent som HTTP. 955 00:53:31,280 --> 00:53:33,730 >> Og HTTP, som vi har sett det så langt, 956 00:53:33,730 --> 00:53:37,140 er slags analogt til denne menneskelige konvensjonen for å håndhilse. 957 00:53:37,140 --> 00:53:39,940 Når en leser ønsker å be om en side fra en server, 958 00:53:39,940 --> 00:53:43,450 den sender som "få" forespørsel fra nettleseren til serveren, 959 00:53:43,450 --> 00:53:48,040 og deretter serveren svarer med et tall som 200, er alt i orden, 960 00:53:48,040 --> 00:53:53,290 samt HTML eller noen dårlige nummer som 404, fil ikke funnet. 961 00:53:53,290 --> 00:53:58,220 Men i mellomtiden er HTTP selv ikke Internett, per se. 962 00:53:58,220 --> 00:54:01,550 HTTP er bare en tjeneste, en funksjon av Internett 963 00:54:01,550 --> 00:54:05,530 mye som G chat er en annen tjeneste, omtrent som e-post er en annen tjeneste. 964 00:54:05,530 --> 00:54:09,180 Det er alle slags ting vi kan gjøre på Internett. 965 00:54:09,180 --> 00:54:12,670 HTTP er bare ett av disse programmene. 966 00:54:12,670 --> 00:54:17,210 Så på toppen av - HTTP er på toppen av noe annet 967 00:54:17,210 --> 00:54:21,750 som vi ikke nevner ved navn, har du kanskje hørt om ved navn, TCP / IP. 968 00:54:21,750 --> 00:54:25,160 Så den historien vi fortalte det handler om 969 00:54:25,160 --> 00:54:28,720 hvordan data reiser fra punkt a til punkt b.. 970 00:54:28,720 --> 00:54:30,950 Og i dette tilfellet, så vi på et svært lavt nivå 971 00:54:30,950 --> 00:54:33,060 ruter til ruter til ruter til ruter, 972 00:54:33,060 --> 00:54:35,390 hvordan dataene faktisk blir overført. 973 00:54:35,390 --> 00:54:40,510 Men underveis, det kommer til å møte ulike hindringer. 974 00:54:40,510 --> 00:54:43,770 I tillegg til disse ruterne, er det ting som kalles brannmurer på internett, 975 00:54:43,770 --> 00:54:46,680 og så data, for eksempel at vi var bare sender 976 00:54:46,680 --> 00:54:49,720 fra meg til Stanford, fra meg til Cambridge, 977 00:54:49,720 --> 00:54:54,560 sendes til, på dette nivået, heter noe en IP-adresse. 978 00:54:54,560 --> 00:54:57,340 Vi så dette for et øyeblikk siden, og en IP-adresse 979 00:54:57,340 --> 00:55:02,480 er bare en numerisk adresse på formen w.x.y.z, 980 00:55:02,480 --> 00:55:08,070 der hver av disse er mellom, gi eller ta, 0 og 255, 981 00:55:08,070 --> 00:55:10,080 selv om du ikke kan ganske bruke alle disse tallene. 982 00:55:10,080 --> 00:55:14,220 Men hver av disse plassere holdere er et tall mellom 0 og 255. 983 00:55:14,220 --> 00:55:16,820 Så en IP-adresse i disse dager er 32 bits. 984 00:55:16,820 --> 00:55:20,780 >> Nå, som gir oss hvor mange mulige IP-adresser i verden? 985 00:55:20,780 --> 00:55:24,420 Omtrent 4 milliarder kroner, fordi hver gang vi er telle i kraft av 2 986 00:55:24,420 --> 00:55:27,760 hele veien opp til 32 av noe, gir som regel oss 4 milliarder kroner. 987 00:55:27,760 --> 00:55:30,160 Så det er mye av IP-adresser, men du har kanskje lest, 988 00:55:30,160 --> 00:55:32,410 eller du kan nå legge merke til i den populære pressen, 989 00:55:32,410 --> 00:55:36,020 en push mot en ny versjon av IP kalt IPV6. 990 00:55:36,020 --> 00:55:38,290 Akkurat nå er vi med versjon 4. 991 00:55:38,290 --> 00:55:41,060 Det egentlig ikke har vært en versjon 5, er vi bare hoppe rett til 6. 992 00:55:41,060 --> 00:55:46,760 Versjon 6 skal bruke 128 bits for IP-adresser, som er freaking stor. 993 00:55:46,760 --> 00:55:49,430 Vi bør ikke kjøre ut i ganske lang tid nå, 994 00:55:49,430 --> 00:55:52,980 men vi har begynt å kjøre ut av versjon 4 IP-adresser, 995 00:55:52,980 --> 00:55:56,110 fordi alle av oss har ikke bare ting som bærbare og stasjonære, 996 00:55:56,110 --> 00:55:58,700 har mange av oss telefoner, mange av oss har andre enheter 997 00:55:58,700 --> 00:56:01,600 som TiVo o.l. som har IP-adresser selv. 998 00:56:01,600 --> 00:56:03,720 Harvard selv har titusenvis av datamaskiner. 999 00:56:03,720 --> 00:56:07,970 Så verden er genuint kjører tom for IP-adresser, i det minste av dette skjemaet. 1000 00:56:07,970 --> 00:56:10,340 Så i løpet av de neste årene, skal du se adressene 1001 00:56:10,340 --> 00:56:12,870 på dine egne datamaskiner trolig sakte endring 1002 00:56:12,870 --> 00:56:16,740 som flere og flere bedrifter og universiteter begynner å støtte den nyere versjonen. 1003 00:56:16,740 --> 00:56:22,770 Men en IP-adresse ikke er tilstrekkelig for datamaskinen en å be data fra datamaskinen b. 1004 00:56:22,770 --> 00:56:24,950 Fordi datamaskinen b kan være en server, 1005 00:56:24,950 --> 00:56:27,600 og en server, som jeg nevnte tidligere, kan gjøre bunter av ting. 1006 00:56:27,600 --> 00:56:29,940 Det kan være vert nettsider, kan det være en e-postserver, 1007 00:56:29,940 --> 00:56:32,310 det kan være en Skype server, kan det være en G chat server. 1008 00:56:32,310 --> 00:56:35,870 >> Alle disse forskjellige tjenester som kan utføres på server 1009 00:56:35,870 --> 00:56:38,330 kunne alle, fysisk, være på samme maskin. 1010 00:56:38,330 --> 00:56:40,380 Så i tillegg til IP-adresser, 1011 00:56:40,380 --> 00:56:43,250 verden har ting som kalles porter på Internett. 1012 00:56:43,250 --> 00:56:47,830 En port er bare et tall, så det er et unikt nummer for HTTP. 1013 00:56:47,830 --> 00:56:50,280 Dens nummer er 80. 1014 00:56:50,280 --> 00:56:55,870 HTTP bruker også nummer 443, men mer spesifikt, for krypterte HTTPS. 1015 00:56:55,870 --> 00:57:00,030 Når du ser s, for sikker, er at bruk av et annet nummer. 1016 00:57:00,030 --> 00:57:06,580 Det er andre tall, som 25, som brukes til noe som kalles SMTP, ellers kjent som e-post. 1017 00:57:06,580 --> 00:57:09,620 Det er noe som heter 22 for SSH, 1018 00:57:09,620 --> 00:57:11,850 og det er en hel haug med andre havner der ute. 1019 00:57:11,850 --> 00:57:14,460 Nå, vi mennesker sjelden ser disse tallene. 1020 00:57:14,460 --> 00:57:21,970 Men når du skriver inn en adresse som http://www.facebook.com, 1021 00:57:21,970 --> 00:57:26,560 nettleseren hemmelighet setter 80, fordi du bruker HTTP. 1022 00:57:26,560 --> 00:57:30,630 Hvis du i stedet, skriver HTTPS, er det i hemmelighet setter 443. 1023 00:57:30,630 --> 00:57:35,180 Og vi kan slags se dette manuelt hvis jeg trekke opp en Brower 1024 00:57:35,180 --> 00:57:41,850 og gå til http://www.facebook.com:80. 1025 00:57:41,850 --> 00:57:44,550 Derfor eksplisitt siterer ikke bare navnet på nettstedet 1026 00:57:44,550 --> 00:57:47,650 men porten som jeg ønsker å snakke med, og trykk enter. 1027 00:57:47,650 --> 00:57:50,170 Legg merke til den forsvinner, fordi nettleseren forutsetter, 1028 00:57:50,170 --> 00:57:53,360 oh, 80, er jeg ikke engang kommer til å bry viser at til deg. 1029 00:57:53,360 --> 00:57:56,400 Men grunnen til dette er at hvis jeg faktisk ønsket å sende noen en e-post, 1030 00:57:56,400 --> 00:58:02,340 Jeg ville virkelig være å sende det til dem på port 25, at det å være SMTP. 1031 00:58:02,340 --> 00:58:04,890 En bit av en overforenkling, men noen av dere har venner 1032 00:58:04,890 --> 00:58:09,290 som faktisk fungerer på Facebook, og de, på samme måte, har servere som mottar e-post. 1033 00:58:09,290 --> 00:58:12,610 >> Hver gang du sender en e-post, hva gmail gjør for deg 1034 00:58:12,610 --> 00:58:14,960 eller Outlook eller hva program du bruker, 1035 00:58:14,960 --> 00:58:19,270 Det er liksom hemmelighet sette det tallet også, 25, i så fall. 1036 00:58:19,270 --> 00:58:24,490 Det er denne kombinasjonen av IP-adresse og nummer som identifiserer 1037 00:58:24,490 --> 00:58:29,190 en datamaskin på Internett og en bestemt tjeneste på den aktuelle datamaskinen. 1038 00:58:29,190 --> 00:58:33,460 Nå, selvfølgelig, har de fleste av oss sannsynligvis aldri skrevet manuelt en IP-adresse. 1039 00:58:33,460 --> 00:58:37,340 Kanskje du har i skapet, men i den virkelige verden, ikke så mye. 1040 00:58:37,340 --> 00:58:42,750 Hvorfor kan vi ikke skrive IP-adresser i nettlesere? 1041 00:58:42,750 --> 00:58:45,860 Det ville fungere, faktisk, kan vi se dette, la meg vise deg 1042 00:58:45,860 --> 00:58:50,000 en annen kommando som skal fungere mest hvor som helst på Harvard campus på en Mac eller en PC. 1043 00:58:50,000 --> 00:58:53,970 Det er denne kommandoen kalles nslookup, navnserver oppslag. 1044 00:58:53,970 --> 00:58:59,960 Hvis jeg ser opp www.cnn.com, viser det seg at CNN har - oh, interessant. 1045 00:58:59,960 --> 00:59:03,180 CNN har begynt å bruke Amazon Web Services. 1046 00:59:03,180 --> 00:59:06,380 Du kanskje vet av cloud computing, Amazon er en av de store aktørene i cloud computing. 1047 00:59:06,380 --> 00:59:10,240 Hva jeg nettopp gjorde var, sa jeg, «Gi meg adressen til CNNs web server, ' 1048 00:59:10,240 --> 00:59:14,090 men det viser seg at CNN webserver ledes av Amazon, 1049 00:59:14,090 --> 00:59:16,030 Amazon Web Services, tyder dette. 1050 00:59:16,030 --> 00:59:19,680 Og adressen til denne maskinen er dette her. 1051 00:59:19,680 --> 00:59:22,350 Så jeg er ikke sikker på om dette vil fungere, fordi de ikke pleide å bruke Amazon. 1052 00:59:22,350 --> 00:59:32,830 Men la oss prøve dette, http://, IP-adresse, skriver, og - 1053 00:59:32,830 --> 00:59:35,690 går det å jobbe? 1054 00:59:35,690 --> 00:59:39,280 Ja. Det kommer til å fungere. Internett er super-slow i dag. 1055 00:59:39,280 --> 00:59:43,680 Men, i et øyeblikk, vil du se noen nyhet. 1056 00:59:43,680 --> 00:59:48,360 Det vi går. Bank of America som blir saksøkt. OK. 1057 00:59:48,360 --> 00:59:54,000 >> Dette er fordi denne IP-adressen bare skjer til av synonymt med www.cnn.com. 1058 00:59:54,000 --> 00:59:59,920 Selvfølgelig ville det være fryktelig markedsføring for å si, kan du besøke oss på nettet på 50.112.94.127. 1059 00:59:59,920 --> 01:00:02,370 Du ville aldri huske. Så selv disse dager du kanskje husker ting 1060 01:00:02,370 --> 01:00:07,210 som 1-800-COLLECT eller mnemonics verden kom opp med for telefonnumre. 1061 01:00:07,210 --> 01:00:09,540 Som før mobiltelefoner, var ganske vanskelig å huske 1062 01:00:09,540 --> 01:00:11,800 før du kan bare skrive det inn og glemme det. 1063 01:00:11,800 --> 01:00:15,730 Så Web, også har denne konvensjonen av navn og IP-adresser, 1064 01:00:15,730 --> 01:00:17,770 og det er disse tingene der ute som heter DNS-servere, 1065 01:00:17,770 --> 01:00:23,870 domenenavn systemer servere, som oversetter IP-adresser til navn og vice versa. 1066 01:00:23,870 --> 01:00:26,340 Så det er hva som skjer under panseret. 1067 01:00:26,340 --> 01:00:29,540 Til slutt har vi TCP / IP, som er denne svært lavt nivå protokollen 1068 01:00:29,540 --> 01:00:32,570 det, egentlig, får bare 0 og 1-ere over Internett, 1069 01:00:32,570 --> 01:00:36,030 og det gjør det ved å sette dem inn i en virtuell konvolutt, 1070 01:00:36,030 --> 01:00:38,820 hvis du vil, og skrive på utsiden av konvolutten 1071 01:00:38,820 --> 01:00:43,930 IP adressen til bestemmelsesstedet, samt den numeriske portnummeret 1072 01:00:43,930 --> 01:00:47,520 av tjenesten på denne destinasjonen som den ønsker å snakke med. 1073 01:00:47,520 --> 01:00:51,060 I mellomtiden, på konvolutten er det også noe som kalles en returadresse, 1074 01:00:51,060 --> 01:00:55,600 som er din IP-adresse, slik at når CNN får en informasjonspakke fra deg, 1075 01:00:55,600 --> 01:00:58,710 åpner denne virtuelle konvolutt, ser at du ønsker hjemmesiden, 1076 01:00:58,710 --> 01:01:04,630 det vet fra avsenderen del av denne virtuelle konvolutt som å sende HTML tilbake til. 1077 01:01:04,630 --> 01:01:07,470 Så la oss ta en titt på dette i litt mer detalj. 1078 01:01:07,470 --> 01:01:11,370 Dette er fra et firma som heter Ericson, fra et par år tilbake. 1079 01:01:11,370 --> 01:01:14,780 Og de tok noen friheter med hvordan Internett faktisk fungerer, 1080 01:01:14,780 --> 01:01:18,920 men det skaper en mye mer visuelt bilde enn bare kritt opp her. 1081 01:01:18,920 --> 01:01:26,690 Så jeg gir deg "A Bit av Internett." 1082 01:02:26,660 --> 01:02:29,840 >> [NEF] For første gang i historien, 1083 01:02:29,840 --> 01:02:35,260 mennesker og maskiner jobber sammen, å realisere en drøm. 1084 01:02:35,260 --> 01:02:38,910 En samlende kraft som kjenner ingen geografiske grenser. 1085 01:02:38,910 --> 01:02:43,230 Uten hensyn til rase, tro eller farge. 1086 01:02:43,230 --> 01:02:47,770 En ny æra der kommunikasjon virkelig bringer folk sammen. 1087 01:02:47,770 --> 01:02:50,070 Dette er 1088 01:02:50,070 --> 01:02:54,980 Dawn of the Net. 1089 01:02:54,980 --> 01:03:04,640 Vil du vite hvordan det fungerer? Klikk her for å begynne din reise inn i nettet. 1090 01:03:04,640 --> 01:03:07,890 Nå skjedde nøyaktig hva når du klikket på denne linken? 1091 01:03:07,890 --> 01:03:10,150 Du startet en strøm av informasjon. 1092 01:03:10,150 --> 01:03:13,310 Denne informasjonen reiser ned til din egen personlige postrommet 1093 01:03:13,310 --> 01:03:18,500 hvor Mr. IP-pakker det, merker det, og sender det på sin måte. 1094 01:03:18,500 --> 01:03:20,960 Hver pakke er begrenset i sin størrelse. 1095 01:03:20,960 --> 01:03:23,880 E-posten Rommet skal bestemme hvordan å dele informasjon 1096 01:03:23,880 --> 01:03:26,070 og hvordan å pakke den. 1097 01:03:26,070 --> 01:03:29,550 Nå må pakke en etikett som inneholder viktig informasjon 1098 01:03:29,550 --> 01:03:35,570 som avsenderadresse, mottakerens adresse, og den type pakke det er. 1099 01:03:51,700 --> 01:03:54,980 Fordi denne spesielle pakken kommer ut på Internett, 1100 01:03:54,980 --> 01:03:57,720 det blir også en adresse til proxy-serveren, 1101 01:03:57,720 --> 01:04:01,520 som har en spesiell funksjon, som vi skal se senere. 1102 01:04:01,520 --> 01:04:06,650 Pakken er nå lansert på det lokale nettverket, eller LAN. 1103 01:04:06,650 --> 01:04:10,160 Dette nettverket brukes til å koble alle de lokale datamaskiner ' 1104 01:04:10,160 --> 01:04:15,900 rutere, skrivere, etcetera, for informasjonsutveksling innen de fysiske veggene av bygningen. 1105 01:04:15,900 --> 01:04:20,290 Den LAN er en ganske ukontrollert sted, og, dessverre, 1106 01:04:20,290 --> 01:04:23,950 ulykker kan skje. 1107 01:04:31,190 --> 01:04:34,710 Motorveien av LAN er fullpakket med alle typer informasjon. 1108 01:04:34,710 --> 01:04:38,900 Dette er IP-pakker, Novell pakker, AppleTalk pakker. 1109 01:04:38,900 --> 01:04:41,270 De kommer mot trafikk, som vanlig. 1110 01:04:41,270 --> 01:04:44,260 Den lokale ruteren leser adressen, og om nødvendig, 1111 01:04:44,260 --> 01:04:48,520 løfter pakkene videre til et annet nettverk. 1112 01:04:48,520 --> 01:04:54,270 Ah, ruteren. Et symbol på kontroll i en tilsynelatende uorganisert verden. 1113 01:04:54,270 --> 01:05:05,480 [Router mumler og snakker med seg selv] 1114 01:05:05,480 --> 01:05:10,030 >> [Forteller] Der er han, systematisk, uncaring, metodisk, 1115 01:05:10,030 --> 01:05:14,150 konservativ, og noen ganger ikke helt opp til hastighet. 1116 01:05:14,150 --> 01:05:17,680 Men minst han er nøyaktig, for det meste. 1117 01:05:32,270 --> 01:05:36,820 Som pakkene forlate ruteren, gjør de seg inn i bedriftens Internett 1118 01:05:36,820 --> 01:05:40,830 og leder for ruteren bryteren. 1119 01:05:40,830 --> 01:05:46,250 Litt mer effektiv enn ruteren, spiller ruteren bryteren raskt og løs med IP-pakker, 1120 01:05:46,250 --> 01:05:48,920 deftly ruting dem på veien. 1121 01:05:48,920 --> 01:05:52,130 Et digitalt 'Pinball Wizard ", hvis du vil. 1122 01:05:52,130 --> 01:06:04,270 [Router bryter snakke til seg selv] 1123 01:06:09,830 --> 01:06:12,150 [Forteller] Som pakker ankommer sin destinasjon, 1124 01:06:12,150 --> 01:06:14,740 de er plukket opp av nettverksgrensesnittet, 1125 01:06:14,740 --> 01:06:18,040 klar til å sendes til neste nivå. 1126 01:06:18,040 --> 01:06:21,010 I dette tilfellet, proxy. 1127 01:06:21,010 --> 01:06:25,040 Fullmakten blir brukt av mange selskaper som slags en middelaldrende mann 1128 01:06:25,040 --> 01:06:27,630 for å minske belastningen på Internett-forbindelsen 1129 01:06:27,630 --> 01:06:32,240 og sikkerhetsmessige grunner, så vel. 1130 01:06:32,240 --> 01:06:38,750 Som du kan se, pakkene er alle forskjellige størrelser avhengig innholdet. 1131 01:06:55,210 --> 01:07:01,890 Proxy åpner pakken og ser for web-adresse eller URL. 1132 01:07:01,890 --> 01:07:04,950 Avhengig av om adressen er akseptabel, 1133 01:07:04,950 --> 01:07:08,000 pakken sendes videre til Internett. 1134 01:07:13,890 --> 01:07:19,630 Det er imidlertid noen adresser som ikke oppfyller med godkjenning av fullmakten. 1135 01:07:19,630 --> 01:07:25,680 Det vil si, corporate eller ledelse retningslinjer. 1136 01:07:25,680 --> 01:07:30,580 Disse er summarisk behandlet. 1137 01:07:30,580 --> 01:07:32,410 Vi vil ikke ha noe av det. 1138 01:07:32,410 --> 01:07:36,350 For de som gjør det, er det på veien igjen. 1139 01:07:46,850 --> 01:07:53,310 >> Neste opp, brannmur. 1140 01:07:53,310 --> 01:07:57,410 Bedriftens brannmur tjener to formål. 1141 01:07:57,410 --> 01:08:02,420 Det hindrer noen ganske ekle ting fra Internett fra å komme inn til intranett, 1142 01:08:02,420 --> 01:08:10,280 og det kan også hindre sensitiv informasjon blir sendt ut på Internett. 1143 01:08:10,280 --> 01:08:12,980 Gang gjennom brannmuren, plukker en ruter opp pakken 1144 01:08:12,980 --> 01:08:18,180 og plasserer det på en mye smalere vei, eller båndbredden, som vi sier. 1145 01:08:18,180 --> 01:08:23,720 Selvfølgelig, er veien ikke bred nok til å ta dem alle. 1146 01:08:23,720 --> 01:08:29,319 Nå lurer du kanskje på hva som skjer med alle disse pakkene som ikke gjør det underveis. 1147 01:08:29,319 --> 01:08:32,270 Vel, når Mr. IP ikke mottar en bekreftelse 1148 01:08:32,270 --> 01:08:35,000 at en pakke er mottatt i rett tid, 1149 01:08:35,000 --> 01:08:39,890 han sender ganske enkelt en erstatning pakke. 1150 01:08:39,890 --> 01:08:44,760 Vi er nå klare til å gå inn i verden av Internett. 1151 01:08:44,760 --> 01:08:49,370 En spiderweb sammenhengende nettverk som spenner hele kloden. 1152 01:08:49,370 --> 01:08:56,050 Her rutere og svitsjer etablere forbindelser mellom nettverkene. 1153 01:08:56,050 --> 01:08:59,200 Nå er Net en helt annet miljø enn du finner 1154 01:08:59,200 --> 01:09:01,569 innenfor de beskyttende veggene i lokalnettet. 1155 01:09:01,569 --> 01:09:04,060 Her ute, er det Wild West. 1156 01:09:04,060 --> 01:09:06,359 God plass, masse muligheter, 1157 01:09:06,359 --> 01:09:09,760 nok av ting å utforske og steder å gå. 1158 01:09:09,760 --> 01:09:12,760 Takket være svært lite kontroll og regulering, 1159 01:09:12,760 --> 01:09:18,300 nye ideer finner grobunn for å skyve konvolutten av sine muligheter. 1160 01:09:18,300 --> 01:09:22,330 Men på grunn av denne friheten, visse farer også ligge på lur. 1161 01:09:22,330 --> 01:09:27,000 Du vil aldri vite når du møter den fryktede ping of death, 1162 01:09:27,000 --> 01:09:29,890 en spesiell versjon av en normal anmodning ping, 1163 01:09:29,890 --> 01:09:35,720 som noen idiot trodde opp å rote opp intetanende verter. 1164 01:09:35,720 --> 01:09:39,130 Banen våre pakker tar kan være via satellitt, 1165 01:09:39,130 --> 01:09:43,090 telefonlinjer, trådløst eller med transoceanic kabel. 1166 01:09:43,090 --> 01:09:46,520 De ikke alltid tar de raskeste eller korteste rute mulig, 1167 01:09:46,520 --> 01:09:50,290 men de vil få det til slutt. 1168 01:09:50,290 --> 01:09:55,230 Kanskje det er derfor det er noen ganger kalt "The World Wide Wait". 1169 01:09:55,230 --> 01:09:57,980 Men når alt fungerer, 1170 01:09:57,980 --> 01:10:03,800 Du kan omgå verden fem ganger ved slipp av en lue, bokstavelig talt. 1171 01:10:03,800 --> 01:10:08,230 Og alt for prisen av en lokal samtale eller mindre. 1172 01:10:08,230 --> 01:10:15,070 Nær slutten av vår destinasjon, vil vi finne en annen brannmur. 1173 01:10:15,070 --> 01:10:18,420 >> Avhengig ditt perspektiv som en datapakke, 1174 01:10:18,420 --> 01:10:23,730 brannmuren kan være en bastion for sikkerhet eller en fryktet motstander. 1175 01:10:23,730 --> 01:10:28,530 Det hele avhenger av hvilken side du er på og hva dine intensjoner er. 1176 01:10:28,530 --> 01:10:34,990 Brannmuren er utviklet for å slippe inn bare de pakkene som oppfyller kriteriene. 1177 01:10:34,990 --> 01:10:39,360 Denne brannmuren opererer på port 80 og 25 år. 1178 01:10:39,360 --> 01:10:46,630 Alle forsøk på å taste gjennom andre porter er stengt for virksomheten. 1179 01:10:57,660 --> 01:11:03,480 Port 25 brukes for Mail pakker, 1180 01:11:03,480 --> 01:11:10,720 mens port 80 er inngangen for pakker fra Internett til webserveren. 1181 01:11:10,720 --> 01:11:15,080 Innsiden av brannmuren, pakker vist mer grundig. 1182 01:11:15,080 --> 01:11:17,970 Noen pakker gjør det enkelt gjennom tollen, 1183 01:11:17,970 --> 01:11:21,420 mens andre ser bare litt tvilsom. 1184 01:11:21,420 --> 01:11:24,060 Nå er brannmuren offiser ikke lettlurte, 1185 01:11:24,060 --> 01:11:32,120 for eksempel når denne ping of death pakke prøver å skjule seg selv som en normal ping-pakke. 1186 01:11:32,120 --> 01:11:37,520 [Firewall offiser snakke med pakker] 1187 01:11:37,520 --> 01:11:40,510 [Forteller] For disse pakkene heldige nok til å gjøre det så langt, 1188 01:11:40,510 --> 01:11:45,730 reisen er nesten over. 1189 01:11:45,730 --> 01:11:52,130 Det er bare en linje opp på grensesnittet for å bli tatt opp i webserveren. 1190 01:11:52,130 --> 01:11:55,440 I dag kan en web server kjøre på mange ting, 1191 01:11:55,440 --> 01:11:59,230 fra en stormaskin til en web cam til datamaskinen på pulten din. 1192 01:11:59,230 --> 01:12:01,720 Hvorfor ikke kjøleskapet? 1193 01:12:01,720 --> 01:12:04,870 Med korrekt oppsett, kan du finne ut om du har makings 1194 01:12:04,870 --> 01:12:08,390 for Chicken Cacciatore, eller hvis du har å gå og shoppe. 1195 01:12:08,390 --> 01:12:11,760 Husk, dette er starten på nettet. 1196 01:12:11,760 --> 01:12:17,310 Nesten alt er mulig. 1197 01:12:17,310 --> 01:12:20,440 En etter en blir de pakker mottatt, 1198 01:12:20,440 --> 01:12:26,320 åpnet, og pakket. 1199 01:12:26,320 --> 01:12:31,200 Den informasjonen de inneholder, det vil si din forespørsel om informasjon, 1200 01:12:31,200 --> 01:12:34,830 sendes videre til webserveren programmet. 1201 01:12:41,540 --> 01:12:47,140 Pakken selv er resirkulert, 1202 01:12:47,140 --> 01:12:57,570 klar til å bli brukt igjen, og fylt med nødvendig informasjon, 1203 01:12:57,570 --> 01:13:03,340 adressert og sendt ut på vei tilbake til deg. 1204 01:13:03,340 --> 01:13:13,250 Tilbake forbi brannmuren, rutere, og videre gjennom til Internett. 1205 01:13:13,250 --> 01:13:21,020 Tilbake gjennom bedriftens brannmur 1206 01:13:21,020 --> 01:13:24,180 og på grensesnittet, 1207 01:13:24,180 --> 01:13:31,180 klar til å levere nettleseren med den informasjonen du har bedt om. 1208 01:13:31,180 --> 01:13:39,840 Det vil si, denne filmen. 1209 01:13:39,840 --> 01:13:43,550 Fornøyd med sin innsats, og å stole på bedre verden, 1210 01:13:43,550 --> 01:13:50,250 våre trofaste datapakker ri blissfully inn i solnedgangen på en annen dag, 1211 01:13:50,250 --> 01:13:56,880 vet fullt de har tjent sine mestere godt. 1212 01:13:56,880 --> 01:14:02,560 Nå er ikke det en lykkelig slutt? 1213 01:14:02,560 --> 01:14:07,040 [Malan] Ok, det er nok. Vi får se deg neste uke. 1214 01:14:07,040 --> 01:14:10,040 [CS50.TV]