1 00:00:00,000 --> 00:00:02,620 [Powered by Google Translate] [Uge 7, Fortsat] 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. Welcome Back. Dette er CS50, 5 00:00:09,810 --> 00:00:12,100 og det er i slutningen af ​​uge 7. 6 00:00:12,100 --> 00:00:15,460 Så en af ​​disse dumme små ting, der går rundt på internettet 7 00:00:15,460 --> 00:00:24,080 og vi slubrede op, og det skal nu gøre en lille smule af nørdede mening for dig. 8 00:00:24,080 --> 00:00:28,330 Nå, det var sjovere at denne fyr, end det var med jer. 9 00:00:28,330 --> 00:00:32,619 Apropos, godt, gutter, 10 00:00:32,619 --> 00:00:42,550 i dag er Nate fødselsdag. 11 00:00:42,550 --> 00:00:46,630 For at give dig en fornemmelse af, hvor godt Nate og jeg er 12 00:00:46,630 --> 00:00:50,140 på web-udvikling baseret på mandagens klasse og baseret nu på dette, 13 00:00:50,140 --> 00:00:53,170 Jeg troede, jeg ville trække op Nate hjemmeside, hvis du ikke har set det endnu. 14 00:00:53,170 --> 00:00:57,020 Dette her ia Nates HTML. 15 00:00:57,020 --> 00:00:59,380 Så se hans kildekode, hvis du gerne vil se, hvordan du gør dette, og Nate, 16 00:00:59,380 --> 00:01:02,250 hvis vi kunne embarass du lige kort, personalet fik du en lille ting 17 00:01:02,250 --> 00:01:06,080 hvis du gerne vil dele nogle dessert med nogle af børnene i klassen her. 18 00:01:06,080 --> 00:01:10,150 Hvis du gerne vil komme på ned. 19 00:01:10,150 --> 00:01:14,350 Du alle klappe og er meget rart, men ingen sidder overalt nær Nate, 20 00:01:14,350 --> 00:01:17,560 en eller anden grund. ved, at ryggen zone 21 00:01:17,560 --> 00:01:24,020 Så måske du kan finde nogle folk at nyde disse med. 22 00:01:24,020 --> 00:01:33,380 Happy Birthday, Nate. 23 00:01:33,380 --> 00:01:37,660 >> Yderligere hej'er: Vi viste et par klip fra vores CS50x studerende. 24 00:01:37,660 --> 00:01:39,710 Hvis du gerne vil se, hvem der ellers er i verden 25 00:01:39,710 --> 00:01:41,850 der er efter langs, kan du hovedet til denne webadresse, 26 00:01:41,850 --> 00:01:45,780 hvor Joseph, en af ​​vores TF'er, har sammensat en montage af en slags 27 00:01:45,780 --> 00:01:50,290 af alle, der har at indsende disse videoer, blandt dem Rick Astley. 28 00:01:50,290 --> 00:01:53,010 Og hvis du ruller gennem disse, det er virkelig ganske inspirerende 29 00:01:53,010 --> 00:01:56,890 at se de mange forskellige lande og byer, hvorfra folk rapporteringskrav. 30 00:01:56,890 --> 00:02:00,830 Så hvis du gerne vil tage et kig på det, vil det være op til slutningen af ​​semestret. 31 00:02:00,830 --> 00:02:05,370 I dag fortsætter vi vores kig på nettet, web-programmering, HTML og lignende, 32 00:02:05,370 --> 00:02:08,280 og vi har også frokost kommer op denne fredag 33 00:02:08,280 --> 00:02:11,360 hvis du gerne vil, og især ikke har gjort det før. 34 00:02:11,360 --> 00:02:13,630 Denne fredag ​​tema vil være Nate fødselsdag, 35 00:02:13,630 --> 00:02:15,700 så hvis du gerne vil have fødselsdag frokost med Nate 36 00:02:15,700 --> 00:02:17,500 og andre, nogle af vores venner fra industrien, 37 00:02:17,500 --> 00:02:19,300 bedes du hovedet til den pågældende webadresse dér. 38 00:02:19,300 --> 00:02:22,510 Space, som altid er begrænset. Også, hvis du har glemt, 39 00:02:22,510 --> 00:02:26,460 indse, at næste uge er sidste frist for problemet sæt 4 s skattejagt, 40 00:02:26,460 --> 00:02:30,070 hvorved efter at komme alle disse JPEGS fra card.raw, 41 00:02:30,070 --> 00:02:32,880 du og din afdeling hjælpere, hvis du ønsker, kan du prøve at fotografere 42 00:02:32,880 --> 00:02:36,100 som mange af de dataloger fra det hukommelseskort som muligt, 43 00:02:36,100 --> 00:02:39,070 og du og din afdeling vil derefter vinde en fabelagtig præmie. 44 00:02:39,070 --> 00:02:44,470 Vend tilbage til Pset 4 specifikation hvad at indsende og hvornår. 45 00:02:44,470 --> 00:02:47,650 Også, hvis du gerne vil have dit værk udødeliggjort 46 00:02:47,650 --> 00:02:51,400 på kursets hjemmeside og dens historie af tøj, 47 00:02:51,400 --> 00:02:54,010 vide, at du er velkommen nu at begynde at indsende designs 48 00:02:54,010 --> 00:02:57,180 for dette års T-shirts og sweatshirts og lignende. 49 00:02:57,180 --> 00:02:59,200 Vi vil gøre vores bedste for at inkludere så mange som vi kan, 50 00:02:59,200 --> 00:03:01,440 men vi vil have nogle medlemmer af personalet gennemgang samtlige mønstre 51 00:03:01,440 --> 00:03:04,180 at sikre, at de er i overensstemmelse med de specifikationer, 52 00:03:04,180 --> 00:03:07,500 og vi derefter vælge generelt en håndfuld af dem at blive udstillet. 53 00:03:07,500 --> 00:03:10,620 Så hvis du er den konstruktionstype, bare vide, at kravene 54 00:03:10,620 --> 00:03:14,030 for grafik er PNG, mindst 200 DPI, 55 00:03:14,030 --> 00:03:16,520 de bør ikke være mere end 4000 x 4000 pixels, 56 00:03:16,520 --> 00:03:19,010 og ikke mere end 10 MB, men du er velkommen til at bruge ting som 57 00:03:19,010 --> 00:03:22,430 Photoshop eller GIMP eller forskellige grafiske programmer, 58 00:03:22,430 --> 00:03:24,590 hvad du har til din rådighed. 59 00:03:24,590 --> 00:03:28,280 >> Også i horisonten, er det endelige projekt. Det endelige projekt virkelig er kulminationen på 50, 60 00:03:28,280 --> 00:03:30,560 hvorved alle de opgaver i kurset, 61 00:03:30,560 --> 00:03:33,170 det er din chance for virkelig at gøre dine egne ting. 62 00:03:33,170 --> 00:03:35,280 Og det kan simpelthen gøre noget for sjov, 63 00:03:35,280 --> 00:03:38,160 det kan være at løse nogle presserende problem din student gruppe har, 64 00:03:38,160 --> 00:03:40,980 for nogle nye hjemmeside. nogle nye kollektion mekanisme for data 65 00:03:40,980 --> 00:03:43,420 Det kan være en mobil applikation til Android, for iOS. 66 00:03:43,420 --> 00:03:46,030 Virkelig, himlen er den grænse, og i løbet af de næste par uger, 67 00:03:46,030 --> 00:03:50,900 som vi overgangen fra C til disse højere niveau sprog som PHP og JavaScript, 68 00:03:50,900 --> 00:03:55,150 vil du finde dig selv i stigende grad bekendt med nogle virkelige verden teknikker, 69 00:03:55,150 --> 00:03:57,800 nogle virkelige verden, og at supplere det, 70 00:03:57,800 --> 00:04:00,170 vide, at kurset har en historie af seminarer, 71 00:04:00,170 --> 00:04:02,880 hvorved løbet af de næste par uger, nogle af underviserne 72 00:04:02,880 --> 00:04:06,160 og af vores venner fra på campus vil tilbyde valgfrie seminarer 73 00:04:06,160 --> 00:04:08,540 der går ud over, hvad der typisk er foretaget under punkt 74 00:04:08,540 --> 00:04:11,090 at introducere dig til ting som Android programmering, 75 00:04:11,090 --> 00:04:13,450 at introducere dig til ting som iOS programmering 76 00:04:13,450 --> 00:04:15,950 eller mere avancerede web-udviklingsprojekter teknikker. 77 00:04:15,950 --> 00:04:17,970 Der er en hel historie om disse allerede online. 78 00:04:17,970 --> 00:04:25,000 Hvis du går til cs50.net/seminars, har vi gjort det i en hel del år, 79 00:04:25,000 --> 00:04:28,740 og du vil se, at arkiveret her med PDF-filer og videoer og lignende 80 00:04:28,740 --> 00:04:33,090 er flere dusin videoer af seminarer. 81 00:04:33,090 --> 00:04:37,380 Sidste år, for eksempel, havde vi et seminar om acing dine tekniske interviews, 82 00:04:37,380 --> 00:04:40,980 hvis du rent faktisk søger at gå ud og gøre en praktikplads eller fuld tid job. 83 00:04:40,980 --> 00:04:43,450 Windows mobile udvikling, Android udvikling, Google Maps, 84 00:04:43,450 --> 00:04:47,700 API, CSS, udvikling til BlackBerry, Emacs. 85 00:04:47,700 --> 00:04:52,610 Virkelig, er du velkommen til at tage et kig på nogen af ​​disse seminarer på din bekvemmelighed. 86 00:04:52,610 --> 00:04:57,080 Og vi vil holde nogle nye i dette semester, så godt. 87 00:04:57,080 --> 00:04:59,020 >> Så hvad er videre med det endelige projekt? 88 00:04:59,020 --> 00:05:01,090 Nå, det første, selv om denne dato er noget nært forestående, 89 00:05:01,090 --> 00:05:06,460 Dette er egentlig bare en mulighed for at begynde at tænke på det endelige projekt helt realistisk. 90 00:05:06,460 --> 00:05:10,550 Vi kender kun begyndelsen til noget af det, vi vil stadig være der dækker i kurset, 91 00:05:10,550 --> 00:05:13,470 HTML, PHP og lignende, men du er alle bekendt med internettet, 92 00:05:13,470 --> 00:05:16,270 og I forspænding denne samtale mod nettet kun fordi 93 00:05:16,270 --> 00:05:18,380 de fleste mennesker ender med at gøre webbaserede afgangsprojekter, 94 00:05:18,380 --> 00:05:20,260 men det er på ingen måde nødvendige. 95 00:05:20,260 --> 00:05:22,260 Brug C er fint, objektiv C, Java, 96 00:05:22,260 --> 00:05:25,350 ethvert andet sprog, du måske kender eller gerne vil vide er ganske fint. 97 00:05:25,350 --> 00:05:29,370 Men for at få safterne flyder indledningsvis, vil vi forvente, at indgivelse af en preproposal 98 00:05:29,370 --> 00:05:33,520 der, per PDF på hjemmesiden, som nu cs50.net, 99 00:05:33,520 --> 00:05:36,080 og øverst til venstre kan du se afgangsprojekt 100 00:05:36,080 --> 00:05:38,920 er specifikationen for det endelige projekt, 101 00:05:38,920 --> 00:05:41,470 og i der er oplysninger om preproposal og lignende. 102 00:05:41,470 --> 00:05:44,760 Det temmelig meget koges ned til en e-mail til din undervisning fyr 103 00:05:44,760 --> 00:05:48,450 bare for at finde en samtale med ham eller hende om, hvad du tænker. 104 00:05:48,450 --> 00:05:52,510 På projects.cs50.net er en samling af ideer fra folk på campus 105 00:05:52,510 --> 00:05:54,480 Hvis du kæmper med at komme op med en idé, 106 00:05:54,480 --> 00:06:01,140 og manual.cs50.net/APIs er en samling af links til API'er. 107 00:06:01,140 --> 00:06:06,710 >> Men hvad er en API? 108 00:06:06,710 --> 00:06:09,790 Hvad er en API? Jeg har sagt det mindst to gange, 109 00:06:09,790 --> 00:06:12,640 i henhold til udskrifterne af de sidste mange uger. 110 00:06:12,640 --> 00:06:17,050 Hvad er det? [Studerende, uforståelig] 111 00:06:17,050 --> 00:06:19,340 >> Okay, godt. Så noget programming interface. 112 00:06:19,340 --> 00:06:22,710 Application Programming Interface, og det kan tage flere former, 113 00:06:22,710 --> 00:06:25,850 men hvad det virkelig kan koges ned til, er kode 114 00:06:25,850 --> 00:06:29,660 at en anden hs skriftlige eller data, som andre har indsamlet 115 00:06:29,660 --> 00:06:33,670 der er gjort tilgængelig for dig på en eller anden programmatiske måde. 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 uanset dit sprog valg typisk er, 118 00:06:38,760 --> 00:06:42,240 og du kan eller anden måde bygge videre på en andens funktionalitet 119 00:06:42,240 --> 00:06:44,440 eller en andens datasæt. 120 00:06:44,440 --> 00:06:47,210 For eksempel, hvis jeg går til dette link her 121 00:06:47,210 --> 00:06:50,750 og du vil se et par links på den efterfølgende side 122 00:06:50,750 --> 00:06:56,093 hvor vi har CS50 egen API'er, som er meget Harvard-centreret, og derefter tredjepart API'er. 123 00:06:56,930 --> 00:06:59,300 Blandt de tredjeparts API'er er virkelig nyttige ting 124 00:06:59,300 --> 00:07:01,780 som at være i stand til at sende SMS'er til mennesker, 125 00:07:01,780 --> 00:07:04,690 være i stand til at modtage SMS'er fra folk. 126 00:07:04,690 --> 00:07:08,160 Og sådan noget som du måske ikke har nogen idé om, hvordan man gennemfører selv, 127 00:07:08,160 --> 00:07:10,440 men takket være tjenester, nogle gratis og nogle kommercielle, 128 00:07:10,440 --> 00:07:14,000 du kan bygge oven på dem og gøre noget af interesse for dig. 129 00:07:14,000 --> 00:07:16,990 Blandt CS50 API'er er disse campus-centreret ting som 130 00:07:16,990 --> 00:07:21,480 Harvard kurser, energi, begivenheder, mad, kort, nyheder, tweets og Shuttleboy egne, 131 00:07:21,480 --> 00:07:23,940 og disse er API'er, der ser lidt noget som dette. 132 00:07:23,940 --> 00:07:26,990 >> Lad mig trække op HarvardFood API. 133 00:07:26,990 --> 00:07:30,620 Hvis du nogensinde har været til HUD hjemmeside, har du sikkert været der 134 00:07:30,620 --> 00:07:35,410 at bare se, hvad der er til middag eller at se, hvad timerne er for nogle d-hal. 135 00:07:35,410 --> 00:07:38,000 Tja, det er ikke særlig let at navigere, 136 00:07:38,000 --> 00:07:41,100 og så hvad vi gjorde for nogen tid siden var vi skrev software, 137 00:07:41,100 --> 00:07:47,270 Det sker for at være i PHP, der faktisk skærm skraber hele HUD hjemmeside. 138 00:07:47,270 --> 00:07:51,400 At screene skrabe noget betyder at skrive et program på et sprog som PHP 139 00:07:51,400 --> 00:07:55,270 der foregiver at være en browser, selvom du måske køre det fra en kommandoprompt, 140 00:07:55,270 --> 00:07:58,180 der foregiver at være en browser, opretter forbindelse til et websted, 141 00:07:58,180 --> 00:08:01,480 henter sin HTML, det sprog, som den er skrevet, 142 00:08:01,480 --> 00:08:04,300 og læser derefter den, eller mere specifikt, analyserer det 143 00:08:04,300 --> 00:08:06,140 top til bund, venstre mod højre. 144 00:08:06,140 --> 00:08:08,870 Og hvad vi gjorde, var vi skrev vores kode på en sådan måde, at 145 00:08:08,870 --> 00:08:12,910 helst vi så noget i denne HTML, der lignede noget på menuen, 146 00:08:12,910 --> 00:08:16,470 ligesom hamburger, ville vi derefter importere ind i vores egen database. 147 00:08:16,470 --> 00:08:20,410 Og helst så vi næringsindhold, ville vi importere det til vores egen database. 148 00:08:20,410 --> 00:08:23,090 Og hvad vi gjorde, var udnytte det faktum, at trylleri hjemmeside, 149 00:08:23,090 --> 00:08:27,280 selvom det kan være lidt af en udfordring for os mennesker at navigere 150 00:08:27,280 --> 00:08:32,559 under hætten, er alle HTML genereres af deres egne computerprogrammer. 151 00:08:32,559 --> 00:08:35,159 Så alle deres HTML, selvom det kan se rodet, 152 00:08:35,159 --> 00:08:38,026 ligesom de fleste hjemmesider nedenunder hætte følger et mønster. 153 00:08:38,260 --> 00:08:40,799 Så vi har lige brugt et par timer at finde ud af det mønster 154 00:08:40,799 --> 00:08:44,240 således at der i sidste ende, smider vi væk hele rodet HTML, 155 00:08:44,240 --> 00:08:47,340 alle æstetik fed vendende og kursiv og lignende, 156 00:08:47,340 --> 00:08:52,350 og hvad vi efterfølgende er i stand til at gøre, er at eksponere de samme data. 157 00:08:52,350 --> 00:08:54,870 For eksempel. På denne måde 158 00:08:54,870 --> 00:08:56,840 Så vi, ifølge dokumentationen her 159 00:08:56,840 --> 00:08:59,190 har meddelt verden, at hvis du beder om en URL 160 00:08:59,190 --> 00:09:03,310 der ligner dette, food.cs50.net / noget, 161 00:09:03,310 --> 00:09:07,220 og du giver visse parametre, som vi vil tale om i dag, 162 00:09:07,220 --> 00:09:11,780 ligesom slutdato tid, start-dato tid, mel og så videre, 163 00:09:11,780 --> 00:09:14,090 hvad vores servere vil vende tilbage til dig, for eksempel, 164 00:09:14,090 --> 00:09:18,740 er en CSV-fil, komma separted værdier som en Excel-fil, 165 00:09:18,740 --> 00:09:23,140 indeholder alt til morgenmad på netop denne dato i marts sidste år 166 00:09:23,140 --> 00:09:25,450 når jeg tilfældigvis skrive op denne dokumentation. 167 00:09:25,450 --> 00:09:27,870 >> For dem bekendt, er CSV ikke den eneste filformat. 168 00:09:27,870 --> 00:09:30,610 Der er et andet format, der er så meget desto mere alsidig 169 00:09:30,610 --> 00:09:32,670 kaldet JSON, JavaScript Object Notation. 170 00:09:32,670 --> 00:09:34,770 Dataene kan komme tilbage i dette format. 171 00:09:34,770 --> 00:09:38,110 Så takeaway her er, at uanset om du dykker ned i denne API 172 00:09:38,110 --> 00:09:41,170 eller andre af CS50-eller noget derude på internettet, 173 00:09:41,170 --> 00:09:45,560 eller slet ikke, indse, at verden i stigende grad er begyndt at standardisere 174 00:09:45,560 --> 00:09:47,670 hvordan maskiner kommunikere med hinanden. 175 00:09:47,670 --> 00:09:50,660 Vi bruger standard dataformater som CSV-eller JSON. 176 00:09:50,660 --> 00:09:54,320 Og hvad dette betyder for dig er, at du kan skrive den interessante del af et program 177 00:09:54,320 --> 00:09:56,580 der lader din bruger søge en spisesalen menu, 178 00:09:56,580 --> 00:10:00,010 der lader dem oprette lister over favoritter, der lader dem få tekstmeddelelser 179 00:10:00,010 --> 00:10:02,480 når deres favorit måltid er ved at blive serveret i nogle d-hall 180 00:10:02,480 --> 00:10:07,090 ved hjælp af en andens datasæt og bygge oven på deres API'er. 181 00:10:07,090 --> 00:10:13,600 Så mere om dette i form af seminarer og dokumentationen, som du har her online. 182 00:10:13,600 --> 00:10:16,450 Så dem, så er API'er. 183 00:10:16,450 --> 00:10:18,900 >> Det bringer os tilbage til HTML. Quick resumé. 184 00:10:18,900 --> 00:10:22,920 Hvad er HTML? 185 00:10:22,920 --> 00:10:25,000 [Studerende, uforståelig] >> Godt. HyperText Markup Language. 186 00:10:25,000 --> 00:10:31,300 Nogen, hvad 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 bare refererer til internettet, for det meste. 190 00:10:43,100 --> 00:10:45,730 Markup betyder, at det ikke er faktisk et programmeringssprog, HTML. 191 00:10:45,730 --> 00:10:48,120 Det er ikke et sprog, som du kan udtrykke logik i. 192 00:10:48,120 --> 00:10:50,710 Det behøver ikke løkker. Det behøver ikke betingelser. 193 00:10:50,710 --> 00:10:52,820 Det behøver ikke funktioner, per se. 194 00:10:52,820 --> 00:10:56,680 I stedet har disse ting kaldet tags, eller mere korrekt, elementer. 195 00:10:56,680 --> 00:10:59,970 Og disse elementer har start-tags og slut tags, 196 00:10:59,970 --> 00:11:04,300 eller åbne tags og lukkede tags, og hvad disse tags generelt betyde for en browser er, 197 00:11:04,300 --> 00:11:09,270 begynde at gøre noget, og derefter stoppe med at gøre noget, selvom der er undtagelser fra dette. 198 00:11:09,270 --> 00:11:12,480 Nogle gange er det bare 'sætte et linjeskift her, "for eksempel. 199 00:11:12,480 --> 00:11:15,150 Og vi så eksempler på, at den anden dag, mellem fed vendt, 200 00:11:15,150 --> 00:11:17,430 linjeskift, og derefter et par andre mærker. 201 00:11:17,430 --> 00:11:19,880 Så HTML er det sprog, som websider er skrevet. 202 00:11:19,880 --> 00:11:23,760 Så hvis jeg går til noget som Google.com 203 00:11:23,760 --> 00:11:26,180 og træk op bare deres hjemmeside, 204 00:11:26,180 --> 00:11:29,690 huske, at hvis du højreklikker eller kontrollere klik 205 00:11:29,690 --> 00:11:32,140 og se på visning side kilde, typisk 206 00:11:32,140 --> 00:11:34,420 det er en komplet rod i disse dage under kølerhjelmen, men det er fordi 207 00:11:34,420 --> 00:11:38,170 computere er ligeglad white space, så det behøver ikke at se pænt ud. 208 00:11:38,170 --> 00:11:40,240 Men hvis vi zoome ind på dele af det, 209 00:11:40,240 --> 00:11:43,460 bemærke, at Chrome, bare være rart, har farvekodede ting. 210 00:11:43,460 --> 00:11:48,460 Dette er nemlig den allerførste tag, som vi så i en webside. 211 00:11:48,460 --> 00:11:51,750 Og igen, HTML 5, den nyeste version af dette sprog, 212 00:11:51,750 --> 00:11:53,830 behøver det her i begyndelsen, 213 00:11:53,830 --> 00:11:57,820 00:12:03,580 men det er bare en slags standard, der siger, hey verden, her kommer en HTML-fil i version 5. 215 00:12:03,580 --> 00:12:08,920 >> Den interessante del begynder her. Så 00:12:11,640 af de HTML-elementer sidste gang. 217 00:12:11,640 --> 00:12:14,630 Hvad var de to vigtigste børn? 218 00:12:14,630 --> 00:12:17,170 Hoved og krop, ligesom den fyr med den tatovering for et øjeblik siden. 219 00:12:17,170 --> 00:12:19,640 Der er to dele af websiden, hoved og krop, 220 00:12:19,640 --> 00:12:23,750 og tilbagekaldelse altså, at måske den enkleste webside vi kunne gøre ser sådan ud. 221 00:12:23,750 --> 00:12:27,460 Og jeg har indrykket det bare at være slags pæne og ryddelige med min kode, 222 00:12:27,460 --> 00:12:30,710 men hvad der er virkelig vigtigt her er, at der er en vis hierarki til dette. 223 00:12:30,710 --> 00:12:35,420 Og enhver tag, jeg har åbnet Jeg har lukket, og at der er derfor denne symmetri 224 00:12:35,420 --> 00:12:38,300 til alle opmærkningen, som jeg har oprettet. 225 00:12:38,300 --> 00:12:41,620 Så sidste gang vi begyndte at skrive websider på min egen bærbare computer. 226 00:12:41,620 --> 00:12:45,470 Jeg åbnede op tekstredigering, jeg har gemt filen som hello.html, 227 00:12:45,470 --> 00:12:50,190 Jeg derefter trak filen på min browser, og voila, jeg havde en side på internettet. 228 00:12:50,190 --> 00:12:53,110 Nu er det ikke helt tilfældet, havde jeg en side på min harddisk, 229 00:12:53,110 --> 00:12:58,260 og jeg var bogstaveligt talt den eneste person i verden, der ville se, at websiden i en browser. 230 00:12:58,260 --> 00:13:00,670 >> Så i dag, introducerer vi et virkeligt webserver 231 00:13:00,670 --> 00:13:02,750 og begrebet faktisk tjener indhold på internettet 232 00:13:02,750 --> 00:13:04,970 og hvor det hele begynder at passe sammen. 233 00:13:04,970 --> 00:13:08,350 Så det viser sig, at al den tid i CS50 apparatet 234 00:13:08,350 --> 00:13:11,590 du har haft en web-server på din computer. 235 00:13:11,590 --> 00:13:16,560 Vi har i retfærdighed, kun anvendes det til gedit, for Dunk, for GDB og lignende, 236 00:13:16,560 --> 00:13:21,000 men også installeret af os til dig i apparatet er en web-server, 237 00:13:21,000 --> 00:13:23,940 og at webserveren sker for at være fri, et open source, 238 00:13:23,940 --> 00:13:26,580 en af ​​de mest populære i verden, kaldet Apache. 239 00:13:26,580 --> 00:13:31,340 Dets mere tekniske betegnelse er httpd, d er for daemon her, 240 00:13:31,340 --> 00:13:34,110 som er et teknisk ord for en server. 241 00:13:34,110 --> 00:13:38,690 Så installeret i CS50 apparatet er en webserver, og hvad betyder det? 242 00:13:38,690 --> 00:13:43,740 Tja, en web-server er, konceptuelt, nogle server på internettet, der disker op med webindhold. 243 00:13:43,740 --> 00:13:48,630 Når du bliver spurgt efter en fil, det spytter den HTML, der komponerer denne fil, og voila. 244 00:13:48,630 --> 00:13:51,370 Du ser nogle websteds startside. 245 00:13:51,370 --> 00:13:54,970 Men en server er, mere præcist, et stykke software. 246 00:13:54,970 --> 00:13:59,190 Det behøver ikke at være på en fysisk maskine, er det bare være et stykke software kører. 247 00:13:59,190 --> 00:14:01,980 Så CS50 apparatet naturligvis er et stykke software 248 00:14:01,980 --> 00:14:04,270 selvom det er slags foregiver at være en maskine. 249 00:14:04,270 --> 00:14:06,960 Det foregiver at være en computer inde i en computer, 250 00:14:06,960 --> 00:14:11,140 men det betyder blot, at apparatet sikkert kan køre ting som webservere. 251 00:14:11,140 --> 00:14:13,260 Det kan faktisk køre e-mail-servere. 252 00:14:13,260 --> 00:14:16,440 Vi kunne køre en instant messaging-server i apparatet, hvis vi ønskede at, 253 00:14:16,440 --> 00:14:20,780 og ja, vi køre en anden type server, kendt som en database-server, MySQL. 254 00:14:20,780 --> 00:14:22,620 Men mere om det i næste uge. 255 00:14:22,620 --> 00:14:26,400 Det betyder, at jeg rent faktisk kan besøge websider 256 00:14:26,400 --> 00:14:30,480 inde i mit apparat ved hjælp af en browser i maskinen 257 00:14:30,480 --> 00:14:33,600 eller endda på min egen bærbare computer. min Mac eller min pc 258 00:14:33,600 --> 00:14:37,780 Så hvad betyder dette? Det viser sig, at hver gang du kører en Linux-computer, 259 00:14:37,780 --> 00:14:40,910 dens kælenavn er "lokal vært." 260 00:14:40,910 --> 00:14:43,370 Det behøver ikke have et domænenavn, fordi vi ikke har købt et domænenavn 261 00:14:43,370 --> 00:14:46,590 for noget som apparatet, dens standard navn, så er lokal vært. 262 00:14:46,590 --> 00:14:50,470 >> Men for at få apparatet til at starte betjener op websider, 263 00:14:50,470 --> 00:14:52,270 vi nødt til at skabe dem først. 264 00:14:52,270 --> 00:14:55,200 Så lad os gøre det. Lad mig gå ind i en terminal vindue her 265 00:14:55,200 --> 00:14:58,190 og bemærke, at jeg er på min typiske John Harvard prompt. 266 00:14:58,190 --> 00:15:01,670 Lad mig gå videre og skriv ls, og vi vil se nogle velkendte ting fra dette semester, 267 00:15:01,670 --> 00:15:04,580 desktop, downloads, Dropbox og så videre, 268 00:15:04,580 --> 00:15:07,540 men nu starter vi vender vores opmærksomhed mod et par. 269 00:15:07,540 --> 00:15:11,530 På mange Linux webservere der er denne mappe, der hedder offentlig html, 270 00:15:11,530 --> 00:15:15,630 men vi vil springe over, at en for nu og fokus på dette, vhosts. 271 00:15:15,630 --> 00:15:18,850 Enhver ved, hvad en vhost er? 272 00:15:18,850 --> 00:15:21,110 Bare dum jargon for virtuel vært, 273 00:15:21,110 --> 00:15:23,850 og hvad det betyder, er, at på en typisk server 274 00:15:23,850 --> 00:15:26,810 du kan faktisk være vært for flere websteder. 275 00:15:26,810 --> 00:15:31,500 Du kan købe et domæne navn som foo.com, og du kan hoste det på en server. 276 00:15:31,500 --> 00:15:36,100 Men du kan også købe bar.com og hoste det på den samme server. 277 00:15:36,100 --> 00:15:40,250 Årsagen er, browsere er smart nok til at informere serveren 278 00:15:40,250 --> 00:15:45,880 når en bruger anmoder om nogle webside, hvilken domænenavn brugeren ønsker hjemmesiden for. 279 00:15:45,880 --> 00:15:48,760 Så hvad er rart om dette er at du ikke behøver én fysisk server 280 00:15:48,760 --> 00:15:52,040 eller én CS50 apparat for hvert websted, du måske ønsker at oprette. 281 00:15:52,040 --> 00:15:55,520 Du kan bruge den samme server og udvikle en hundrede forskellige hjemmesider. 282 00:15:55,520 --> 00:15:58,770 Og ja, hvis du er en person, der forsøger at starte en hjemmeside, 283 00:15:58,770 --> 00:16:02,100 hvad enten for sjov eller for erhvervslivet, du typisk vil gå ud på internettet, 284 00:16:02,100 --> 00:16:04,650 og du vil betale nogen ti bukke en måned, hundrede dollars om måneden 285 00:16:04,650 --> 00:16:06,670 at være vært for dit websted for dig. 286 00:16:06,670 --> 00:16:11,060 Og den måde, der virker, er de opkrævning andre mennesker 287 00:16:11,060 --> 00:16:13,160 ti bucks en måned eller hundrede bukke en måned 288 00:16:13,160 --> 00:16:17,200 at være vært andres hjemmesider på deres samme server. 289 00:16:17,200 --> 00:16:20,740 Grunden til at de kan gøre det er på grund af denne funktion, der hedder bhosts, 290 00:16:20,740 --> 00:16:23,790 men mere om, at når det drejer sig tid til afgangsprojekter. 291 00:16:23,790 --> 00:16:28,360 >> For nu, lad os bare dykke der. Så cd vhosts, og hvis jeg skriver ls nu, 292 00:16:28,360 --> 00:16:31,370 bemærke, at der er en mappe derinde kaldet lokale vært. 293 00:16:31,370 --> 00:16:33,440 Det er fordi, som standard, er apparatet tal 294 00:16:33,440 --> 00:16:36,160 du nogensinde vil komme til at køre en hjemmeside på et apparat. 295 00:16:36,160 --> 00:16:38,970 Dette er egentlig ikke den virkelige verden, det er ikke en real-verden webserver. 296 00:16:38,970 --> 00:16:41,690 Så lad mig gå ind i den lokale vært, og nu skal vi se derinde 297 00:16:41,690 --> 00:16:44,290 en sidste mappe kaldet HTML. 298 00:16:44,290 --> 00:16:47,080 Så det er en lidt dyb, hierarkiet, men hvis og når 299 00:16:47,080 --> 00:16:51,230 du beslutter dig for at begynde at udvikle flere websteder i løbet af de næste n måneder eller år, 300 00:16:51,230 --> 00:16:54,370 denne form for mappe struktur tendens til at være nyttig. 301 00:16:54,370 --> 00:16:56,560 Lad os nu gå ind i HTML, som jeg lige gjorde, 302 00:16:56,560 --> 00:16:59,010 type LS, og intet er der. 303 00:16:59,010 --> 00:17:01,390 Så lad os nu gå videre og gøre det. Lad mig åbne Chrome 304 00:17:01,390 --> 00:17:07,300 inde i apparatet, lad og mig gå til http://localhost. 305 00:17:07,300 --> 00:17:14,440 Så bogstaveligt navnet for mit apparat, indtaste, og jeg får indeks /. 306 00:17:14,440 --> 00:17:18,290 Dette er egentlig ikke viser mig noget af interesse, 307 00:17:18,290 --> 00:17:23,400 men det viser sig, at det, vi ser, er, at mappe, HTML. 308 00:17:23,400 --> 00:17:25,770 Der er intet i den pågældende mappe lige nu, 309 00:17:25,770 --> 00:17:28,750 så i stedet, hvad jeg har tænkt mig at skal gøre er først at oprette en fil. 310 00:17:28,750 --> 00:17:33,530 Opret en HTML-fil som vi gjorde i mandags, men denne gang sætte det ind i apparatet. 311 00:17:33,530 --> 00:17:36,830 For dem af jer, der forsøger at følge med laptops nu, 312 00:17:36,830 --> 00:17:42,040 lad mig gøre en side, der vil blive dækket i den web-baserede Pset, 313 00:17:42,040 --> 00:17:44,280 men for at få denne til at arbejde for allerførste gang, 314 00:17:44,280 --> 00:17:49,830 du er nødt til at køre denne kommando: sudo service httpd start. 315 00:17:49,830 --> 00:17:52,670 Og dette, igen vil blive gentaget i det sidste Pset, 316 00:17:52,670 --> 00:17:55,460 men hvis du spiller sammen derhjemme nu, webserveren 317 00:17:55,460 --> 00:17:58,660 er slukket i apparatet, og det er således, at det ikke sap op RAM 318 00:17:58,660 --> 00:18:01,960 og hukommelse i 7 uger ud af semesteret, hvor vi ikke har brug for det. 319 00:18:01,960 --> 00:18:05,190 Så du er nødt til at køre denne kommando én gang, og du vil få et output sådan. 320 00:18:05,190 --> 00:18:07,920 Så skulle du være i stand til at spille sammen her. 321 00:18:07,920 --> 00:18:10,330 Lad os nu gå tilbage i denne mappe. 322 00:18:10,330 --> 00:18:12,770 Denne mappe er tom, så lad mig starte med at oprette 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 åben som sædvanlig. Lad mig gøre doctype, html, 325 00:18:20,930 --> 00:18:25,270 html, lad mig komme foran mig og begynder at lukke mine tags i forvejen. 326 00:18:25,270 --> 00:18:28,380 Nu har jeg hovedet. Lad mig gå videre og lukke hovedet, 327 00:18:28,380 --> 00:18:32,450 lad mig nu gøre titlen på den side, hej verden ligesom sidste gang, 328 00:18:32,450 --> 00:18:34,790 luk titel, nu lad mig gøre en krop. 329 00:18:34,790 --> 00:18:38,130 Herinde vil jeg sige hej, verden med nogle exclams 330 00:18:38,130 --> 00:18:40,550 at gøre det klart, at det er en anden streng. 331 00:18:40,550 --> 00:18:45,800 Tæt krop, og lad mig nu gå videre og fil spare. 332 00:18:45,800 --> 00:18:48,470 Lad mig gå tilbage til min terminal vindue, og hvis jeg skriver ls, 333 00:18:48,470 --> 00:18:51,830 Jeg vil formodentlig se hello.html. Og det gør jeg. 334 00:18:51,830 --> 00:18:55,070 Så nu lad os gå tilbage til min browser, klik genindlæse, 335 00:18:55,070 --> 00:18:58,930 og du kan se, vi er faktisk inde i denne HTML mappe. 336 00:18:58,930 --> 00:19:02,310 Jeg kan ikke se en webside endnu, det er Apache, webserveren, 337 00:19:02,310 --> 00:19:04,670 bare vise mig listen indholdet af denne mappe. 338 00:19:04,670 --> 00:19:08,260 Ligesom Mac OS eller Windows vil typisk gøre på din egen lokale harddisk. 339 00:19:08,260 --> 00:19:12,730 Så hvis jeg ønsker at se denne webside, kan jeg klikke på dette lille link her, hello.html, 340 00:19:12,730 --> 00:19:15,160 og ja, det er, hvad jeg havde forventet at se. 341 00:19:15,160 --> 00:19:18,080 Nu, igen, dette er ikke en webadresse, som nogen af ​​jer kan besøge lige nu, 342 00:19:18,080 --> 00:19:20,760 fordi det for dig, host lokale, hvis du har en bærbar her, 343 00:19:20,760 --> 00:19:23,050 Det refererer til din egen instans af apparatet. 344 00:19:23,050 --> 00:19:25,900 Det er på min egen personlige apparat, 345 00:19:25,900 --> 00:19:29,080 men det er lidt dumt for mig at have, at have 346 00:19:29,080 --> 00:19:34,480 en bruger som mig klikke på hello.html til rent faktisk at se indholdet af denne side. 347 00:19:34,480 --> 00:19:42,590 Det viser sig, at webservere som Apache lad du har en standard fil til en webserver. 348 00:19:42,590 --> 00:19:44,640 Bemærk her har vi hello.html. 349 00:19:44,640 --> 00:19:48,410 Hvad er kommandoen i Linux til at omdøbe en fil? 350 00:19:48,410 --> 00:19:50,870 >> MV, for træk. Så lad mig gøre det, 351 00:19:50,870 --> 00:19:55,870 og lad mig omdøbe hello.html til index.html. 352 00:19:55,870 --> 00:19:58,610 Lad mig skrive ls for at bekræfte det er nu blevet omdøbt. 353 00:19:58,610 --> 00:20:03,250 Nu dette vil - hvis jeg gå tilbage til lokale vært, 354 00:20:03,250 --> 00:20:06,710 bemærke nu, at jeg automatisk er begyndt at se denne webside. 355 00:20:06,710 --> 00:20:11,740 Dette er identisk med min faktisk gør / index.html, 356 00:20:11,740 --> 00:20:14,740 men nice er nu, at webserveren er regne, 357 00:20:14,740 --> 00:20:18,830 åh, hvis du har en fil, der, af menneskelige konventioner, kaldes index.html, 358 00:20:18,830 --> 00:20:21,200 Lad mig vise brugeren, at filen som standard 359 00:20:21,200 --> 00:20:25,290 snarere end nogle dumme katalogliste der er slet ikke brugervenlig. 360 00:20:25,290 --> 00:20:28,900 Faktisk har de fleste websteder, du besøger på internettet ikke har en liste over filer at klikke på, 361 00:20:28,900 --> 00:20:34,040 de bare vise dig indholdet. Så det er, hvordan vi kan gøre det, index.html. 362 00:20:34,040 --> 00:20:37,000 Så dette er sjovt og godt, men det er en temmelig simpel webside. 363 00:20:37,000 --> 00:20:41,640 Lad mig gå videre og åbne index.html i mine vhosts, 364 00:20:41,640 --> 00:20:47,620 lokale værter, html bibliotek, og lad os tilføje noget af større interesse. 365 00:20:47,620 --> 00:20:56,120 Så der er hej verden, lad os i stedet sige "Dette er CS50, Harvard College er. . . ' 366 00:20:56,120 --> 00:21:00,000 Så i begyndelsen af ​​kursuskatalog beskrivelse af nogle slags der. 367 00:21:00,000 --> 00:21:03,780 Nu, hvis jeg genindlæse, skal jeg se det i min hjemmeside. 368 00:21:03,780 --> 00:21:09,560 Okay, og jeg kan se det, men formoder at jeg ønsker at nu vise nogle mere indhold i denne fil. 369 00:21:09,560 --> 00:21:15,160 Jeg kunne gå ned her og sige, forudsætninger ingen, 370 00:21:15,160 --> 00:21:18,740 selv om nogle af jer sikkert er ligesom, 'Ha ha ha, ingen forudsætninger. " 371 00:21:18,740 --> 00:21:24,320 Men - officielt. Så genindlæse, og nu har vi den samme ejendommelighed, som vi så sidste gang. 372 00:21:24,320 --> 00:21:26,240 Men hvorfor er det? Det var et simpelt fix. 373 00:21:26,240 --> 00:21:31,440 Hvorfor er denne side brudt? 374 00:21:31,440 --> 00:21:34,170 [Studerende, uforståelig] >> Ja, vi har løst det før 375 00:21:34,170 --> 00:21:37,440 ved udtrykkeligt at fortælle browseren 'sætte et linjeskift her. " 376 00:21:37,440 --> 00:21:39,440 Og det er fordi, igen, er en browser kun vil gøre 377 00:21:39,440 --> 00:21:42,610 eksplicit, hvad det kodesprog fortæller det at gøre, 378 00:21:42,610 --> 00:21:45,730 så selvom du måske har ramt indtaste én eller to gange eller endda ti gange, 379 00:21:45,730 --> 00:21:49,870 det kommer til at kombinere, at alle i et enkelt rum, blot ved konvention. 380 00:21:49,870 --> 00:21:52,770 Så hvis du virkelig ønsker et linjeskift, du nødt til at bruge br tag, 381 00:21:52,770 --> 00:21:56,840 og nu varsel, ligesom mandag, satte jeg den / indersiden af ​​dette mærke, 382 00:21:56,840 --> 00:22:00,090 kun fordi dette bare ikke føles rigtigt 383 00:22:00,090 --> 00:22:02,990 at starte et linjeskift og derefter stoppe det med noget i mellem. 384 00:22:02,990 --> 00:22:07,740 >> Så konventionen i HTML, er at åbne og lukke et tag samtidigt. 385 00:22:07,740 --> 00:22:11,050 Som en sidebemærkning, vil du se en masse hjemmesider i bøger ikke gør det. 386 00:22:11,050 --> 00:22:14,240 Det er korrekt at gøre eller ikke at gøre det, men vi vil hævde 387 00:22:14,240 --> 00:22:17,430 at design-wise og stilistisk, det er bare bedre 388 00:22:17,430 --> 00:22:20,540 fordi derefter hver tag er både åbnes og lukkes en eller anden måde. 389 00:22:20,540 --> 00:22:23,370 Så lad os nu gemme og genindlæse. Gå tilbage til browseren, okay. 390 00:22:23,370 --> 00:22:26,680 Nu er vi gør nogle fremskridt, men det er ikke helt nok. 391 00:22:26,680 --> 00:22:33,210 Lad os gå videre og begynde at skrive i nogle længere brødtekst. 392 00:22:33,210 --> 00:22:40,610 Så lad os sige, "En hurtig brun ræv springer over en doven hund. ' 393 00:22:40,610 --> 00:22:42,700 Og lad mig bare kopiere og indsætte det et par gange 394 00:22:42,700 --> 00:22:45,040 således at vi har et tekstafsnit. 395 00:22:45,040 --> 00:22:47,780 Lad mig gå tilbage herovre. Så det ser ikke meget god. 396 00:22:47,780 --> 00:22:50,000 Jeg har et linjeskift, så det er okay, 397 00:22:50,000 --> 00:22:52,140 men nu, når vi at komme til det punkt at have en webside 398 00:22:52,140 --> 00:22:55,640 der har masser af indhold og ikke blot enkelte linjer til at demonstrere HTML, 399 00:22:55,640 --> 00:22:58,570 kan vi begynde at tænke på disse ting som faktiske stykker. 400 00:22:58,570 --> 00:23:01,590 Og vi kan begynde at strukturere vores webside lidt mere rent. 401 00:23:01,590 --> 00:23:05,120 Og ja, hvad jeg kan gøre, er at gå op her inde i min krop tag, 402 00:23:05,120 --> 00:23:09,400 og ved du hvad, hvis 'Dette er CS50. . . ' virkelig demarks begyndelsen af ​​et afsnit, 403 00:23:09,400 --> 00:23:11,310 godt, lad os mærke det som sådan. 404 00:23:11,310 --> 00:23:13,570 Lad mig led teksten, blot ved konvention, lad mig sige 405 00:23:13,570 --> 00:23:15,710 at dette stykke slutter her, 406 00:23:15,710 --> 00:23:18,320 og derefter snarere end gør dette linjeskift, lad mig bare sige 407 00:23:18,320 --> 00:23:23,300 at dette hører til der, og som et nyt afsnit, 408 00:23:23,300 --> 00:23:27,610 og jeg vil bare hurtigt led ved bare clobbering alt dette ting. 409 00:23:27,610 --> 00:23:30,660 >> Så nu har vi en indrykket afsnit der, 410 00:23:30,660 --> 00:23:33,510 og nu er vores markup er begyndt at få lidt mere 411 00:23:33,510 --> 00:23:37,070 semantisk overensstemmelse med, hvad vi prøver at gøre. 412 00:23:37,070 --> 00:23:40,130 Vi har et afsnit, så lad os kalde det et afsnit med p tag. 413 00:23:40,130 --> 00:23:43,370 Vi har et andet stykke, så lad os kalde det et afsnit med p tag. 414 00:23:43,370 --> 00:23:45,850 Og nu, hvad browseren vil typisk gøre 415 00:23:45,850 --> 00:23:48,490 er ligesom i en engelsk bog eller essay, 416 00:23:48,490 --> 00:23:51,280 hvor du typisk se nogle linjeskift mellem afsnit. 417 00:23:51,280 --> 00:23:53,720 Browsere vil gøre det for dig automatisk. 418 00:23:53,720 --> 00:23:56,680 Så nu har vi to stykker, og vi kan fortsætte dette. 419 00:23:56,680 --> 00:23:58,770 Men, selvfølgelig, på internettet, når du har organer tekst 420 00:23:58,770 --> 00:24:01,370 Det er ikke typisk bare enorme klatter af tekst. 421 00:24:01,370 --> 00:24:04,040 Der er ofte hyperlinks derinde. 422 00:24:04,040 --> 00:24:07,250 Så hvis vi ønsker at for eksempel indeholde nogle links der, 423 00:24:07,250 --> 00:24:10,760 Antag, hvad der kunne være af interesse uanset webside Jeg skaber her er - 424 00:24:10,760 --> 00:24:12,780 Lad mig gå til Google.com, 425 00:24:12,780 --> 00:24:16,540 og lad mig søge efter en hurtig brun ræv. 426 00:24:16,540 --> 00:24:22,150 Gå til Google billeder, og hvad med - det er nuttet. 427 00:24:22,150 --> 00:24:27,420 Vi vil gå med dette. Så her har vi en hurtig brun ræv springer over en doven hund. 428 00:24:27,420 --> 00:24:30,560 Så hvad jeg har tænkt mig at gøre her, blot af hensyn til demonstration, 429 00:24:30,560 --> 00:24:32,950 er Antag, at dette billede var på min server, 430 00:24:32,950 --> 00:24:35,240 og jeg havde været at skabe disse billeder. 431 00:24:35,240 --> 00:24:38,720 Hvad jeg vidste bare var højreklikke eller kontrollere klik på billedet, 432 00:24:38,720 --> 00:24:42,370 og hvad du vil se i de fleste browsere er lidt menu - 433 00:24:42,370 --> 00:24:48,800 stoppe med at gøre det - en lille menu, der giver dig mulighed for at vælge kopiere link placering eller kopiere URL. 434 00:24:48,800 --> 00:24:52,750 Så lad mig gå tilbage nu til min HTML, og formoder, at jeg vil 435 00:24:52,750 --> 00:24:56,420 til hyperlink dette til en anden webside. 436 00:24:56,420 --> 00:24:58,640 >> Hvad var det mærke opfordret til det? 437 00:24:58,640 --> 00:25:01,650 [Studerende, uforståelig] >> Yeah. Så a href for hyper reference. 438 00:25:01,650 --> 00:25:04,660 Lad mig gå videre og indsæt det i. 439 00:25:04,660 --> 00:25:07,290 Det er en temmelig lang URL, så lad mig ind ud. 440 00:25:07,290 --> 00:25:09,950 Luk parentes, så nu mærke til jeg er helt herover 441 00:25:09,950 --> 00:25:11,960 fordi den pågældende webadresse tilfældigvis være temmelig lang. 442 00:25:11,960 --> 00:25:15,180 Lad mig rulle over her til slutningen af ​​hurtige brune ræv, 443 00:25:15,180 --> 00:25:18,830 og så lad mig lukke dette tag med 00:25:21,280 hvor jeg kun lukket navnet på mærket. 445 00:25:21,280 --> 00:25:24,470 Lad mig nu gå videre og gemme denne fil, genindlæse websiden, 446 00:25:24,470 --> 00:25:27,880 og nu, som standard, er der vil blive understreget med blåt for mig, 447 00:25:27,880 --> 00:25:31,980 men ja, kan jeg nu klikke på denne og voila. Der er det billede. 448 00:25:31,980 --> 00:25:33,990 Og det behøvede ikke at være et billede, det kunne have knyttet 449 00:25:33,990 --> 00:25:36,270 til nogle andre tilfældige hjemmeside på internettet. 450 00:25:36,270 --> 00:25:39,610 Jeg kunne gøre det, for eksempel med CS50, så en sidste eksempel her. 451 00:25:39,610 --> 00:25:42,730 'Dette er CS50 "kan give mening at gå en, href = 452 00:25:42,730 --> 00:25:50,340 http://www.cs50.net tæt citat, tæt anker. 453 00:25:50,340 --> 00:25:53,990 Så nu det er en endnu kortere URL, og denne gang vi kommer ikke til at linke til et billede. 454 00:25:53,990 --> 00:25:57,880 Vi i stedet kommer til at linke til en anden side. 455 00:25:57,880 --> 00:25:59,840 Nu har vi et billede her. 456 00:25:59,840 --> 00:26:02,970 Jeg mener ligesom vi kan gøre det lidt bedre end blot at linke til et billede. 457 00:26:02,970 --> 00:26:05,760 Hvad hvis vi ønsker at rent faktisk legemliggøre det i vores egen webside? 458 00:26:05,760 --> 00:26:09,290 >> Nå, hvad jeg kan gøre her er, snarere end link til denne grafik, 459 00:26:09,290 --> 00:26:14,690 Lad mig i stedet skære URL'en, og vi vil slippe af med den hyperlink og rydde op. 460 00:26:14,690 --> 00:26:17,190 Og vi vil gå ned her og slippe af med dette. 461 00:26:17,190 --> 00:26:20,910 Vi har ikke rigtig brug for alle disse sætninger nu, så lad mig forkorte den side en lille smule. 462 00:26:20,910 --> 00:26:24,530 Og derefter ned her lad mig gå videre i et nyt stykke, 463 00:26:24,530 --> 00:26:30,100 sige, at jeg ønsker ikke tekst nu, jeg vil have et billede, hvis kilde vil være, at URL. 464 00:26:30,100 --> 00:26:33,100 Et billede, som et linjeskift, er enten der eller det er ikke. 465 00:26:33,100 --> 00:26:35,900 Så lad mig straks lukke det mærke. 466 00:26:35,900 --> 00:26:39,440 Lad mig gå videre nu, og luk det afsnit, jeg er inde, 467 00:26:39,440 --> 00:26:43,010 og hvis alt går godt med hej, verden, hvis jeg genindlæse nu, 468 00:26:43,010 --> 00:26:45,520 Jeg, ja, se til højre inde i min egen webside et billede. 469 00:26:45,520 --> 00:26:48,570 Så nu har vi et billede tag, et anker-tag og lignende, 470 00:26:48,570 --> 00:26:51,320 og for god foranstaltning, så lad mig gøre en anden ting, der er ofte overset 471 00:26:51,320 --> 00:26:55,900 på hjemmesider i disse dage: Lad os give nogle beskrivende tekst til dette billede 472 00:26:55,900 --> 00:26:58,090 for folk, der er på en mobil enhed 473 00:26:58,090 --> 00:27:00,640 og derfor måske ikke være i stand til at downloade billedet meget hurtigt, 474 00:27:00,640 --> 00:27:03,310 for folk der er blinde og kan ikke være i stand til at se billedet 475 00:27:03,310 --> 00:27:06,480 men de kan have en skærmlæser, der kan fortælle dem, hvad dette billede er af. 476 00:27:06,480 --> 00:27:09,100 Og at gøre det, der er en anden egenskab for billedet tags 477 00:27:09,100 --> 00:27:11,290 kaldet alt for alternativ tekst. 478 00:27:11,290 --> 00:27:14,650 Og hvad jeg kan gøre her er at sige, 'Dette er en hurtig brun ræv.' 479 00:27:14,650 --> 00:27:17,650 Således at selv om humane kan ikke se billedet på skærmen, 480 00:27:17,650 --> 00:27:20,560 han eller hun kan i det mindste hører, som med en vis stykke software, 481 00:27:20,560 --> 00:27:23,080 hvad der faktisk er der på skærmen. 482 00:27:23,080 --> 00:27:25,040 >> Det vil ikke ændre æstetik siden, 483 00:27:25,040 --> 00:27:27,640 men det er bestemt god praksis for brugerne. 484 00:27:27,640 --> 00:27:31,760 Okay, lad os forlade denne webside i sin nuværende form, 485 00:27:31,760 --> 00:27:33,890 men lad os se om vi ikke kan nu præsentere 486 00:27:33,890 --> 00:27:36,210 nogle bedre metoder til at skrive disse websider, 487 00:27:36,210 --> 00:27:39,980 nogle erfaringer, der vil tjene os godt som vores sider får mere og mere kompleks. 488 00:27:39,980 --> 00:27:42,220 Hvad vi ikke vil gøre i løbet af de næste par uger 489 00:27:42,220 --> 00:27:46,810 er at gå dig gennem alle de snesevis af HTML-tags, at der er. 490 00:27:46,810 --> 00:27:49,800 Meget gerne i bunden tilbage i uge 0, er det sandsynligvis vil være tilstrækkeligt 491 00:27:49,800 --> 00:27:52,120 at give et højt niveau overblik over nogle af de begreber, 492 00:27:52,120 --> 00:27:54,530 en hurtig rundvisning i nogle af blokkene du var sandsynligvis i stand til, 493 00:27:54,530 --> 00:27:58,240 temmelig komfortabelt, til at navigere på egen hånd, de forskellige puslespilsbrikker. 494 00:27:58,240 --> 00:28:00,460 Og det kommer til at ske igen i HTML, mest sandsynligt, 495 00:28:00,460 --> 00:28:04,320 hvorved der er rigelige ressourcer på internettet, at vi vil pege dig på, 496 00:28:04,320 --> 00:28:06,920 forskellige lærebøger, hvis du foretrækker at læse en lærebog, 497 00:28:06,920 --> 00:28:10,560 der vil lede dig gennem alle de forskellige ting, du kan gøre med HTML, 498 00:28:10,560 --> 00:28:16,100 men virkelig, vi har set hidtil i HTML fleste af de grundlæggende begreber. 499 00:28:16,100 --> 00:28:19,900 Vi har begrebet tags, der åbnes, bliver tags lukket. 500 00:28:19,900 --> 00:28:22,100 Nogle mærker, der både åbnes og lukkes 501 00:28:22,100 --> 00:28:24,620 i den forstand, at de er tomme, og der bør ikke være noget inde i dem 502 00:28:24,620 --> 00:28:27,490 som et billede tag eller et linjeskift, der er lige der. 503 00:28:27,490 --> 00:28:32,330 Vi har også set allerede på begrebet en attribut, ligesom alt eller kilde. 504 00:28:32,330 --> 00:28:36,410 Bemærk, at disse ord har en tendens efter sædvane være til korte og koncise. 505 00:28:36,410 --> 00:28:39,140 >> Vi har ikke diskretion over, hvad disse ting kaldes, 506 00:28:39,140 --> 00:28:42,060 en anden, der opfandt HTML kom op med disse navne. 507 00:28:42,060 --> 00:28:44,710 Så du bare nødt til at begynde at vide eller se op, når som helst du har brug for dem, 508 00:28:44,710 --> 00:28:47,160 hvad navnene er for disse tags og attributter. 509 00:28:47,160 --> 00:28:49,510 I forbindelse med disse egenskaber, tilskriver generelt 510 00:28:49,510 --> 00:28:52,900 ændre adfærd af nogle tag. 511 00:28:52,900 --> 00:28:55,710 I dette tilfælde fortæller kildeattributten billedet tag 512 00:28:55,710 --> 00:28:57,940 hvad kilden af ​​billedet bør være. 513 00:28:57,940 --> 00:29:04,460 Href-attributten fortæller ankerkode hvad det burde faktisk være linker til. 514 00:29:04,460 --> 00:29:06,800 Men med hensyn til strukturen af ​​en web-side, selv om Facebook 515 00:29:06,800 --> 00:29:09,680 og Google og lignende ligne en komplet rod 516 00:29:09,680 --> 00:29:12,560 under emhætten ved første øjekast, hvis du begynder at læse igennem det 517 00:29:12,560 --> 00:29:16,950 mere metodisk, de alle følge denne grundlæggende, grundlæggende struktur. 518 00:29:16,950 --> 00:29:19,660 Men vi kan forbedre stilisering af disse ting. 519 00:29:19,660 --> 00:29:24,180 Så lad mig gå til nogle eksempler, som jeg forberedt på forhånd. 520 00:29:24,180 --> 00:29:27,280 Lad mig gå videre og kopiere dem fra en anden mappe her 521 00:29:27,280 --> 00:29:29,380 og sætte dem ind i denne mappe. 522 00:29:29,380 --> 00:29:32,210 På forhånd var, hvad jeg gjorde forberede et par 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 Lad mig gå videre og åbne den første af disse filer, 525 00:29:38,740 --> 00:29:42,570 og lad os se om vi ikke kan begynde at skabe vores egen søgemaskine. 526 00:29:42,570 --> 00:29:46,530 Øverst i denne fil, er som normalt er tilfældet i klassen, bare en masse kommentarer. 527 00:29:46,530 --> 00:29:49,760 I HTML, selv om de måder, hvorpå du starter en kommentar 528 00:29:49,760 --> 00:29:55,640 er <-! og så er du inde i en kommentar, en multi-line kommentar. 529 00:29:55,640 --> 00:29:59,800 Når du er klar til at stoppe denne kommentar, kan du gøre ->. 530 00:29:59,800 --> 00:30:02,380 Så alt i toppen i blå er bare en kommentar. 531 00:30:02,380 --> 00:30:04,620 >> Dette er min doctype erklæring, som igen, 532 00:30:04,620 --> 00:30:07,080 kan du bare kopiere og indsætte på tro, for nu. 533 00:30:07,080 --> 00:30:10,410 Dette blot fortæller browseren, 'Her kommer nogle HTML 5 «. 534 00:30:10,410 --> 00:30:13,600 Nedenfor dette, på linie 14 er den første af mine faktiske koder, 535 00:30:13,600 --> 00:30:16,900 og det bare siger, som før, her kommer nogle HTML, 536 00:30:16,900 --> 00:30:19,460 her kommer lederen af ​​min side, her kommer titlen, 537 00:30:19,460 --> 00:30:23,900 og derefter omvendt, det er det for den titel, det er det for hovedet. 538 00:30:23,900 --> 00:30:26,460 Her nu kommer kroppen af ​​min side. 539 00:30:26,460 --> 00:30:31,040 Så et par nye mærker nu: h1 står for udgiftsområde 1. 540 00:30:31,040 --> 00:30:33,850 Der er en tradition i HTML for mange år tilbage 541 00:30:33,850 --> 00:30:37,990 at have forskellige størrelser af tekst. 542 00:30:37,990 --> 00:30:41,980 Og tilbage i dag, hver enkelt betød generelt bare stor og fed. 543 00:30:41,980 --> 00:30:45,860 Men der er også h2, som er store, men ikke helt så stor og fed. 544 00:30:45,860 --> 00:30:49,320 Der er h3, som er form for store, men ikke nær så stor og fed, 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 Disse dage, dog er h1, h2 og h3 virkelig betød 547 00:30:55,550 --> 00:30:57,980 at have mere semantisk betydning for dem, 548 00:30:57,980 --> 00:31:01,100 hvorved h1 er virkelig en overskrift: overskriften på en webside, 549 00:31:01,100 --> 00:31:04,210 overskriften i en kolonne eller sådan noget af teksten. 550 00:31:04,210 --> 00:31:09,030 Så jeg har bevidst sagt h1 CS50 søgning> h1 551 00:31:09,030 --> 00:31:12,640 at Præcisér at dette virkelig overskriften, titlen på min side. 552 00:31:12,640 --> 00:31:14,850 Ikke titlen i titellinjen forstand, 553 00:31:14,850 --> 00:31:18,960 men den titel, som du faktisk se på selve websiden, i kroppen. 554 00:31:18,960 --> 00:31:20,990 Nu dette, kan du sikkert gætte, hvad det er, 555 00:31:20,990 --> 00:31:23,110 selv om vi har et par nye stykker af syntaks. 556 00:31:23,110 --> 00:31:25,930 Dette er en form. Så nettet virkelig bliver interessant 557 00:31:25,930 --> 00:31:28,770 når websites tage input fra brugerne. 558 00:31:28,770 --> 00:31:31,700 I denne klasse, i det problem sat på web programmering 559 00:31:31,700 --> 00:31:33,880 Vi kommer ikke til at lave en hjemmeside, per se, 560 00:31:33,880 --> 00:31:37,570 med statisk indhold, der viser fotografier, som du har taget, 561 00:31:37,570 --> 00:31:40,010 eller det er min cv, og ting om mig, 562 00:31:40,010 --> 00:31:42,450 fordi disse ting er relativt nemme at sætte sammen. 563 00:31:42,450 --> 00:31:44,400 Det er svært at gøre tingene smukke på nettet, 564 00:31:44,400 --> 00:31:46,390 men i det mindste sætte op indhold er temmelig triviel. 565 00:31:46,390 --> 00:31:49,380 Men tingene bliver virkelig interessant, når nogen kan besøge din hjemmeside 566 00:31:49,380 --> 00:31:52,260 og give input og kan udfylde formularer, 567 00:31:52,260 --> 00:31:55,800 kan afkrydse afkrydsningsfelterne og kan interagere med din hjemmeside. 568 00:31:55,800 --> 00:31:57,780 Og ja, sandsynligvis hvert websted, du holder af 569 00:31:57,780 --> 00:32:00,710 disse dage, i detaljer, er en eller anden måde interaktiv. 570 00:32:00,710 --> 00:32:03,110 Facebook, Google og lignende, der tager input fra brugeren 571 00:32:03,110 --> 00:32:05,100 og frembringe tilpassede output. 572 00:32:05,100 --> 00:32:07,780 >> Så lad os begynde at gøre det nu. Lad os overgang nu 573 00:32:07,780 --> 00:32:11,150 fra blot ved hjælp af HTML til markup af statisk indhold 574 00:32:11,150 --> 00:32:14,790 som i stedet en leverance mekanisme til dynamisk indhold. 575 00:32:14,790 --> 00:32:17,350 Og mod dette formål, så lad os gennemføre vores egen søgemaskine. 576 00:32:17,350 --> 00:32:20,820 Lad os gøre det på følgende måde. Her er den form tag. 577 00:32:20,820 --> 00:32:24,090 Handlingen attribut angiver, at når brugeren udfylder denne formular 578 00:32:24,090 --> 00:32:28,400 med deres tastatur, vil det blive forelagt til denne webadresse her. 579 00:32:28,400 --> 00:32:31,230 Så jeg er lidt snyd. Det kommer til at tage os lidt længere 580 00:32:31,230 --> 00:32:33,780 end én klasse at gennemføre hele søgemaskine, 581 00:32:33,780 --> 00:32:35,880 så vi vil bare gøre den forreste ende, så at sige. 582 00:32:35,880 --> 00:32:38,650 Vi vil gøre den del, der lader brugeren søge, og vi vil sortere i punt til Google 583 00:32:38,650 --> 00:32:40,950 den hårde del af at finde søgeresultater, 584 00:32:40,950 --> 00:32:43,520 men specifikt, jeg vil tale med Googles webserver 585 00:32:43,520 --> 00:32:46,710 ved hjælp af en af ​​to meget populære metoder. 586 00:32:46,710 --> 00:32:50,000 Én er få, en anden, at vi til sidst vil se, at post, 587 00:32:50,000 --> 00:32:52,660 selv om der er andre, der så ofte bruges. 588 00:32:52,660 --> 00:32:56,440 Så få bare fremmaner ideen om, jeg ønsker at få noget indhold, få nogle søgeresultater. 589 00:32:56,440 --> 00:32:58,440 Dette, kan du måske gætte, hvad dette betyder. 590 00:32:58,440 --> 00:33:01,900 Dette er en form for input, er det i virkeligheden kommer til at ligne et tekstfelt, 591 00:33:01,900 --> 00:33:05,200 og navnet på den indgang, navnet på denne variabel, så at sige, 592 00:33:05,200 --> 00:33:08,610 vil blive Q for forespørgsel ved overenskomst. 593 00:33:08,610 --> 00:33:11,700 Og igen, er typen af ​​dette input vil ikke være et afkrydsningsfelt; 594 00:33:11,700 --> 00:33:13,890 det kommer ikke til at være en menu, det vil være et tekstfelt 595 00:33:13,890 --> 00:33:18,060 som angivet ved denne attribut her, og denne tekstboks, 596 00:33:18,060 --> 00:33:20,680 ligesom et linjeskift, er enten der eller ej. 597 00:33:20,680 --> 00:33:24,480 Så vi har en tom element med skråstreg inde at mærke. 598 00:33:24,480 --> 00:33:28,050 Så jeg har tænkt mig at sætte et linjeskift, og du kan måske gætte, hvad det vil gøre. 599 00:33:28,050 --> 00:33:30,210 Det er en anden form for formular input. 600 00:33:30,210 --> 00:33:32,350 >> Denne ene kommer til at blive brugt til at sende formularen. 601 00:33:32,350 --> 00:33:36,140 Så det vil være den store knap, som brugeren kan klikke at sende formularen, 602 00:33:36,140 --> 00:33:40,800 og etiketten på denne knap vil være "CS50 Søg '. 603 00:33:40,800 --> 00:33:44,170 Luk form, luk organ, tæt HTML. 604 00:33:44,170 --> 00:33:46,280 Lad os se hvad vi har i form af denne webside. 605 00:33:46,280 --> 00:33:48,260 Så lad mig gå til min browser, 606 00:33:48,260 --> 00:33:50,360 lad mig gå, stadig, at lokale vært. 607 00:33:50,360 --> 00:33:54,650 Det er stadig index.html, så hvis jeg ønsker at se denne fil, der hedder search0, 608 00:33:54,650 --> 00:33:59,710 Jeg kan simpelthen gøre / search0.html, enter - 609 00:33:59,710 --> 00:34:01,880 og den første af mine fejltagelser. 610 00:34:01,880 --> 00:34:04,400 Hvad sker der? Jeg helt klart ikke har tilladelse 611 00:34:04,400 --> 00:34:06,430 at få adgang til denne fil, en eller anden grund. 612 00:34:06,430 --> 00:34:10,170 Men det er fordi, i modsætning til arbejde, vi har gjort hidtil i C, 613 00:34:10,170 --> 00:34:14,340 hvor de programmer, du skriver antages at være runable af dig, 614 00:34:14,340 --> 00:34:17,590 eksekverbare af dig, det er faktisk ikke tilfældet på internettet, 615 00:34:17,590 --> 00:34:21,010 hvorved nogle gange er du måske ønsker at oprette filer på en server, 616 00:34:21,010 --> 00:34:23,310 men du ikke ønsker, at hele verden skal kunne se dem. 617 00:34:23,310 --> 00:34:25,469 Snarere, du ønsker i verden for at se nogle filer 618 00:34:25,469 --> 00:34:27,730 men ikke andre, bare for privatlivets fred skyld. 619 00:34:27,730 --> 00:34:30,730 Så det er mere af en opt-in, når du gør ting på internettet. 620 00:34:30,730 --> 00:34:32,810 Og så lad mig faktisk skrive ls her, 621 00:34:32,810 --> 00:34:37,440 og du kan se de filer jeg har, men huske på, at hvis jeg gør ls-l for længe, 622 00:34:37,440 --> 00:34:41,520 Jeg får en længere liste, der giver mig nogle flere detaljer om disse filer 623 00:34:41,520 --> 00:34:45,139 der er nu faktisk for første gang relevant for os. 624 00:34:45,139 --> 00:34:47,840 Bemærk, at på den yderste højrefløj er navnene på mine filer, 625 00:34:47,840 --> 00:34:50,690 og derefter det tidspunkt, hvor de senest blev ændret eller kopieret. 626 00:34:50,690 --> 00:34:54,370 Dette antal her er hvad? Kan du huske? 627 00:34:54,370 --> 00:34:56,400 Størrelsen i bytes, hvor stor filen er. 628 00:34:56,400 --> 00:34:59,520 >> Så jeg synes at have en vis form for logo herinde, der er større end alle de andre filer. 629 00:34:59,520 --> 00:35:03,610 Det er hvem jeg er, det er hvad jeg er og hvad gruppe jeg er i. 630 00:35:03,610 --> 00:35:07,430 Men så herovre til venstre er en smule kryptisk sekvens, 631 00:35:07,430 --> 00:35:10,040 og vi talte, tror jeg, kort om dette i fortiden, 632 00:35:10,040 --> 00:35:12,050 men dette har at gøre med tilladelser. 633 00:35:12,050 --> 00:35:14,020 Og selv hvis det er lidt diset, 634 00:35:14,020 --> 00:35:17,270 RW betyder sandsynligvis læse & skrive. 635 00:35:17,270 --> 00:35:22,560 Så viser det sig, at disse bindestreger betegner forskellige sæt tilladelser for forskellige mennesker. 636 00:35:22,560 --> 00:35:24,730 Og mønstret er det væsentlige, som følger. 637 00:35:24,730 --> 00:35:27,650 Når du ser en sekvens af streger her, de ser som følger. 638 00:35:27,650 --> 00:35:30,450 Der er en streg, så er der tre yderligere tankestreger, 639 00:35:30,450 --> 00:35:33,390 så er der endnu tre, så er der en anden tre. 640 00:35:33,390 --> 00:35:36,800 Den første er enten en bindestreg eller det er annonce for mappe. 641 00:35:36,800 --> 00:35:40,220 Så man er ret nemt. Hvis det er en mappe, der står d, ellers er det en bindestreg. 642 00:35:40,220 --> 00:35:44,080 Der er et par andre sager, men for nu vil vi bare bekymre sig om filer og mapper. 643 00:35:44,080 --> 00:35:48,090 Disse næste tre streger - og jeg har kunstigt indsat rummene. 644 00:35:48,090 --> 00:35:50,490 De var naturligvis ikke der når vi så dem for et øjeblik siden. 645 00:35:50,490 --> 00:35:52,900 Disse er filen ejer tilladelser, 646 00:35:52,900 --> 00:35:55,840 og huske fra en anden siden, at det blev læst & skrive. 647 00:35:55,840 --> 00:35:58,560 Det var fordi jeg som den person, der oprettede denne fil for et øjeblik siden, 648 00:35:58,560 --> 00:36:01,250 I, lige som standard, på en Linux-computer 649 00:36:01,250 --> 00:36:03,910 har evnen til at fortsætte med at læse og skrive denne fil. 650 00:36:03,910 --> 00:36:07,170 >> Så operativsystemet bare giver mig RW automatisk. 651 00:36:07,170 --> 00:36:10,840 De midterste dem vedrører min gruppe, nemlig de studerende, 652 00:36:10,840 --> 00:36:14,590 som er en slags meningsløs på apparatet, fordi jeg er den eneste person, der bruger apparatet. 653 00:36:14,590 --> 00:36:16,620 Så lad mig bare vinke mine hænder på det for nu. 654 00:36:16,620 --> 00:36:19,190 Men de sidste er vigtigst for internettet. 655 00:36:19,190 --> 00:36:21,580 Det er alle andre i verden, og det faktum, 656 00:36:21,580 --> 00:36:24,600 at der er --- betyder, at ingen andre i verden 657 00:36:24,600 --> 00:36:26,680 har nogen tilladelser til denne fil. 658 00:36:26,680 --> 00:36:29,180 Det er klart et problem, så jeg er nødt til at løse dette 659 00:36:29,180 --> 00:36:33,830 ved en eller anden måde give verden, hvad? Læse & skrive? 660 00:36:33,830 --> 00:36:35,850 Det er nok dum, right? Jeg vil ikke have nogen på nettet 661 00:36:35,850 --> 00:36:38,530 at gå til at besøge min side og på en måde ændre denne fil, 662 00:36:38,530 --> 00:36:40,800 selv om de virkelig kunne ikke med en HTML-fil, 663 00:36:40,800 --> 00:36:44,110 men bare i princippet, sandsynligvis bare have dem til at være i stand til at læse det. 664 00:36:44,110 --> 00:36:47,910 Hvad vil det sige at læse det? Det betyder ikke, at de kommer til at bekymre sig om den egentlige HTML, 665 00:36:47,910 --> 00:36:51,820 men browseren skal være i stand til at parse det kodesprog, 666 00:36:51,820 --> 00:36:53,720 top til bund, venstre mod højre. 667 00:36:53,720 --> 00:36:57,990 Så nogen på nettet skal være i stand til at læse det, så jeg minimalt nødt til at give det r.. 668 00:36:57,990 --> 00:37:00,240 Jeg kan gøre dette i et par forskellige måder, men måske 669 00:37:00,240 --> 00:37:03,080 Det enkleste er at køre denne kommando her. 670 00:37:03,080 --> 00:37:10,860 Chmod, change mode, så en + r, så alle, alle i verden + læse, 671 00:37:10,860 --> 00:37:13,830 og derefter navnet på filen, search0.html. 672 00:37:13,830 --> 00:37:18,310 >> Men når jeg gør ls-l igen, bemærke, at denne fil er ændret, 673 00:37:18,310 --> 00:37:21,440 og ja, jeg har slået r for alle. 674 00:37:21,440 --> 00:37:23,350 Jeg har også slået det for min gruppe, men det er fint, 675 00:37:23,350 --> 00:37:27,150 fordi hvis jeg vendte ind på for alle, min gruppe er en delmængde af det. 676 00:37:27,150 --> 00:37:31,480 Så det er også fint. Det betyder blot, at computeren har nu gjort det læsbar. 677 00:37:31,480 --> 00:37:34,430 Lad mig nu vende tilbage til min browser, skal du klikke reload. 678 00:37:34,430 --> 00:37:36,330 Ah-ha. Vi har nu CS50 Søg. 679 00:37:36,330 --> 00:37:39,830 Jeg har zoomet ind lidt kunstigt - temmelig hæslige søgemaskine. 680 00:37:39,830 --> 00:37:41,930 Men lad os se om det rent faktisk virker. 681 00:37:41,930 --> 00:37:45,880 Først, lad mig gøre en hurtig tilregnelighed check, lad mig styre klik og se side kilde. 682 00:37:45,880 --> 00:37:50,780 Bemærk, at indenfor Chrome vi ser nu den samme HTML, som jeg selv har oprettet. 683 00:37:50,780 --> 00:37:55,420 Bliv ikke forvirret her, selv om. Jeg kan ikke begynde at ændre koden her, 684 00:37:55,420 --> 00:37:59,420 fordi browseren har en skrivebeskyttet visning af denne kode. 685 00:37:59,420 --> 00:38:06,060 Browseren har netop bedt lokal vært for en fil kaldet search0.html. 686 00:38:06,060 --> 00:38:09,490 Det er nu rent tilfælde, at apparatet 687 00:38:09,490 --> 00:38:13,480 sker for at være på den samme computer som min browser. 688 00:38:13,480 --> 00:38:20,470 Jeg kunne bare have, ækvivalent, har indtastet www.facebook.com/search0.html, 689 00:38:20,470 --> 00:38:23,830 og hvis Facebook havde en fil kaldet det, ville jeg da være at se deres HTML. 690 00:38:23,830 --> 00:38:27,360 Og selvfølgelig kan jeg ikke ændre den fil, der kommer tilbage fra Facebook, enten. 691 00:38:27,360 --> 00:38:29,360 Så nu er vi slags udviske linjerne. 692 00:38:29,360 --> 00:38:32,130 Apparatet er både en server, der tjener op websider, 693 00:38:32,130 --> 00:38:34,870 men det er også en klient i den forstand, at jeg bruger en browser 694 00:38:34,870 --> 00:38:37,630 til rent faktisk at tale med denne server. 695 00:38:37,630 --> 00:38:39,610 Så lad os se, om min Google-søgemaskinen virker. 696 00:38:39,610 --> 00:38:44,930 Lad mig gå videre og søge efter hurtige brune ræv, skal du indtaste. 697 00:38:44,930 --> 00:38:47,540 Og voila, jeg har nu min egen søgemaskine. 698 00:38:47,540 --> 00:38:51,460 >> Men hvordan fungerer det? 699 00:38:51,460 --> 00:38:55,380 Bit af en strækning, men - og nu kan du ikke se, præcist den del, der er af interesse. 700 00:38:55,380 --> 00:38:57,370 Læg mærke til hvad der sker. 701 00:38:57,370 --> 00:39:00,430 Læg mærke til webadressen. Det viser sig, at denne metode, 702 00:39:00,430 --> 00:39:02,780 kaldet får, er super-simpelt. 703 00:39:02,780 --> 00:39:10,270 Når du angiver i en formular, som du ønsker at 'få' resultater fra nogle server, 704 00:39:10,270 --> 00:39:13,200 hvad det kommer til at gøre, er at tage hvad du har skrevet i formularen 705 00:39:13,200 --> 00:39:15,290 og sætte det i webadressen. 706 00:39:15,290 --> 00:39:18,580 Det kommer til at standardisere, hvordan det bliver sat i URL'en som følger. 707 00:39:18,580 --> 00:39:22,290 Bemærk at dette er den webadresse, var værdien af ​​min handling attribut. 708 00:39:22,290 --> 00:39:24,730 Det er der, jeg ønskede formularen til ende. 709 00:39:24,730 --> 00:39:26,950 Men så bemærke dette spørgsmålstegn. 710 00:39:26,950 --> 00:39:30,230 Dette er en konvention på nettet for derved at give input fra brugeren 711 00:39:30,230 --> 00:39:35,320 til en hjemmeside, tilføje dig til webadressen et spørgsmålstegn, 712 00:39:35,320 --> 00:39:38,330 og så har du en hel bunke af nøgle-værdi par. 713 00:39:38,330 --> 00:39:42,380 Navnet på en nøgle, ellers kendt som en parameter i Web, 714 00:39:42,380 --> 00:39:46,380 så har du et lighedstegn, så har du værdien af ​​denne parameter. 715 00:39:46,380 --> 00:39:49,810 Så det er hovedsageligt et variabelnavn og en variabel værdi, 716 00:39:49,810 --> 00:39:54,250 men dem variabel navne og værdier kom fra HTML form. 717 00:39:54,250 --> 00:39:56,250 Hvorfor er plusser der, tror du? 718 00:39:56,250 --> 00:39:59,340 Fordi jeg ikke skrive + i mellem mine ord. 719 00:39:59,340 --> 00:40:01,430 [Studerende, uforståelig] 720 00:40:01,430 --> 00:40:05,080 >> Ja, det er bare for afstand. Odds er, når du har set en URL, 721 00:40:05,080 --> 00:40:07,320 Der er aldrig nogen mellemrum i det, hvis det kun fordi 722 00:40:07,320 --> 00:40:09,440 hvis der var, kunne du ikke rigtig kopiere og indsætte den 723 00:40:09,440 --> 00:40:12,700 ind i en IM eller i en e-mail, fordi det ville bryde. 724 00:40:12,700 --> 00:40:15,420 Du ønsker det hele til at være en sammenhængende streng af tegn. 725 00:40:15,450 --> 00:40:18,450 >> Så browseren er smart nok til at indse, uh-uh. 726 00:40:18,450 --> 00:40:22,610 Må ikke bare sætte en plads der. Lad mig indkode rummet i nogle standard måde. 727 00:40:22,610 --> 00:40:25,170 En af de konventioner for at gøre det er at få browseren 728 00:40:25,170 --> 00:40:29,350 automatisk sætte et +, hvor du ellers ville have en plads. 729 00:40:29,350 --> 00:40:32,140 Så nu har varsel Google været slags brugervenligt. 730 00:40:32,140 --> 00:40:34,380 Jeg er bestemt ikke skabe denne webside, 731 00:40:34,380 --> 00:40:37,200 men de har indsat på deres tekstfelt 732 00:40:37,200 --> 00:40:39,490 med hvad, præcist, jeg har skrevet i. 733 00:40:39,490 --> 00:40:43,090 Antag jeg ønsker at søge efter noget andet, ligesom en doven hund. 734 00:40:43,090 --> 00:40:45,340 Jeg kan blot skrive dette her, re-search. 735 00:40:45,340 --> 00:40:47,730 Bemærk, at webadressen skifter op her, 736 00:40:47,730 --> 00:40:51,390 men bemærker så at jeg rent faktisk kan søge efter hvad jeg vil 737 00:40:51,390 --> 00:40:53,610 bare ved at forstå, hvordan webadresser arbejde. 738 00:40:53,610 --> 00:40:56,840 Jeg kunne gøre doven kat, enter, 739 00:40:56,840 --> 00:41:01,370 og bemærk nu får jeg en meget doven - skal vi? Jeg føler mig som vi burde. 740 00:41:01,370 --> 00:41:09,900 Jeg får en meget doven kat. 741 00:41:09,900 --> 00:41:11,930 Ok. Dette er en af ​​de dummeste ting, vi har gjort. 742 00:41:11,930 --> 00:41:17,160 Men det er en doven kat. 743 00:41:17,160 --> 00:41:19,730 Under alle omstændigheder, hvad er nøglen takeaway her? 744 00:41:19,730 --> 00:41:22,830 Nu er vi er en slags spille i verden af ​​HTTP. 745 00:41:22,830 --> 00:41:26,050 HTML er netop denne markup sprog, åben tag, tæt tag, 746 00:41:26,050 --> 00:41:29,490 der fortæller en browser hvordan man kan gøre indhold på en webside. 747 00:41:29,490 --> 00:41:32,850 Men når du begynder at sende oplysninger via internettet 748 00:41:32,850 --> 00:41:36,290 mellem browser og server, er, at hvor denne protokol 749 00:41:36,290 --> 00:41:39,370 kendt som HyperText Transfer Protocol overtager. 750 00:41:39,370 --> 00:41:42,630 Det er den slags menneskelig konvention, da Sam og jeg gav hinanden hånden på mandag, 751 00:41:42,630 --> 00:41:48,300 starte en forbindelse og derefter lukke en forbindelse, samme idé her. 752 00:41:48,300 --> 00:41:53,100 Hvordan Googles resultater kommer tilbage til mig? 753 00:41:53,100 --> 00:41:55,290 Hvordan bliver min formularafsendelse går til Google? 754 00:41:55,290 --> 00:41:58,160 Nå, huske fra den anden dag, at hvad der virkelig sker 755 00:41:58,160 --> 00:42:02,150 under emhætten, når du anmoder om en webside er, 756 00:42:02,150 --> 00:42:04,860 din browser sender en noget-kryptisk besked 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 tilfælde, fordi jeg specifikt anmodet om tidligere 759 00:42:13,000 --> 00:42:17,340 search0.html, dette ville være den noget-kryptisk besked 760 00:42:17,340 --> 00:42:20,040 at min browser sender til apparatet. 761 00:42:20,040 --> 00:42:23,090 Eller i dette tilfælde af Google, hvad der faktisk sendt 762 00:42:23,090 --> 00:42:33,740 er en anmodning til / søgning, og derefter? q = doven kat, med et plus der. 763 00:42:33,740 --> 00:42:36,790 Så dette budskab, at jeg, det menneskelige, er aldrig skrive, 764 00:42:36,790 --> 00:42:40,620 men er ved at blive sendt af min browser, det er sådan HTTP sker. 765 00:42:40,620 --> 00:42:43,240 Dette svarer til vores have rystet hænder. 766 00:42:43,240 --> 00:42:46,320 Det er den anmodning, og serveren er ved at sende et svar. 767 00:42:46,320 --> 00:42:48,560 Så lad os tage et kig på denne under hætten. 768 00:42:48,560 --> 00:42:55,320 Som før kan vi åbne op denne særlige felt i en browser. 769 00:42:55,320 --> 00:42:58,720 Se side, inspicere elementer. 770 00:42:58,720 --> 00:43:01,550 Så under inspicere element, bemærke, at hvad der er sket 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 udviklingsværktøjer tilgængelige for os. 773 00:43:07,370 --> 00:43:09,630 Normale mennesker ikke anvender disse faner. 774 00:43:09,630 --> 00:43:11,940 Men vi, nu er interesseret i, hvad der foregår 775 00:43:11,940 --> 00:43:13,890 under hætten på netværksniveau. 776 00:43:13,890 --> 00:43:16,130 Så hvis jeg trækker op af netværket niveau her, 777 00:43:16,130 --> 00:43:18,510 Lad mig gå videre og udvide dette vindue, 778 00:43:18,510 --> 00:43:21,840 åbne denne post her, og se på overskrifterne. 779 00:43:21,840 --> 00:43:26,010 Så hvad sker der, når jeg beder om en fil fra en webserver 780 00:43:26,010 --> 00:43:29,410 er min browser sender en hel masse ting. 781 00:43:29,410 --> 00:43:32,390 Og lad mig se kilde. Så under overskrifter i anmodninger, 782 00:43:32,390 --> 00:43:35,250 Og det er netop krom viser mig nogle diagnostiske output, 783 00:43:35,250 --> 00:43:37,340 lidt ligesom en debugger af en slags, 784 00:43:37,340 --> 00:43:40,500 bemærke, at det, jeg har fremhævet her, er netop, hvad 785 00:43:40,500 --> 00:43:47,060 Chrome sender til serveren for at anmode om en fil kaldet search0.html. 786 00:43:47,060 --> 00:43:50,160 Det er sigende, at serveren, hvad den mener dens navn er, 787 00:43:50,160 --> 00:43:52,210 takket være denne vært kolon område, så er der nogle 788 00:43:52,210 --> 00:43:56,950 temmelig esoterisk ting herinde, som noget at gøre med datoer og klokkeslæt, 789 00:43:56,950 --> 00:43:59,720 noget at gøre med de sprog, som browseren forstår, 790 00:43:59,720 --> 00:44:02,850 men de virkelig vigtige linjer er disse første to her. 791 00:44:02,850 --> 00:44:05,490 >> Hvad betyder serveren svare med? Tja, hvis vi rulle ned her 792 00:44:05,490 --> 00:44:08,510 og se kilden til denne ting, bemærk at serveren 793 00:44:08,510 --> 00:44:13,700 har reageret med en noget kryptisk besked så godt, 304 ikke ændres. 794 00:44:13,700 --> 00:44:16,030 Det er lidt underligt, lad mig faktisk forsøger at løse dette. 795 00:44:16,030 --> 00:44:18,670 Lad mig holde shift og klik genindlæse op her 796 00:44:18,670 --> 00:44:22,460 at tvinge browseren til rent faktisk at gøre denne anmodning for første gang. 797 00:44:22,460 --> 00:44:25,700 Så lad mig zoome ind, og vi vil se nu, at serverens svar, 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 sikkert aldrig set det nummer 200 800 00:44:31,170 --> 00:44:33,300 I forbindelse med internettet, men hvilke numre 801 00:44:33,300 --> 00:44:36,760 har du nogle gange set uventet fra en server? 802 00:44:36,760 --> 00:44:42,010 404, filen blev ikke fundet, 403, forbudt, 500, serverfejl. 803 00:44:42,010 --> 00:44:44,890 Så der er disse numeriske koder, som verden bruger i Web 804 00:44:44,890 --> 00:44:47,870 at betegne fejl, ligesom C-funktioner 805 00:44:47,870 --> 00:44:51,030 kan returnere fejl og vigtigste kan vende tilbage exit koder. 806 00:44:51,030 --> 00:44:54,160 200, selv om, du sjældent ser, fordi det betyder alt er godt. 807 00:44:54,160 --> 00:44:59,000 Og 304 du sandsynligvis aldrig se, fordi hvad er det der betyder? 808 00:44:59,000 --> 00:45:03,330 At intet har - lad os se om vi kan simulere dette igen - 809 00:45:03,330 --> 00:45:07,170 Åh, nu er det ikke samarbejder. 304 sagde ikke ændret, 810 00:45:07,170 --> 00:45:09,170 så hvorfor var serveren selv svarer? 811 00:45:09,170 --> 00:45:12,550 Tja, for effektivitet, en webserver automatisk for dig 812 00:45:12,550 --> 00:45:16,570 Hvis filen ikke er ændret, vil det ikke retransmittere hele HTML-fil. 813 00:45:16,570 --> 00:45:19,150 Det vil bare fortælle browseren, den har ikke ændret sig. 814 00:45:19,150 --> 00:45:21,220 Bare bruge den kopi, du allerede har. 815 00:45:21,220 --> 00:45:22,650 Så der er denne forestilling om caching på nettet 816 00:45:22,650 --> 00:45:25,840 for ydeevne, at så du ikke spilder tid og affald båndbredde 817 00:45:25,840 --> 00:45:29,160 henter filer igen og igen unødigt. 818 00:45:29,160 --> 00:45:31,460 >> Men denne webside, nu var super-simpel, 819 00:45:31,460 --> 00:45:34,980 og det kun viste mig den HTML, der kom tilbage. 820 00:45:34,980 --> 00:45:40,940 Lad os faktisk bruger nettet fanen nu at lave en Google søgning som hurtige brune ræv. 821 00:45:40,940 --> 00:45:43,010 Lad mig derefter klikke CS50 søgning, 822 00:45:43,010 --> 00:45:46,950 og nu, mærke i bunden her en hel masse ting kom tilbage 823 00:45:46,950 --> 00:45:49,900 fordi når jeg besøger en rigtig hjemmeside som Google.com, 824 00:45:49,900 --> 00:45:53,520 de har billeder, de har tekst, har de et sprog kaldes JavaScript der. 825 00:45:53,520 --> 00:45:55,940 Så hver række i denne tabel hernede 826 00:45:55,940 --> 00:46:01,490 repræsenterer noget, som Google spytte ud svar på min enkelt anmodning. 827 00:46:01,490 --> 00:46:04,160 Den ene jeg holder af, er dog dette første. 828 00:46:04,160 --> 00:46:08,420 Og hvis jeg går til søgningen, anmodning, skal du klikke på Vis kilde her, 829 00:46:08,420 --> 00:46:11,300 bemærke, at, ja, det kryptiske budskab, at min browser har sendt 830 00:46:11,300 --> 00:46:15,010 til Google var disse to linjer her, 831 00:46:15,010 --> 00:46:18,420 efterfulgt af nogle mystiske information hernede, som vi vil ignorere for nu. 832 00:46:18,420 --> 00:46:20,890 Men bemærk også, hvad Chrome er temmelig handy med, 833 00:46:20,890 --> 00:46:24,540 det er også viser mig søgestrengen, der blev sendt i. 834 00:46:24,540 --> 00:46:27,410 Så i stedet vise mig dette, som var bogstaveligt sendt, 835 00:46:27,410 --> 00:46:30,800 hvis jeg ser det afkodes, Chrome, bare for debugging formål, 836 00:46:30,800 --> 00:46:34,270 for udviklere som os, det er bare viser mig en menneskelig-venlig version af - 837 00:46:34,270 --> 00:46:36,390 det er ikke sådan du staver ræv, tilsyneladende. 838 00:46:36,390 --> 00:46:40,520 Jeg er bare lagt mærke til nu - men det viser dig, hvad jeg, åbenbart, maskinskrevet. 839 00:46:40,520 --> 00:46:45,340 Desuden har reaktionen, der kom tilbage fra serveren er igen 200 OK. 840 00:46:45,340 --> 00:46:47,930 Men optaget på denne reaktion, selvfølgelig, 841 00:46:47,930 --> 00:46:51,920 hvis vi rent faktisk se sidens HTML - 842 00:46:51,920 --> 00:46:55,440 Beklager, det er en lille tastaturgenvej gået galt i dag. 843 00:46:55,440 --> 00:46:59,020 >> Jeg vil beskæftige sig med dette senere. Så hvis vi rent faktisk se siden kilde, 844 00:46:59,020 --> 00:47:02,990 som jeg kan gøre hernede ved at klikke på svar, 845 00:47:02,990 --> 00:47:10,080 dette er hvad der faktisk blev spytte tilbage, ud over at kryptiske 200 OK meddelelse fra serveren. 846 00:47:10,080 --> 00:47:12,520 Lidt kryptisk, men hvor er alt dette kommer fra? 847 00:47:12,520 --> 00:47:15,570 Nå, lad os gøre en anden ting her. En anden lidt-kryptisk kommando, 848 00:47:15,570 --> 00:47:20,530 men denne ene er lidt pæn i det åbenbarer os præcis, hvad der foregår under kølerhjelmen. 849 00:47:20,530 --> 00:47:22,530 Så jeg er tilbage på min Mac her, har jeg tilsluttede 850 00:47:22,530 --> 00:47:25,980 med et program kaldet SSH, Secure Shell, til en anden server 851 00:47:25,980 --> 00:47:28,940 fordi de fleste af Harvards computere blokere kommando, vi er ved at løbe 852 00:47:28,940 --> 00:47:31,640 fordi der er denne kommando på nogle servere kaldet traceroute 853 00:47:31,640 --> 00:47:34,810 der giver dig mulighed for at spore ruten mellem punkterne A og B, 854 00:47:34,810 --> 00:47:37,020 og hidtil har vi taget helt for givet 855 00:47:37,020 --> 00:47:40,170 at jeg kan skrive i Google.com og på en måde få data tilbage 856 00:47:40,170 --> 00:47:43,530 fra halvvejs gennem landet eller halvvejs rundt om jorden. 857 00:47:43,530 --> 00:47:45,810 Med traceroute kan vi faktisk dykke i en lidt dybere 858 00:47:45,810 --> 00:47:49,370 om, hvordan internettet fungerer, se og hvad der sker under kølerhjelmen. 859 00:47:49,370 --> 00:47:54,440 Så lad os gå videre og vilkårligt spore en rute til, sige, Stanford.edu, 860 00:47:54,440 --> 00:47:57,150 som er på tværs af landet, og tryk enter. 861 00:47:57,150 --> 00:47:59,380 Denne kommando kan være super-hurtig eller super-slow, 862 00:47:59,380 --> 00:48:02,010 men hvad vi ser nu, linje for linje, 863 00:48:02,010 --> 00:48:08,060 er hver eneste af de skridt og humle mellem os og Palo Alto, eller Stanford, 864 00:48:08,060 --> 00:48:11,010 hvor de har deres webserver. 865 00:48:11,010 --> 00:48:16,600 Så hvad betyder hver af disse linier repræsenterer mere konkret, selvom? 866 00:48:16,600 --> 00:48:19,100 Et stykke jargon fra internettet? [Studerende, uforståelig] 867 00:48:19,100 --> 00:48:21,570 >> Hvad er det? [Studerende, uforståelig] 868 00:48:21,570 --> 00:48:25,390 >> Åh, så der er tidspunkter, men hvad betyder hver række - hvad mener jeg med hop? 869 00:48:25,390 --> 00:48:29,140 >> Nå, der er disse ting på internettet kaldet routere. 870 00:48:29,140 --> 00:48:33,020 Og routere, som navnet antyder, rute oplysninger fra punkt A til punkt B. 871 00:48:33,020 --> 00:48:36,920 Men der er flere punkter over a og b. 872 00:48:36,920 --> 00:48:40,010 Der er c og d og e og f mellem række 1, 873 00:48:40,010 --> 00:48:43,480 som tilfældigvis er min computers IP-adresse, 874 00:48:43,480 --> 00:48:46,890 eller min numerisk adresse, der entydigt identificerer min computer, 875 00:48:46,890 --> 00:48:50,300 og trin 15, som faktisk er den sjette webserver, 876 00:48:50,300 --> 00:48:54,640 tilsyneladende, som jeg udlede af dette, eller version 6 af deres web server på Stanford. 877 00:48:54,640 --> 00:48:56,680 Men hvad er lidt pæn er, kan vi se stien 878 00:48:56,680 --> 00:49:00,480 at min 0 s og 1 s tager fra min computer til Stanford. 879 00:49:00,480 --> 00:49:02,500 Så trin 1 er min egen computers adresse. 880 00:49:02,500 --> 00:49:05,760 Hver computer på internettet har en unik identifikator, der ligner denne. 881 00:49:05,760 --> 00:49:08,150 Number.number.number.number. 882 00:49:08,150 --> 00:49:10,370 Et eller andet sted på denne campus, sandsynligvis i science center, 883 00:49:10,370 --> 00:49:16,780 er en router kaldet Core Gateway 2-te83, hvad det så end betyder, 884 00:49:16,780 --> 00:49:20,590 så dette er en af ​​Harvards store fancy routere, der dirigerer en masse af deres trafik. 885 00:49:20,590 --> 00:49:24,640 Her er en anden af ​​Harvards routere, denne ene er Border Gateway, 886 00:49:24,640 --> 00:49:28,310 grænseoverskridende betydning er det sandsynligvis på periferien af ​​campus eller andet sted. 887 00:49:28,480 --> 00:49:32,790 Så er der nox en, række 4, der er Northern Crossroads, 888 00:49:32,790 --> 00:49:35,070 som er en stor internetudbyder, Internet-udbyder, 889 00:49:35,070 --> 00:49:37,740 at steder som Harvard tilslutte op til. 890 00:49:37,740 --> 00:49:40,760 Men så tingene bliver lidt interessant på linje 6. 891 00:49:40,760 --> 00:49:45,960 Hvor er mine bits lige pludselig? Kansas. 892 00:49:45,960 --> 00:49:49,300 Verden har en vane med at bruge lufthavnen koder i en masse af disse ting, 893 00:49:49,300 --> 00:49:52,900 eller i det mindste forkortelser for stater eller byer, 894 00:49:52,900 --> 00:49:56,490 så det ligner, på bare 60 ms, 895 00:49:56,490 --> 00:49:59,420 en pakke af oplysninger, 0 s og 1 er fra min laptop 896 00:49:59,420 --> 00:50:03,210 fik hele vejen til Kansas, og igen, i 60 ms. 897 00:50:03,210 --> 00:50:08,180 >> Hertil kommer, efter Kansas, tog de en tur gennem Houston, sandsynligvis, 898 00:50:08,180 --> 00:50:10,140 som foreslået af navnet på denne server. 899 00:50:10,140 --> 00:50:13,310 Så bare som en server på internettet, skal have en numerisk adresse, 900 00:50:13,310 --> 00:50:18,360 det kan også eventuelt have en lidt mere menneskelig-venlig adresse som mennesker kom op med. 901 00:50:18,360 --> 00:50:20,510 Nu, i trin 8, ved vi ikke, hvad det er. 902 00:50:20,510 --> 00:50:22,550 Sommetider routere bare slags ignorere dig, 903 00:50:22,550 --> 00:50:25,010 og de bare ikke besvare de spørgsmål, så det er fint. 904 00:50:25,010 --> 00:50:29,290 Den ene efter trin 8 er tilsyneladende hvor? L.A. 905 00:50:29,290 --> 00:50:35,290 Meddelelse i kun 78 ms, hvad tager os mennesker som 6 + timer at gøre fysisk, 906 00:50:35,290 --> 00:50:40,110 tager pakker af information på internettet 78 ms til at rejse så langt. 907 00:50:40,110 --> 00:50:45,890 Trin 10 er i LA så godt, og trin 11 synes at være gået mod nord, op nær Stanford. 908 00:50:45,890 --> 00:50:48,750 Dette er deres grænse router, eller grænse router. 909 00:50:48,750 --> 00:50:51,240 Et par trin på Stanford, der ignorerer os, 910 00:50:51,240 --> 00:50:55,610 og endelig kommer vi til webserveren på bare 87 ms. 911 00:50:55,610 --> 00:50:57,760 Nu er alle disse tal, som en sidebemærkning, 912 00:50:57,760 --> 00:51:00,640 bare fortælle dig, hvor lang tid det tager for data at komme fra mig 913 00:51:00,640 --> 00:51:03,530 til hver af disse routere, og det er ikke akkumulerende. 914 00:51:03,530 --> 00:51:06,960 Hvad dette program gør, er, det først sender en besked i det væsentlige til den første router. 915 00:51:06,960 --> 00:51:09,490 Derefter ene til den anden router, derefter en til den tredje router, 916 00:51:09,490 --> 00:51:12,610 måling hver gang. Så i teorien, vil disse tider være voksende 917 00:51:12,610 --> 00:51:14,860 eller i det mindste ret tæt på hinanden, 918 00:51:14,860 --> 00:51:18,090 og, ja, dem der er lige her på campus er super-small. 919 00:51:18,090 --> 00:51:20,820 Så snart du begynder at gå over hele landet, det tager data 920 00:51:20,820 --> 00:51:24,830 lidt længere tid at rejse, tættere på 100 ms, give eller tage. 921 00:51:24,830 --> 00:51:28,330 Men lad os gå den anden retning nu. Hvad med Cambridge University i Storbritannien? 922 00:51:28,330 --> 00:51:32,540 Lad mig i stedet køre traceroute for www.cam for Cambridge, 923 00:51:32,540 --> 00:51:36,710 . Ac for akademisk. Dk, og tryk enter her. 924 00:51:36,710 --> 00:51:38,830 Det var pretty damn hurtigt. 925 00:51:38,830 --> 00:51:43,300 Mine data bogstaveligt gik til Cambridge, England, i denne splitsekund af tiden. 926 00:51:43,300 --> 00:51:45,340 >> Så lad os se den sti, det tog. 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 internetudbyder, og derefter dette er Northern Crossroads, og derefter bam. 929 00:51:52,690 --> 00:51:58,320 Hvad er i mellem trin 6 og 7, router 6 og 7? 930 00:51:58,320 --> 00:52:02,040 The Atlantic Ocean. Og vi udlede dette fra det faktum, at 931 00:52:02,040 --> 00:52:06,530 vi går fra 20 ms her til 80 ms her. 932 00:52:06,530 --> 00:52:10,050 Så noget tog 60 ms, give eller tage, for at komme over. 933 00:52:10,050 --> 00:52:12,910 Og det var sandsynligvis en stor vandmasse. 934 00:52:12,910 --> 00:52:15,250 Hvad sker der bagefter? Tja, her er vi i London, 935 00:52:15,250 --> 00:52:18,860 kun 88 ms senere. Mere London, more London, 936 00:52:18,860 --> 00:52:21,730 ikke sikker på, hvor det er, men vi vil antage det er uden for London, 937 00:52:21,730 --> 00:52:26,390 Cambridge her, og endelig har vi - bogstaveligt talt, University of Cambridge 938 00:52:26,390 --> 00:52:29,500 . Something.net og derefter endelig i ledningen 16, 939 00:52:29,500 --> 00:52:31,720 deres webserver er tilsyneladende kaldet Scorpius 940 00:52:31,720 --> 00:52:35,500 under hætten, selv om vi kender det som www. 941 00:52:35,500 --> 00:52:38,790 Kind of mind-blowing, tror jeg. Første gang jeg nogensinde gjorde det, det helt blæste mit sind. 942 00:52:38,790 --> 00:52:41,670 Desværre Harvard blokerer denne type trafik, typisk på netværket. 943 00:52:41,670 --> 00:52:44,340 Så du kan ikke gøre det super nemt. 944 00:52:44,340 --> 00:52:48,500 Indse dog, det her er muligt. 945 00:52:48,500 --> 00:52:53,630 Ok. Lad os tage vores 5-minutters pause her. Vi vil komme tilbage og dykke dybere. 946 00:52:53,630 --> 00:53:00,850 Så vi er tilbage, og vi har slags luntede omkring i et par forskellige retninger her. 947 00:53:00,850 --> 00:53:03,700 Så lad os opsummere, hvad der er foregået her. 948 00:53:03,700 --> 00:53:07,990 Vi startede samtalen taler om dette sprog kaldet HTML. 949 00:53:07,990 --> 00:53:10,680 Igen, ikke et programmeringssprog. Det er bare et kodesprog 950 00:53:10,680 --> 00:53:15,490 der er i høj grad om æstetik og strukturering af indhold i form af en webside. 951 00:53:15,490 --> 00:53:19,220 Men HTML derfor brug for nogle form for mekanisme 952 00:53:19,220 --> 00:53:22,870 for at rejse mellem web-browser og server. 953 00:53:22,870 --> 00:53:28,360 HTML derfor slags rider på toppen af ​​denne andet sprog, 954 00:53:28,360 --> 00:53:31,280 eller mere korrekt, en protokol, kendt som HTTP. 955 00:53:31,280 --> 00:53:33,730 >> Og HTTP, som vi har set det hidtil, 956 00:53:33,730 --> 00:53:37,140 er en slags analog med denne menneskelige konvention af rystende hænder. 957 00:53:37,140 --> 00:53:39,940 Når en browser ønsker at anmode om en side fra en server, 958 00:53:39,940 --> 00:53:43,450 det sender at "få" anmodning fra browseren til serveren, 959 00:53:43,450 --> 00:53:48,040 og derefter serveren svarer med en række lignende 200, alt er okay, 960 00:53:48,040 --> 00:53:53,290 samt HTML eller nogle dårlige tal som 404, fil ikke fundet. 961 00:53:53,290 --> 00:53:58,220 Men i mellemtiden, HTTP selv er ikke internettet, per se. 962 00:53:58,220 --> 00:54:01,550 HTTP er blot en tjeneste, en funktion af internettet 963 00:54:01,550 --> 00:54:05,530 meget gerne G chat er en anden tjeneste, meget gerne e-mail er en anden tjeneste. 964 00:54:05,530 --> 00:54:09,180 Der er alle mulige ting, vi kan gøre på internettet. 965 00:54:09,180 --> 00:54:12,670 HTTP er blot én af disse ansøgninger. 966 00:54:12,670 --> 00:54:17,210 Så oven på - HTTP er oven på noget andet 967 00:54:17,210 --> 00:54:21,750 som vi ikke nævne ved navn, har du måske hørt om ved navn, TCP / IP. 968 00:54:21,750 --> 00:54:25,160 Så den historie, vi bare vide, at der handler om 969 00:54:25,160 --> 00:54:28,720 hvordan data bevæger sig fra punkt A til punkt B. 970 00:54:28,720 --> 00:54:30,950 Og i dette tilfælde, så vi på et meget lavt niveau 971 00:54:30,950 --> 00:54:33,060 router til router til router til router, 972 00:54:33,060 --> 00:54:35,390 hvordan dataene rent faktisk transmitteres. 973 00:54:35,390 --> 00:54:40,510 Men hen ad vejen, er det vil støde på forskellige hindringer. 974 00:54:40,510 --> 00:54:43,770 Ud over disse routere, er der ting kaldet firewalls på internettet, 975 00:54:43,770 --> 00:54:46,680 og så data, såsom at vi var bare sende 976 00:54:46,680 --> 00:54:49,720 fra mig til Stanford, fra mig til Cambridge, 977 00:54:49,720 --> 00:54:54,560 sendes til, på dette niveau, noget, der hedder en IP-adresse. 978 00:54:54,560 --> 00:54:57,340 Vi så for et øjeblik siden, og en IP-adresse 979 00:54:57,340 --> 00:55:02,480 er blot en numerisk adresse af typen w.x.y.z, 980 00:55:02,480 --> 00:55:08,070 hvor hver af disse er mellem, give eller tage, 0 og 255, 981 00:55:08,070 --> 00:55:10,080 selvom du ikke kan helt bruge alle disse numre. 982 00:55:10,080 --> 00:55:14,220 Men hver af disse pladsholdere er et tal mellem 0 og 255. 983 00:55:14,220 --> 00:55:16,820 Så en IP-adresse i disse dage er 32 bit. 984 00:55:16,820 --> 00:55:20,780 >> Nu, det giver os, hvor mange mulige IP-adresser i verden? 985 00:55:20,780 --> 00:55:24,420 Omkring 4 mia fordi enhver tid vi tælling i potenser af 2 986 00:55:24,420 --> 00:55:27,760 hele vejen op til 32 af noget, der normalt giver os 4 mia. 987 00:55:27,760 --> 00:55:30,160 Så der er en masse af IP-adresser, men du måske har læst, 988 00:55:30,160 --> 00:55:32,410 eller du kan nu mærke i den populære presse, 989 00:55:32,410 --> 00:55:36,020 et skub i retning af en ny version af IP kaldet IPv6. 990 00:55:36,020 --> 00:55:38,290 Lige nu bruger vi version 4. 991 00:55:38,290 --> 00:55:41,060 Der er virkelig ikke har været en version 5, er vi bare hoppe ret til 6. 992 00:55:41,060 --> 00:55:46,760 Version 6 kommer til at bruge 128 bit til IP-adresser, der er freaking enorme. 993 00:55:46,760 --> 00:55:49,430 Vi bør ikke løbe ud i temmelig lang tid nu, 994 00:55:49,430 --> 00:55:52,980 men vi er begyndt at løbe ud af version 4 IP-adresser, 995 00:55:52,980 --> 00:55:56,110 fordi vi alle har ikke kun ting som bærbare og stationære computere, 996 00:55:56,110 --> 00:55:58,700 mange af os har telefoner, en masse af os har andre enheder 997 00:55:58,700 --> 00:56:01,600 ligesom TiVo og lignende, der har IP-adresser selv. 998 00:56:01,600 --> 00:56:03,720 Harvard selv har titusindvis af computere. 999 00:56:03,720 --> 00:56:07,970 Så verden er virkelig at løbe tør for IP-adresser, i hvert fald i denne form. 1000 00:56:07,970 --> 00:56:10,340 Så i løbet af de næste par år, vil du se de adresser 1001 00:56:10,340 --> 00:56:12,870 på dine egne computere sandsynligvis langsomt ændre 1002 00:56:12,870 --> 00:56:16,740 som flere og flere virksomheder og universiteter begynder at understøtte den nyere version. 1003 00:56:16,740 --> 00:56:22,770 Men en IP-adresse ikke er tilstrækkelig for computer en at anmode om data fra computer B. 1004 00:56:22,770 --> 00:56:24,950 Fordi computer b kunne være en server, 1005 00:56:24,950 --> 00:56:27,600 og en server, som jeg nævnte tidligere, kan gøre klaser af tingene. 1006 00:56:27,600 --> 00:56:29,940 Det kan være vært for websider, kan det være en e-mail-server, 1007 00:56:29,940 --> 00:56:32,310 det kan være en Skype server, kan det være en G chatserver. 1008 00:56:32,310 --> 00:56:35,870 >> Alle disse forskellige tjenester, som kan leveres på en server 1009 00:56:35,870 --> 00:56:38,330 kunne alle, fysisk, være på den samme maskine. 1010 00:56:38,330 --> 00:56:40,380 Så ud over IP-adresser, 1011 00:56:40,380 --> 00:56:43,250 verden har ting kaldet porte på internettet. 1012 00:56:43,250 --> 00:56:47,830 En havn er bare et nummer, så der er et unikt nummer for HTTP. 1013 00:56:47,830 --> 00:56:50,280 Dets nummer er 80. 1014 00:56:50,280 --> 00:56:55,870 HTTP bruger også nummer 443, men mere specifikt for krypterede HTTPS. 1015 00:56:55,870 --> 00:57:00,030 Når du ser s, for sikker, er, at bruge et andet nummer. 1016 00:57:00,030 --> 00:57:06,580 Der er andre numre, såsom 25, der anvendes til noget, der hedder SMTP, også kendt som e-mail. 1017 00:57:06,580 --> 00:57:09,620 Der er noget, der hedder 22 for SSH, 1018 00:57:09,620 --> 00:57:11,850 og der er en hel masse andre havne derude. 1019 00:57:11,850 --> 00:57:14,460 Nu er vi mennesker sjældent ser disse tal. 1020 00:57:14,460 --> 00:57:21,970 Men når du skriver i en adresse som http://www.facebook.com, 1021 00:57:21,970 --> 00:57:26,560 browseren er hemmeligt indsætte 80, fordi du bruger HTTP. 1022 00:57:26,560 --> 00:57:30,630 Hvis du i stedet typen HTTPS, er det hemmeligt indsætte 443. 1023 00:57:30,630 --> 00:57:35,180 Og vi kan slags se denne manuelt, hvis jeg trækker op 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 udtrykkeligt at citere ikke bare navnet på hjemmesiden 1026 00:57:44,550 --> 00:57:47,650 men den port, som jeg ønsker at tale med, og tryk enter. 1027 00:57:47,650 --> 00:57:50,170 Bemærker den forsvinder, fordi browseren antager, 1028 00:57:50,170 --> 00:57:53,360 oh, 80, jeg ikke engang gider vise det til dig. 1029 00:57:53,360 --> 00:57:56,400 Men grunden til dette er, at hvis jeg rent faktisk ønskede at sende en person en e-mail, 1030 00:57:56,400 --> 00:58:02,340 Jeg ville virkelig være at sende det til dem på port 25, nemlig SMTP. 1031 00:58:02,340 --> 00:58:04,890 Lidt af en forsimpling, men nogle af jer har venner 1032 00:58:04,890 --> 00:58:09,290 der faktisk arbejder på Facebook, og de, ligeledes, har servere, der modtager e-mail. 1033 00:58:09,290 --> 00:58:12,610 >> Hver gang du sender en e-mail, hvad gmail gør for dig 1034 00:58:12,610 --> 00:58:14,960 eller Outlook eller hvad program du bruger, 1035 00:58:14,960 --> 00:58:19,270 Det er slags hemmeligt indsætte dette tal så godt, 25, i dette tilfælde. 1036 00:58:19,270 --> 00:58:24,490 Det er denne kombination af IP-adresse og nummer, der entydigt identificerer 1037 00:58:24,490 --> 00:58:29,190 en computer på internettet og en særlig tjeneste på den pågældende computer. 1038 00:58:29,190 --> 00:58:33,460 Nu, selvfølgelig, har de fleste af os nok aldrig skrevet manuelt en IP-adresse. 1039 00:58:33,460 --> 00:58:37,340 Måske har du i apparatet, men i den virkelige verden, ikke så meget. 1040 00:58:37,340 --> 00:58:42,750 Hvorfor har vi ikke skrive IP-adresser i browsere? 1041 00:58:42,750 --> 00:58:45,860 Det ville virke, i virkeligheden, kan vi se dette, lad mig vise dig 1042 00:58:45,860 --> 00:58:50,000 en anden kommando, der skal arbejde mest overalt på Harvards campus på en Mac eller en PC. 1043 00:58:50,000 --> 00:58:53,970 Der er denne kommando kaldet nslookup, name server lookup. 1044 00:58:53,970 --> 00:58:59,960 Hvis jeg kigger op www.cnn.com, viser det sig, at CNN har - oh, interessant. 1045 00:58:59,960 --> 00:59:03,180 CNN er begyndt at bruge Amazon Web Services. 1046 00:59:03,180 --> 00:59:06,380 Du kan vide af cloud computing, Amazon er en af ​​de store spillere i cloud computing. 1047 00:59:06,380 --> 00:59:10,240 Hvad jeg vidste bare var, jeg sagde, 'Giv mig adressen på CNN webserver,' 1048 00:59:10,240 --> 00:59:14,090 men det viser sig, at CNN webserver administreres af 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 på denne server er det her. 1051 00:59:19,680 --> 00:59:22,350 Så jeg er ikke sikker på, om dette vil arbejde, fordi de ikke plejede at bruge Amazon. 1052 00:59:22,350 --> 00:59:32,830 Men lad os prøve dette, http://, IP-adresse, indtast, og - 1053 00:59:32,830 --> 00:59:35,690 er det vil virke? 1054 00:59:35,690 --> 00:59:39,280 Ja. Det kommer til at arbejde. Internettet er super-slow i dag. 1055 00:59:39,280 --> 00:59:43,680 Men i et øjeblik, vil du se nogle nyhedshistorie. 1056 00:59:43,680 --> 00:59:48,360 Der vi går. Bank of America er ved at blive sagsøgt. Ok. 1057 00:59:48,360 --> 00:59:54,000 >> Dette skyldes, at denne IP-adresse bare tilfældigvis ved synonymt med www.cnn.com. 1058 00:59:54,000 --> 00:59:59,920 Selvfølgelig ville det være forfærdeligt markedsføring til at sige, kan du besøge os på internettet på 50.112.94.127. 1059 00:59:59,920 --> 01:00:02,370 Du ville aldrig huske. Så selv disse dage vil du måske huske ting 1060 01:00:02,370 --> 01:00:07,210 ligesom 1-800-COLLECT eller aliaser verden kom op med for telefonnumre. 1061 01:00:07,210 --> 01:00:09,540 Hvilket, før mobiltelefoner, var temmelig svært at huske 1062 01:00:09,540 --> 01:00:11,800 indtil du bare kunne skrive det i og glemme alt om det. 1063 01:00:11,800 --> 01:00:15,730 Så nettet, også har denne konvention af navne og IP-adresser, 1064 01:00:15,730 --> 01:00:17,770 og der er disse ting derude kaldet DNS-servere, 1065 01:00:17,770 --> 01:00:23,870 domaenenavnesystemer servere, der oversætter IP-adresser til navne og omvendt. 1066 01:00:23,870 --> 01:00:26,340 Så det er hvad der sker under kølerhjelmen. 1067 01:00:26,340 --> 01:00:29,540 I sidste ende har vi TCP / IP, som er dette meget lavt niveau protokol 1068 01:00:29,540 --> 01:00:32,570 at, virkelig, bare får 0 s og 1 s via internettet, 1069 01:00:32,570 --> 01:00:36,030 og det gør det ved at sætte dem ind i en virtuel kuvert, 1070 01:00:36,030 --> 01:00:38,820 hvis du vil, skrive og på ydersiden af ​​konvolutten 1071 01:00:38,820 --> 01:00:43,930 IP-adressen på destinationen, samt den numeriske portnummer 1072 01:00:43,930 --> 01:00:47,520 af tjenesten på denne destination, som det ønsker at tale med. 1073 01:00:47,520 --> 01:00:51,060 I mellemtiden på kuverten er der også noget kendt som en returadresse, 1074 01:00:51,060 --> 01:00:55,600 som er din IP-adresse, så når CNN får en pakke af oplysninger fra dig, 1075 01:00:55,600 --> 01:00:58,710 åbner dette virtuelle kuvert, ser, at du vil have hjemmesiden, 1076 01:00:58,710 --> 01:01:04,630 det kender fra afsenderen del af denne virtuelle kuvert hvem de skal sende HTML tilbage til. 1077 01:01:04,630 --> 01:01:07,470 Så lad os tage et kig på denne i en lidt mere detaljeret. 1078 01:01:07,470 --> 01:01:11,370 Det er fra et firma kaldet Ericson, fra et par år tilbage. 1079 01:01:11,370 --> 01:01:14,780 Og de tog nogle friheder med hvordan internettet rent faktisk virker, 1080 01:01:14,780 --> 01:01:18,920 men det giver et langt mere visuelt billede end blot kridt op her. 1081 01:01:18,920 --> 01:01:26,690 Så jeg giver dig "A Bit of internettet." 1082 01:02:26,660 --> 01:02:29,840 >> [Fortæller] For første gang i historien, 1083 01:02:29,840 --> 01:02:35,260 mennesker og maskiner arbejder sammen, realisere en drøm. 1084 01:02:35,260 --> 01:02:38,910 En samlende kraft, der kender ingen geografiske grænser. 1085 01:02:38,910 --> 01:02:43,230 Uden hensyn til race, tro eller farve. 1086 01:02:43,230 --> 01:02:47,770 En ny æra, hvor kommunikation virkelig bringer mennesker sammen. 1087 01:02:47,770 --> 01:02:50,070 Dette er 1088 01:02:50,070 --> 01:02:54,980 Den Dawn of the Net. 1089 01:02:54,980 --> 01:03:04,640 Ønsker du at vide, hvordan det virker? Klik her for at begynde din rejse ind i nettet. 1090 01:03:04,640 --> 01:03:07,890 Nu, præcis hvad der skete, da du klikkede på det link? 1091 01:03:07,890 --> 01:03:10,150 Du startede en strøm af information. 1092 01:03:10,150 --> 01:03:13,310 Denne information rejser ned til din egen personlige postrum 1093 01:03:13,310 --> 01:03:18,500 hvor Mr. IP pakker det, mærker den, og sender det på vej. 1094 01:03:18,500 --> 01:03:20,960 Hver pakke er begrænset i sin størrelse. 1095 01:03:20,960 --> 01:03:23,880 Postrummet skal beslutte, hvordan at opdele oplysningerne 1096 01:03:23,880 --> 01:03:26,070 og hvordan at pakke det. 1097 01:03:26,070 --> 01:03:29,550 Nu pakken har brug for en etiket, som indeholder vigtige oplysninger 1098 01:03:29,550 --> 01:03:35,570 såsom afsenderens adresse, modtagerens adresse, og den type pakke, den er. 1099 01:03:51,700 --> 01:03:54,980 Fordi denne særlige pakke går ud på Internettet, 1100 01:03:54,980 --> 01:03:57,720 det får også en adresse for proxy-server, 1101 01:03:57,720 --> 01:04:01,520 som har en særlig funktion, som vi vil se senere. 1102 01:04:01,520 --> 01:04:06,650 Pakken er nu lanceret på dit lokale netværk, eller LAN. 1103 01:04:06,650 --> 01:04:10,160 Dette netværk anvendes til at forbinde alle de lokale computere ' 1104 01:04:10,160 --> 01:04:15,900 routere, printere, etc., for udveksling af oplysninger inden for de fysiske mure af bygningen. 1105 01:04:15,900 --> 01:04:20,290 Den LAN er en temmelig ukontrolleret sted, og desværre 1106 01:04:20,290 --> 01:04:23,950 ulykker kan ske. 1107 01:04:31,190 --> 01:04:34,710 Motorvejen af ​​LAN er pakket med alle typer information. 1108 01:04:34,710 --> 01:04:38,900 Det er IP-pakker, Novell pakker, AppleTalk pakker. 1109 01:04:38,900 --> 01:04:41,270 De gĺr imod trafik, som sædvanlig. 1110 01:04:41,270 --> 01:04:44,260 Den lokale router læser adressen og, om nødvendigt, 1111 01:04:44,260 --> 01:04:48,520 løfter pakken på et andet net. 1112 01:04:48,520 --> 01:04:54,270 Ah, routeren. Et symbol på kontrol i en tilsyneladende uorganiseret verden. 1113 01:04:54,270 --> 01:05:05,480 [Router mumler og taler til sig selv] 1114 01:05:05,480 --> 01:05:10,030 >> [Narrator] Der er han, systematisk, ufølsom, metodisk, 1115 01:05:10,030 --> 01:05:14,150 konservativ, og nogle gange ikke helt på omgangshøjde. 1116 01:05:14,150 --> 01:05:17,680 Men han er eksakt, for det meste. 1117 01:05:32,270 --> 01:05:36,820 Da pakkerne forlader router, de gør deres vej ind i virksomhedernes Internet 1118 01:05:36,820 --> 01:05:40,830 og hoved for routeren switch. 1119 01:05:40,830 --> 01:05:46,250 Lidt mere effektiv end den routeren, routeren switch spiller kispus med IP-pakker, 1120 01:05:46,250 --> 01:05:48,920 behændigt routing dem langs deres vej. 1121 01:05:48,920 --> 01:05:52,130 En digital 'pinball wizard, "hvis du vil. 1122 01:05:52,130 --> 01:06:04,270 [Router switch taler til sig selv] 1123 01:06:09,830 --> 01:06:12,150 [Narrator] Som pakker ankommer til deres destination, 1124 01:06:12,150 --> 01:06:14,740 de er plukket af netværksinterface, 1125 01:06:14,740 --> 01:06:18,040 klar til at blive sendt til det næste niveau. 1126 01:06:18,040 --> 01:06:21,010 I dette tilfælde. Proxy 1127 01:06:21,010 --> 01:06:25,040 Fuldmagten bliver brugt af mange virksomheder som en slags midt mand 1128 01:06:25,040 --> 01:06:27,630 for at mindske belastningen på internetforbindelse 1129 01:06:27,630 --> 01:06:32,240 og af sikkerhedsmæssige årsager,. samt 1130 01:06:32,240 --> 01:06:38,750 Som du kan se, pakkerne er alle af forskellige størrelser afhængig af deres indhold. 1131 01:06:55,210 --> 01:07:01,890 Fuldmægtigen åbner pakken og ser på webadressen eller URL. 1132 01:07:01,890 --> 01:07:04,950 Afhængigt af om adressen er acceptabel, 1133 01:07:04,950 --> 01:07:08,000 Den pakke sendes videre til internettet. 1134 01:07:13,890 --> 01:07:19,630 Der er dog nogle adresser, der ikke opfylder med godkendelse af proxy. 1135 01:07:19,630 --> 01:07:25,680 Det vil sige, selskaber 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 vide af det. 1138 01:07:32,410 --> 01:07:36,350 For dem, der gør det, er det på vej igen. 1139 01:07:46,850 --> 01:07:53,310 >> Næste op, firewall. 1140 01:07:53,310 --> 01:07:57,410 Virksomhedens firewall tjener to formål. 1141 01:07:57,410 --> 01:08:02,420 Det forhindrer nogle ret grimme ting fra internettet i at komme ind på intranettet, 1142 01:08:02,420 --> 01:08:10,280 og det kan også forhindre, at følsomme firmaoplysninger fra at blive sendt ud på internettet. 1143 01:08:10,280 --> 01:08:12,980 Når gennem firewallen, samler en router op pakken 1144 01:08:12,980 --> 01:08:18,180 og placerer den på et meget snævrere vej, eller båndbredde, som vi siger. 1145 01:08:18,180 --> 01:08:23,720 Det er klart, vejen er ikke bred nok til at tage dem alle. 1146 01:08:23,720 --> 01:08:29,319 Nu kan du spekulerer på, hvad der sker med alle de pakker, som ikke gør det hen ad vejen. 1147 01:08:29,319 --> 01:08:32,270 Tja, når Mr. IP ikke modtager en kvittering 1148 01:08:32,270 --> 01:08:35,000 at en pakke er blevet modtaget i rette tid, 1149 01:08:35,000 --> 01:08:39,890 han blot sende en udskiftning pakke. 1150 01:08:39,890 --> 01:08:44,760 Vi er nu klar til at træde verden af ​​internettet. 1151 01:08:44,760 --> 01:08:49,370 En spindelvæv af sammenkoblede net, der spænder hele vores verden. 1152 01:08:49,370 --> 01:08:56,050 Her routere og switche etablere forbindelser mellem netværk. 1153 01:08:56,050 --> 01:08:59,200 Nu Net er et helt andet miljø end du vil finde 1154 01:08:59,200 --> 01:09:01,569 indenfor de beskyttende mure dit LAN. 1155 01:09:01,569 --> 01:09:04,060 Herude er det det vilde vesten. 1156 01:09:04,060 --> 01:09:06,359 Masser af plads, masser af muligheder, 1157 01:09:06,359 --> 01:09:09,760 masser af ting at udforske og steder at gå. 1158 01:09:09,760 --> 01:09:12,760 Takket være meget lidt kontrol og regulering, 1159 01:09:12,760 --> 01:09:18,300 nye ideer finde frugtbar jord at skubbe kuvert af deres muligheder. 1160 01:09:18,300 --> 01:09:22,330 Men på grund af denne frihed, visse farer også lure. 1161 01:09:22,330 --> 01:09:27,000 Du vil aldrig vide, hvornår du vil møde den frygtede ping af død, 1162 01:09:27,000 --> 01:09:29,890 en særlig version af en normal anmodning ping, 1163 01:09:29,890 --> 01:09:35,720 som nogle idiot udtænkt at rod op intetanende værter. 1164 01:09:35,720 --> 01:09:39,130 Stien vore pakker tager kan være via satellit, 1165 01:09:39,130 --> 01:09:43,090 telefonlinjer, trådløst eller endda flyver på transatlantiske kabel. 1166 01:09:43,090 --> 01:09:46,520 De behøver ikke altid tage den hurtigste eller korteste rute muligt, 1167 01:09:46,520 --> 01:09:50,290 men de vil få der til sidst. 1168 01:09:50,290 --> 01:09:55,230 Måske det er derfor, det kaldes "The World Wide Wait". 1169 01:09:55,230 --> 01:09:57,980 Men når alt fungerer gnidningsløst, 1170 01:09:57,980 --> 01:10:03,800 du kan omgå kloden fem gange på dråbe af en hat, bogstaveligt talt. 1171 01:10:03,800 --> 01:10:08,230 Og alt for omkostningerne ved et lokalt opkald eller mindre. 1172 01:10:08,230 --> 01:10:15,070 Nær slutningen af ​​vores destination, vil vi finde en anden firewall. 1173 01:10:15,070 --> 01:10:18,420 >> Afhængig af din perspektiv som en datapakke, 1174 01:10:18,420 --> 01:10:23,730 firewall'en kunne være en bastion for sikkerhed eller en frygtet modstander. 1175 01:10:23,730 --> 01:10:28,530 Det hele afhænger af, hvilken side du er på, og hvad dine hensigter er. 1176 01:10:28,530 --> 01:10:34,990 Firewallen er designet til at lade i kun de pakker, der opfylder dens kriterier. 1177 01:10:34,990 --> 01:10:39,360 Denne firewall kører på port 80 og 25 år. 1178 01:10:39,360 --> 01:10:46,630 Alle forsøg på at komme igennem andre porte er lukkede for erhvervslivet. 1179 01:10:57,660 --> 01:11:03,480 Port 25 bruges til e-mail-pakker, 1180 01:11:03,480 --> 01:11:10,720 mens port 80 er indgangen for pakker fra internettet til webserveren. 1181 01:11:10,720 --> 01:11:15,080 Inde i firewall, der pakker screenes mere grundigt. 1182 01:11:15,080 --> 01:11:17,970 Nogle pakker gør det nemt igennem tolden, 1183 01:11:17,970 --> 01:11:21,420 mens andre ser bare en smule tvivlsom. 1184 01:11:21,420 --> 01:11:24,060 Nu er firewall officer ikke let narre, 1185 01:11:24,060 --> 01:11:32,120 såsom når denne ping af død pakke forsøger at skjule sig som et normalt ping-pakke. 1186 01:11:32,120 --> 01:11:37,520 [Firewall officer taler til pakker] 1187 01:11:37,520 --> 01:11:40,510 [Narrator] For disse pakker heldige nok til at gøre det så langt, 1188 01:11:40,510 --> 01:11:45,730 rejsen er næsten slut. 1189 01:11:45,730 --> 01:11:52,130 Det er bare en linje op på grænsefladen, der skal tages op i webserveren. 1190 01:11:52,130 --> 01:11:55,440 I dag kan en webserver køre på mange ting, 1191 01:11:55,440 --> 01:11:59,230 fra en mainframe til en web cam til computeren på dit skrivebord. 1192 01:11:59,230 --> 01:12:01,720 Hvorfor ikke dit køleskab? 1193 01:12:01,720 --> 01:12:04,870 Med den rette opsætning, kan du finde ud af om du har makings 1194 01:12:04,870 --> 01:12:08,390 for Kylling Cacciatore, eller hvis du er nødt til at gå på indkøb. 1195 01:12:08,390 --> 01:12:11,760 Husk, at dette er begyndelsen på nettet. 1196 01:12:11,760 --> 01:12:17,310 Næsten alt er muligt. 1197 01:12:17,310 --> 01:12:20,440 En efter en er de pakker modtaget, 1198 01:12:20,440 --> 01:12:26,320 åbnet, og pakkes ud. 1199 01:12:26,320 --> 01:12:31,200 De oplysninger, de indeholder, det vil sige Deres anmodning om oplysninger, 1200 01:12:31,200 --> 01:12:34,830 sendes videre til webserveren applikation. 1201 01:12:41,540 --> 01:12:47,140 Selve pakken er genanvendt, 1202 01:12:47,140 --> 01:12:57,570 klar til at blive brugt igen og fyldt med din ønskede oplysninger, 1203 01:12:57,570 --> 01:13:03,340 behandlet, og sendt ud på sin vej tilbage til dig. 1204 01:13:03,340 --> 01:13:13,250 Tilbage forbi firewall, routere, og videre gennem til internettet. 1205 01:13:13,250 --> 01:13:21,020 Tilbage gennem virksomhedens firewall 1206 01:13:21,020 --> 01:13:24,180 og på din interface, 1207 01:13:24,180 --> 01:13:31,180 klar til at levere din webbrowser med de oplysninger, du har anmodet om. 1208 01:13:31,180 --> 01:13:39,840 Dvs. denne film. 1209 01:13:39,840 --> 01:13:43,550 Tilfreds med deres indsats, og at stole på bedre verden, 1210 01:13:43,550 --> 01:13:50,250 vores trofaste datapakker rider ud saligt ind i solnedgangen på en anden dag, 1211 01:13:50,250 --> 01:13:56,880 kende fuldt ud de har tjent deres mestre godt. 1212 01:13:56,880 --> 01:14:02,560 Nu er det ikke en lykkelig slutning? 1213 01:14:02,560 --> 01:14:07,040 [Malan] Okay, det er nok. Vi vil se dig i næste uge. 1214 01:14:07,040 --> 01:14:10,040 [CS50.TV]