1 00:00:00,000 --> 00:00:02,620 [Powered by Google Translate] [Tydzień 7, ciąg dalszy] 2 00:00:02,620 --> 00:00:05,090 [David J. Malan, Harvard University] 3 00:00:05,090 --> 00:00:07,780 [To jest CS50.] [CS50.TV] 4 00:00:07,780 --> 00:00:09,810 Dobrze. Welcome Back. To CS50, 5 00:00:09,810 --> 00:00:12,100 i to jest koniec tygodnia 7. 6 00:00:12,100 --> 00:00:15,460 Tak więc jeden z tych głupich rzeczy małych, że idzie w całym internecie 7 00:00:15,460 --> 00:00:24,080 i slurped, i teraz powinna się trochę naukowy sens dla Ciebie. 8 00:00:24,080 --> 00:00:28,330 Cóż, to było zabawne do tego faceta, niż było do was. 9 00:00:28,330 --> 00:00:32,619 Mówiąc o, no, chłopaki, 10 00:00:32,619 --> 00:00:42,550 dziś są urodziny Nate'a. 11 00:00:42,550 --> 00:00:46,630 Aby dać ci poczucie Nate'a jak dobry i ja 12 00:00:46,630 --> 00:00:50,140 na rozwój sieci w oparciu o klasy poniedziałkowej i opiera się na tym, 13 00:00:50,140 --> 00:00:53,170 Myślałam, że podciągnąć stronę Nate'a do domu, jeśli nie widziałeś jeszcze. 14 00:00:53,170 --> 00:00:57,020 To tutaj HTML IA Nate'a. 15 00:00:57,020 --> 00:00:59,380 Więc zobaczyć jego kodu źródłowego, jeśli chcesz zobaczyć, jak to zrobić, i Nate, 16 00:00:59,380 --> 00:01:02,250 czy możemy embarass Cię tak krótko, że personel ma coś dla ciebie 17 00:01:02,250 --> 00:01:06,080 jeśli chcesz podzielić się deser niektóre z dzieci w klasie tutaj. 18 00:01:06,080 --> 00:01:10,150 Jeśli chcesz przyjść na dół. 19 00:01:10,150 --> 00:01:14,350 Wszyscy przyklasnąć i są bardzo ładne, ale nikt nie siedzi gdzieś w pobliżu Nate'a, 20 00:01:14,350 --> 00:01:17,560 z jakiegoś powodu, w tej strefie tylnej. 21 00:01:17,560 --> 00:01:24,020 Więc może można znaleźć niektórzy ludzie cieszyć te z. 22 00:01:24,020 --> 00:01:33,380 Happy Birthday, Nate. 23 00:01:33,380 --> 00:01:37,660 >> Dodatkowe hellos: pokazaliśmy kilka klipów z naszych CS50x studentów. 24 00:01:37,660 --> 00:01:39,710 Jeśli chciałbyś, aby zobaczyć, kto jeszcze jest na świecie 25 00:01:39,710 --> 00:01:41,850 który jest po wzdłuż, można wybrać się do tego adresu URL, 26 00:01:41,850 --> 00:01:45,780 gdzie Joseph, jeden z naszych TFS, zebrała montaż rodzaju 27 00:01:45,780 --> 00:01:50,290 każdego, kto został przekazującym te filmy, wśród nich Rick Astley. 28 00:01:50,290 --> 00:01:53,010 A jeśli przewijać nich, to naprawdę bardzo inspirujące 29 00:01:53,010 --> 00:01:56,890 aby zobaczyć różnorodność krajów i miast, z których ludzie są wywoływania. 30 00:01:56,890 --> 00:02:00,830 Więc jeśli chcesz, aby spojrzeć na to, że będzie się do końca semestru. 31 00:02:00,830 --> 00:02:05,370 Dzisiaj kontynuujemy nasze spojrzenie na sieci, programowania WWW, HTML i tym podobne, 32 00:02:05,370 --> 00:02:08,280 i my również lunch zbliża się w ten piątek 33 00:02:08,280 --> 00:02:11,360 jeśli chcesz, a zwłaszcza, nie zrobiłeś tego wcześniej. 34 00:02:11,360 --> 00:02:13,630 Motyw ten piątek będzie mieć urodziny Nate'a, 35 00:02:13,630 --> 00:02:15,700 więc jeśli chcesz zjeść obiad urodzinowy z Natem 36 00:02:15,700 --> 00:02:17,500 i inni, niektórzy z naszych przyjaciół z branży, 37 00:02:17,500 --> 00:02:19,300 proszę głowę do tego URL tam. 38 00:02:19,300 --> 00:02:22,510 Space, jak zawsze, jest ograniczona. Ponadto, jeśli nie pamiętasz, 39 00:02:22,510 --> 00:02:26,460 sobie sprawę, że w przyszłym tygodniu mija termin problemu ustalonym 4 w Scavenger Hunt, 40 00:02:26,460 --> 00:02:30,070 której po odzyskaniu tych wszystkich plików JPEG z card.raw, 41 00:02:30,070 --> 00:02:32,880 ty i twoi koledzy z sekcji, jeśli chcesz, możesz spróbować fotografować 42 00:02:32,880 --> 00:02:36,100 jak wielu informatyków z tej karty pamięci, jak to możliwe, 43 00:02:36,100 --> 00:02:39,070 i ty i twój punkt będzie wygrać wspaniałe nagrody. 44 00:02:39,070 --> 00:02:44,470 Odsyłają do PSET 4 specyfikacji, co do złożenia i do kiedy. 45 00:02:44,470 --> 00:02:47,650 Ponadto, jeśli chcesz, aby Twoja dzieło uwiecznione 46 00:02:47,650 --> 00:02:51,400 na kurs na stronie internetowej i jej historii odzieży, 47 00:02:51,400 --> 00:02:54,010 wiem, że są mile widziane teraz, aby rozpocząć składanie projektów 48 00:02:54,010 --> 00:02:57,180 na tegoroczne T-shirty i bluzy i tym podobne. 49 00:02:57,180 --> 00:02:59,200 Dołożymy wszelkich starań, aby to tak wiele, jak to możliwe, 50 00:02:59,200 --> 00:03:01,440 ale musimy niektórych członków personelu przeglądu wszystkich projektów 51 00:03:01,440 --> 00:03:04,180 aby upewnić się, że są zgodne ze specyfikacjami, 52 00:03:04,180 --> 00:03:07,500 i następnie wybrać ogólnie kilka z nich, które mają być wystawione. 53 00:03:07,500 --> 00:03:10,620 Więc jeśli jesteś typ konstrukcji, po prostu wiem, że wymagania 54 00:03:10,620 --> 00:03:14,030 dla grafiki PNG, co najmniej 200 DPI, 55 00:03:14,030 --> 00:03:16,520 nie powinno być więcej niż 4000 x 4000 pikseli, 56 00:03:16,520 --> 00:03:19,010 i nie więcej niż 10 MB, ale zapraszamy do korzystania rzeczy jak 57 00:03:19,010 --> 00:03:22,430 Photoshop lub GIMP lub różne programy, graficzny 58 00:03:22,430 --> 00:03:24,590 co masz do dyspozycji. 59 00:03:24,590 --> 00:03:28,280 >> Również na horyzoncie jest projekt końcowy. Ostateczny projekt jest naprawdę kulminacyjnym 50, 60 00:03:28,280 --> 00:03:30,560 przy czym wszystkie w trakcie zadań, 61 00:03:30,560 --> 00:03:33,170 To Twoja szansa naprawdę robić własne rzeczy. 62 00:03:33,170 --> 00:03:35,280 A to może być po prostu zrobić coś dla zabawy, 63 00:03:35,280 --> 00:03:38,160 można go rozwiązać jakiś palący problem, grupa studentów ma, 64 00:03:38,160 --> 00:03:40,980 jakiegoś nowego serwisu, niektóre nowy mechanizm zbierania danych. 65 00:03:40,980 --> 00:03:43,420 To może być mobilna aplikacja dla Androida, dla iOS. 66 00:03:43,420 --> 00:03:46,030 Naprawdę, niebo jest granicą, a w ciągu najbliższych kilku tygodni, 67 00:03:46,030 --> 00:03:50,900 jak przejście z C do tych wyższego szczebla języków takich jak PHP i JavaScript, 68 00:03:50,900 --> 00:03:55,150 znajdziesz się w coraz większym stopniu zapoznał się z niektórych technik w świecie rzeczywistym, 69 00:03:55,150 --> 00:03:57,800 niektóre rzeczywistych narzędzi, oraz uzupełnienie, że 70 00:03:57,800 --> 00:04:00,170 wiem, że kurs ma historię seminariów, 71 00:04:00,170 --> 00:04:02,880 przy czym w ciągu najbliższych kilku tygodni, niektórzy z pracowników dydaktycznych 72 00:04:02,880 --> 00:04:06,160 i przyjaciele naszego od kampusu będzie oferować opcjonalne seminaria 73 00:04:06,160 --> 00:04:08,540 które wykraczają poza to, co zazwyczaj odbywa się w sekcji 74 00:04:08,540 --> 00:04:11,090 wprowadzenie do rzeczy jak programowanie Android 75 00:04:11,090 --> 00:04:13,450 wprowadzenie do rzeczy takich jak iOS programowania 76 00:04:13,450 --> 00:04:15,950 lub bardziej zaawansowanych web-rozwoju techniki. 77 00:04:15,950 --> 00:04:17,970 Jest cała historia to już online. 78 00:04:17,970 --> 00:04:25,000 Jeśli pójdziesz do cs50.net/seminars, robiliśmy to już od jakiegoś roku, 79 00:04:25,000 --> 00:04:28,740 , a zobaczysz, że w archiwum tutaj z plikami PDF i filmy oraz jak 80 00:04:28,740 --> 00:04:33,090 kilka filmów kilkanaście seminariów. 81 00:04:33,090 --> 00:04:37,380 W zeszłym roku, na przykład, mieliśmy seminarium acing swój technicznych wywiadów, 82 00:04:37,380 --> 00:04:40,980 jeśli rzeczywiście chce pójść i zrobić staż lub w pełnym wymiarze czasu koncertu. 83 00:04:40,980 --> 00:04:43,450 Windows mobile rozwój, rozwój Android, Google Maps, 84 00:04:43,450 --> 00:04:47,700 API, CSS, opracowanie dla BlackBerry, Emacs. 85 00:04:47,700 --> 00:04:52,610 Naprawdę, proszę spojrzeć na którykolwiek z tych seminariów w Twojej wygody. 86 00:04:52,610 --> 00:04:57,080 A my będziemy się trzymać kilka nowych w tym semestrze, jak również. 87 00:04:57,080 --> 00:04:59,020 >> Więc co jest do przodu z końcowego projektu? 88 00:04:59,020 --> 00:05:01,090 Cóż, po pierwsze, nawet jeśli ta data jest dość bliskie, 89 00:05:01,090 --> 00:05:06,460 to jest naprawdę tylko okazja, aby zacząć myśleć o końcowym projekcie całkiem realistycznie. 90 00:05:06,460 --> 00:05:10,550 Wiemy tylko początki część tego, co będziemy nadal obejmujące w trakcie, 91 00:05:10,550 --> 00:05:13,470 HTML, PHP i jak, ale wszyscy jesteście zaznajomieni z sieci, 92 00:05:13,470 --> 00:05:16,270 i stronniczość tę rozmowę w kierunku sieci tylko dlatego, że 93 00:05:16,270 --> 00:05:18,380 większość osób robi opartych na sieci Web finałowych projektów, 94 00:05:18,380 --> 00:05:20,260 ale to wcale nie jest wymagane. 95 00:05:20,260 --> 00:05:22,260 Przy użyciu C jest w porządku, celem C, Java, 96 00:05:22,260 --> 00:05:25,350 inny język może wiesz lub chcesz wiedzieć, jest całkiem w porządku. 97 00:05:25,350 --> 00:05:29,370 Jednak, aby uzyskać soki płynące początkowo będziemy oczekiwać przedstawienia preproposal 98 00:05:29,370 --> 00:05:33,520 co, za PDF na stronie internetowej, która jest teraz w cs50.net, 99 00:05:33,520 --> 00:05:36,080 i na górze po lewej stronie zobaczysz ostateczny projekt 100 00:05:36,080 --> 00:05:38,920 jest specyfikacja końcowego projektu, 101 00:05:38,920 --> 00:05:41,470 i jest na preproposal szczegóły i podobne. 102 00:05:41,470 --> 00:05:44,760 To dość dużo sprowadza się do e-mail do kolegów nauczycieli 103 00:05:44,760 --> 00:05:48,450 tylko nawiązać rozmowę z niego o tym, co myślisz. 104 00:05:48,450 --> 00:05:52,510 Na projects.cs50.net jest skarbnicą pomysłów od ludzi na kampusie 105 00:05:52,510 --> 00:05:54,480 Jeśli nie radzisz sobie wymyślić jakiś pomysł, 106 00:05:54,480 --> 00:06:01,140 i manual.cs50.net/APIs jest repozytorium linków do API. 107 00:06:01,140 --> 00:06:06,710 >> Co jednak jest API? 108 00:06:06,710 --> 00:06:09,790 Co jest API? Powiedziałem to co najmniej dwukrotnie, 109 00:06:09,790 --> 00:06:12,640 według stenogramu z ostatnich kilku tygodni. 110 00:06:12,640 --> 00:06:17,050 Co to jest? [Student, niezrozumiały] 111 00:06:17,050 --> 00:06:19,340 >> Dobrze. Więc interfejs programowania coś. 112 00:06:19,340 --> 00:06:22,710 Interfejs programowania aplikacji, a to może przybierać różne formy, 113 00:06:22,710 --> 00:06:25,850 ale co to tak naprawdę sprowadza się do jest kod 114 00:06:25,850 --> 00:06:29,660 że ktoś inny hs pisemnych lub danych, które ktoś inny zebrane 115 00:06:29,660 --> 00:06:33,670 że jest dostępne dla Ciebie w jakiś sposób programowy. 116 00:06:33,670 --> 00:06:36,630 Można napisać kod w C, PHP, Python, Ruby, 117 00:06:36,630 --> 00:06:38,760 niezależnie od języka z wyboru jest zazwyczaj, 118 00:06:38,760 --> 00:06:42,240 i można jakoś opierać cudzym funkcjonalności 119 00:06:42,240 --> 00:06:44,440 lub ktoś inny zestaw danych. 120 00:06:44,440 --> 00:06:47,210 Na przykład, jeśli pójdę na ten link tutaj 121 00:06:47,210 --> 00:06:50,750 i zobaczysz parę linków na kolejnej stronie 122 00:06:50,750 --> 00:06:56,093 w którym mamy własne API CS50 firmy, które są bardzo Harvard-centric, a następnie innej API. 123 00:06:56,930 --> 00:06:59,300 Wśród API firm trzecich są naprawdę przydatne rzeczy 124 00:06:59,300 --> 00:07:01,780 jak jest w stanie wysłać do ludzi SMSy, 125 00:07:01,780 --> 00:07:04,690 jest w stanie odbierać wiadomości SMS od ludzi. 126 00:07:04,690 --> 00:07:08,160 I takie rzeczy, że może nie masz pojęcia, jak do realizacji siebie, 127 00:07:08,160 --> 00:07:10,440 ale dzięki usług, niektóre darmowe, a niektóre komercyjne, 128 00:07:10,440 --> 00:07:14,000 można zbudować na szczycie tych, i zrobić coś dla ciebie. 129 00:07:14,000 --> 00:07:16,990 Wśród API CS50 to są te campus-centric rzeczy jak 130 00:07:16,990 --> 00:07:21,480 Kursy Harvard, energii, imprezy, jedzenie, mapy, wiadomości, tweets i Shuttleboy własnej, 131 00:07:21,480 --> 00:07:23,940 i są to interfejsy API, które wyglądają trochę coś takiego. 132 00:07:23,940 --> 00:07:26,990 >> Pozwól mi wyciągnąć API HarvardFood. 133 00:07:26,990 --> 00:07:30,620 Jeśli kiedykolwiek byłeś na stronie HUD jest, to prawdopodobnie tam nie było 134 00:07:30,620 --> 00:07:35,410 po prostu zobaczyć, co jest na obiad lub zobaczyć, co godzina to dla niektórych d-hall. 135 00:07:35,410 --> 00:07:38,000 Cóż, nie jest to szczególnie łatwe w obsłudze, 136 00:07:38,000 --> 00:07:41,100 a więc to, co udało nam się już jakiś czas temu został pisaliśmy oprogramowania 137 00:07:41,100 --> 00:07:47,270 zdarza się w PHP, które rzeczywiście ekran scrapes całość stronie HUD jego. 138 00:07:47,270 --> 00:07:51,400 Do przeszukiwania coś skrobać oznacza napisać program w językach takich jak PHP 139 00:07:51,400 --> 00:07:55,270 że udaje się przeglądarki, choć można go uruchomić w wierszu polecenia, 140 00:07:55,270 --> 00:07:58,180 że udaje się przeglądarki, łączy się na stronie internetowej, 141 00:07:58,180 --> 00:08:01,480 pobiera jej HTML, język, w którym jest napisane, 142 00:08:01,480 --> 00:08:04,300 a następnie otrzymuje się, lub bardziej konkretnie, przetwarza go 143 00:08:04,300 --> 00:08:06,140 od góry do dołu, od lewej do prawej. 144 00:08:06,140 --> 00:08:08,870 A co zrobiliśmy było pisaliśmy nasz kod w taki sposób, że 145 00:08:08,870 --> 00:08:12,910 każdym razem gdy widziałem coś w tym HTML, który wyglądał jak coś w menu, 146 00:08:12,910 --> 00:08:16,470 jak hamburger, chcemy zaimportować, że w naszej własnej bazy danych. 147 00:08:16,470 --> 00:08:20,410 I za każdym razem widzieliśmy odżywczych, możemy importować, że w naszej własnej bazy danych. 148 00:08:20,410 --> 00:08:23,090 I to, co zrobił, było wykorzystać fakt, że HUD na stronie internetowej, 149 00:08:23,090 --> 00:08:27,280 chociaż może to być nie lada wyzwaniem dla nas, ludzi, aby przejść 150 00:08:27,280 --> 00:08:32,559 pod maską, wszystkie HTML są generowane przez ich programów komputerowych. 151 00:08:32,559 --> 00:08:35,159 Tak więc wszystkie ich HTML, choć może to wyglądać niechlujny, 152 00:08:35,159 --> 00:08:38,026 jak większość witryn internetowych pod maską wynika wzór. 153 00:08:38,260 --> 00:08:40,799 Więc po prostu spędziliśmy kilka godzin na zastanawianie się, że wzór 154 00:08:40,799 --> 00:08:44,240 tak, że w końcu, które wyrzucamy cały bałagan HTML, 155 00:08:44,240 --> 00:08:47,340 wszystkie estetyki okładziny i kursywą pogrubioną i podobnych, 156 00:08:47,340 --> 00:08:52,350 i czym jesteśmy wtedy w stanie zrobić, to narażać, że te same dane. 157 00:08:52,350 --> 00:08:54,870 Na przykład, w ten sposób. 158 00:08:54,870 --> 00:08:56,840 Tak więc, zgodnie z dokumentacją tutaj, 159 00:08:56,840 --> 00:08:59,190 poinformowali świat, że jeśli poprosisz o adres URL 160 00:08:59,190 --> 00:09:03,310 , który wygląda tak, food.cs50.net / coś, 161 00:09:03,310 --> 00:09:07,220 i zapewnienia pewnych parametrów, które będziemy dziś mówić, 162 00:09:07,220 --> 00:09:11,780 jak koniec daty czasu, data rozpoczęcia czasu, posiłek i tak dalej, 163 00:09:11,780 --> 00:09:14,090 co nasze serwery powróci do was, na przykład, 164 00:09:14,090 --> 00:09:18,740 jest plik CSV, comma separted wartości takich jak pliku Excel, 165 00:09:18,740 --> 00:09:23,140 zawierający wszystko na śniadanie na tej konkretnej daty w marcu ubiegłego roku 166 00:09:23,140 --> 00:09:25,450 kiedy stało się napisać tę dokumentację. 167 00:09:25,450 --> 00:09:27,870 >> Dla tych, którzy znają, CSV, nie tylko w formacie pliku. 168 00:09:27,870 --> 00:09:30,610 Jest inny format to wszystko bardziej uniwersalny 169 00:09:30,610 --> 00:09:32,670 nazywa JSON, JavaScript Object Notation. 170 00:09:32,670 --> 00:09:34,770 Dane mogą wrócić w tym formacie. 171 00:09:34,770 --> 00:09:38,110 Więc jest to, że na wynos czy nurkowania w tym API 172 00:09:38,110 --> 00:09:41,170 lub inny z CS50 męskie lub coś tam w Internecie, 173 00:09:41,170 --> 00:09:45,560 lub w ogóle nie uświadomić sobie, że świat coraz bardziej zaczął standaryzować 174 00:09:45,560 --> 00:09:47,670 w jaki sposób komputery są połączone ze sobą. 175 00:09:47,670 --> 00:09:50,660 Stosujemy standardowe formaty danych, takie jak CSV lub JSON. 176 00:09:50,660 --> 00:09:54,320 I co to oznacza dla ciebie można napisać ciekawą część programu 177 00:09:54,320 --> 00:09:56,580 , które umożliwia użytkownikowi przeszukiwać dining-hall menu 178 00:09:56,580 --> 00:10:00,010 który pozwala im tworzyć listy ulubionych, które pozwala im otrzymywać powiadomienia SMS 179 00:10:00,010 --> 00:10:02,480 gdy ich ulubiony posiłek ma być podawane w niektórych d-hall 180 00:10:02,480 --> 00:10:07,090 używając cudzego zestawów danych i budowaniu na górze ich API. 181 00:10:07,090 --> 00:10:13,600 Więc więcej na ten temat w formie seminariów i dokumentacją, że masz tutaj online. 182 00:10:13,600 --> 00:10:16,450 Tak więc ci, a następnie są API. 183 00:10:16,450 --> 00:10:18,900 >> To prowadzi nas z powrotem do HTML. Szybkie podsumowanie. 184 00:10:18,900 --> 00:10:22,920 Co to jest HTML? 185 00:10:22,920 --> 00:10:25,000 [Student, niezrozumiały] >> Good. HyperText Markup Language. 186 00:10:25,000 --> 00:10:31,300 Ktoś inny, co to jest 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. Więc HTML, HyperText. 189 00:10:40,330 --> 00:10:43,100 HyperText prostu odnosi się do sieci, w przeważającej części. 190 00:10:43,100 --> 00:10:45,730 Markup oznacza, że ​​nie jest właściwie językiem programowania, HTML. 191 00:10:45,730 --> 00:10:48,120 To nie język, który można wyrazić logikę widok jest 192 00:10:48,120 --> 00:10:50,710 Nie ma pętli. Nie ma warunków. 193 00:10:50,710 --> 00:10:52,820 Nie posiada funkcji, per se. 194 00:10:52,820 --> 00:10:56,680 Przeciwnie, ma ona te rzeczy zwane tagi, lub bardziej poprawnie, elementy. 195 00:10:56,680 --> 00:10:59,970 I te elementy mają znaczniki początkowe i znaczniki końcowe, 196 00:10:59,970 --> 00:11:04,300 lub otwarte i zamknięte tagi tagi i co te tagi zazwyczaj oznacza dla przeglądarki jest, 197 00:11:04,300 --> 00:11:09,270 zacząć robić coś, a potem przestać coś robić, choć istnieją wyjątki od tego. 198 00:11:09,270 --> 00:11:12,480 Czasami jest to po prostu "umieścić podział wiersza tutaj," na przykład. 199 00:11:12,480 --> 00:11:15,150 I widzieliśmy przykłady tego dnia inny, między pogrubioną okładziny, 200 00:11:15,150 --> 00:11:17,430 podziały wiersza, a następnie kilka innych tagów. 201 00:11:17,430 --> 00:11:19,880 Więc HTML jest językiem, w którym strony są napisane. 202 00:11:19,880 --> 00:11:23,760 Tak więc, jeśli pójdę na coś jak Google.com 203 00:11:23,760 --> 00:11:26,180 i pociągnij tylko ich stronę główną, 204 00:11:26,180 --> 00:11:29,690 Przypomnijmy, że jeśli klikniesz prawym przyciskiem myszy lub sterowania kliknij 205 00:11:29,690 --> 00:11:32,140 i spojrzeć na źródło strony, zazwyczaj 206 00:11:32,140 --> 00:11:34,420 to kompletny bałagan w tych dniach pod maską, ale to dlatego, że 207 00:11:34,420 --> 00:11:38,170 komputery nie dbam o białej przestrzeni, więc to nie musi ładnie wyglądać. 208 00:11:38,170 --> 00:11:40,240 Ale jeśli powiększyć jej części, 209 00:11:40,240 --> 00:11:43,460 zauważyć, że Chrome, po prostu być miły, jest kolorami rzeczy. 210 00:11:43,460 --> 00:11:48,460 Rzeczywiście, jest to pierwszy tag, który widzieliśmy na stronie internetowej. 211 00:11:48,460 --> 00:11:51,750 I znowu, HTML 5, najnowsza wersja tego języka, 212 00:11:51,750 --> 00:11:53,830 ma to coś na początku, 213 00:11:53,830 --> 00:11:57,820 00:12:03,580 ale to po prostu swego rodzaju standardem, który mówi, hej świat, oto plik HTML w wersji 5. 215 00:12:03,580 --> 00:12:08,920 >> Najciekawsza część zaczyna się tutaj. Więc 00:12:11,640 z elementów HTML, ostatni raz. 217 00:12:11,640 --> 00:12:14,630 Czym były te dwa główne dzieci? 218 00:12:14,630 --> 00:12:17,170 Głowa i ciało, tak jak facet z tatuażem chwilą. 219 00:12:17,170 --> 00:12:19,640 Istnieją dwie części stronie, głowa i ciało, 220 00:12:19,640 --> 00:12:23,750 i pamięć, a następnie, że być może najprostszym strona moglibyśmy wygląda. 221 00:12:23,750 --> 00:12:27,460 A ja go po prostu wcięte być rodzaj czysty i schludny z mojego kodu, 222 00:12:27,460 --> 00:12:30,710 ale to, co naprawdę ważne jest to, że istnieje jakaś hierarchia tego. 223 00:12:30,710 --> 00:12:35,420 I każdy znacznik, że mam otwarte już zamknięte i że nie ma w związku z tym ta symetria 224 00:12:35,420 --> 00:12:38,300 do wszystkich znaczników, które stworzyłem. 225 00:12:38,300 --> 00:12:41,620 Więc ostatni raz, kiedy zacząłem pisać stron internetowych na własnym laptopie. 226 00:12:41,620 --> 00:12:45,470 Otworzyłem edytować tekst, zapisane plik jako hello.html, 227 00:12:45,470 --> 00:12:50,190 Potem wyciągnął plik na mojej przeglądarce, i voila, miałem stronę w Internecie. 228 00:12:50,190 --> 00:12:53,110 Teraz, to nie całkiem przypadek znajduje; miałem stronę na dysku twardym, 229 00:12:53,110 --> 00:12:58,260 i byłem dosłownie jedyną osobą na świecie, która by zobaczyć, że strony WWW w przeglądarce. 230 00:12:58,260 --> 00:13:00,670 >> Więc dzisiaj, wprowadzamy rzeczywisty serwer WWW 231 00:13:00,670 --> 00:13:02,750 i pojęcie rzeczywistości służąc treści w Internecie 232 00:13:02,750 --> 00:13:04,970 i jak to wszystko zaczyna do siebie pasować. 233 00:13:04,970 --> 00:13:08,350 Tak więc okazuje się, że przez cały ten czas w CS50 urządzenia 234 00:13:08,350 --> 00:13:11,590 miałeś serwer WWW na komputerze. 235 00:13:11,590 --> 00:13:16,560 Mamy, w uczciwości, tylko używali go do gedit dla Clang na GDB i tym podobnych, 236 00:13:16,560 --> 00:13:21,000 ale również instalowane przez nas dla Ciebie w urządzeniu jest serwer WWW, 237 00:13:21,000 --> 00:13:23,940 i że serwer WWW dzieje się wolne, open source, 238 00:13:23,940 --> 00:13:26,580 jeden z najbardziej popularne na świecie, zwany Apache. 239 00:13:26,580 --> 00:13:31,340 Jego nazwa jest bardziej techniczna HTTPd, d jest dla demona tutaj 240 00:13:31,340 --> 00:13:34,110 które jest słowo techniczne serwerze. 241 00:13:34,110 --> 00:13:38,690 Tak zainstalowany w CS50 urządzenia jest serwer WWW, a co to znaczy? 242 00:13:38,690 --> 00:13:43,740 Cóż, serwer WWW jest pojęciowo jakiś serwer w Internecie, który służy do internetowej treści. 243 00:13:43,740 --> 00:13:48,630 Gdy poprosiłem o pliku, zwraca kod HTML, który komponuje ten plik, i voila. 244 00:13:48,630 --> 00:13:51,370 Można zobaczyć niektóre witryny stronę główną. 245 00:13:51,370 --> 00:13:54,970 Ale serwer jest dokładniej kawałek oprogramowania. 246 00:13:54,970 --> 00:13:59,190 Nie musi to być na fizycznej urządzenia, to po prostu musi być element do uruchamiania oprogramowania. 247 00:13:59,190 --> 00:14:01,980 Więc CS50 urządzenia, oczywiście, jest to oprogramowanie 248 00:14:01,980 --> 00:14:04,270 nawet jeśli jest to coś w rodzaju udając maszyna. 249 00:14:04,270 --> 00:14:06,960 To udaje się wewnątrz komputera z komputera, 250 00:14:06,960 --> 00:14:11,140 ale to tylko oznacza, że ​​urządzenie z pewnością może uruchomić takie rzeczy jak serwery www. 251 00:14:11,140 --> 00:14:13,260 Może faktycznie uruchomić serwery pocztowe. 252 00:14:13,260 --> 00:14:16,440 Możemy uruchomić serwer wiadomości w urządzeniu, jeśli chcieliśmy, 253 00:14:16,440 --> 00:14:20,780 i rzeczywiście, mamy uruchomić jeden inny typ serwera, znane jako serwera baz danych MySQL. 254 00:14:20,780 --> 00:14:22,620 Ale o tym w przyszłym tygodniu. 255 00:14:22,620 --> 00:14:26,400 Oznacza to, że faktycznie mogę odwiedzić stron internetowych 256 00:14:26,400 --> 00:14:30,480 wewnątrz z mojego urządzenia za pomocą przeglądarki wewnątrz urządzenia 257 00:14:30,480 --> 00:14:33,600 lub nawet na moim laptopie, mój Mac czy mój PC. 258 00:14:33,600 --> 00:14:37,780 Więc co to znaczy? Okazuje się, że za każdym razem używasz komputera z systemem Linux, 259 00:14:37,780 --> 00:14:40,910 jego nick to "local host." 260 00:14:40,910 --> 00:14:43,370 Nie masz nazwy domeny, bo nie kupił nazwę domeny 261 00:14:43,370 --> 00:14:46,590 na coś takiego urządzenia, więc jego domyślna nazwa to host lokalny. 262 00:14:46,590 --> 00:14:50,470 >> Jednak w celu uzyskania urządzenia, aby rozpocząć wyświetlanie się stron internetowych, 263 00:14:50,470 --> 00:14:52,270 musimy stworzyć je w pierwszej kolejności. 264 00:14:52,270 --> 00:14:55,200 Więc zróbmy to. Pozwólcie mi iść do okna terminala tutaj 265 00:14:55,200 --> 00:14:58,190 i zauważ, że jestem w moim typowym John Harvard zachęty. 266 00:14:58,190 --> 00:15:01,670 Pozwól mi iść dalej i wpisz ls i zobaczymy kilka znanych rzeczy z tego semestru, 267 00:15:01,670 --> 00:15:04,580 desktop, pliki do pobrania, dropbox i tak dalej, 268 00:15:04,580 --> 00:15:07,540 ale teraz zaczynają się obracać naszą uwagę na parę. 269 00:15:07,540 --> 00:15:11,530 Na wielu serwerach Linux internetowych jest jeszcze to folder o nazwie public html, 270 00:15:11,530 --> 00:15:15,630 ale mamy zamiar pominąć, że jeden na teraz i skupić się na tym, vhosts. 271 00:15:15,630 --> 00:15:18,850 Ktoś wie co vhost jest? 272 00:15:18,850 --> 00:15:21,110 Tylko głupi żargon dla wirtualnego hosta, 273 00:15:21,110 --> 00:15:23,850 i co to oznacza to, że na typowym serwerze 274 00:15:23,850 --> 00:15:26,810 rzeczywiście można obsługiwać wiele stron. 275 00:15:26,810 --> 00:15:31,500 Możesz kupić nazwę domeny jak foo.com i możesz udostępniać je na serwerze. 276 00:15:31,500 --> 00:15:36,100 Ale można też kupić bar.com i udostępniać je na tym samym serwerze. 277 00:15:36,100 --> 00:15:40,250 Powodem jest, przeglądarki są wystarczająco inteligentny, aby poinformować serwer 278 00:15:40,250 --> 00:15:45,880 gdy użytkownik żąda jakąś stronę internetową, jaka nazwa domeny użytkownik chce główną dla. 279 00:15:45,880 --> 00:15:48,760 Więc co jest miły o to nie musisz jeden fizyczny serwer 280 00:15:48,760 --> 00:15:52,040 lub jeden CS50 urządzenie dla każdej witryny może chcesz utworzyć. 281 00:15:52,040 --> 00:15:55,520 Możesz użyć tego samego serwera i rozwijać setki różnych stron internetowych. 282 00:15:55,520 --> 00:15:58,770 I rzeczywiście, jeśli jesteś osobą, próbuje uruchomić stronę internetową, 283 00:15:58,770 --> 00:16:02,100 czy dla przyjemności lub w celach biznesowych, zazwyczaj musisz iść w Internecie, 284 00:16:02,100 --> 00:16:04,650 i będziesz płacić komuś dziesięć dolarów miesiąc, sto dolarów miesięcznie 285 00:16:04,650 --> 00:16:06,670 gospodarzem swojej stronie internetowej dla Ciebie. 286 00:16:06,670 --> 00:16:11,060 A sposób, w jaki działa jest ich ładowania innych ludzi 287 00:16:11,060 --> 00:16:13,160 dziesięć dolców miesięcy lub sto dolców miesiąc 288 00:16:13,160 --> 00:16:17,200 gościć strony innych ludzi na ich samym serwerze. 289 00:16:17,200 --> 00:16:20,740 Powodem mogą zrobić, to dlatego, że z tej funkcji o nazwie bhosts, 290 00:16:20,740 --> 00:16:23,790 ale o tym, kiedy nadejdzie czas na ostateczne projekty. 291 00:16:23,790 --> 00:16:28,360 >> Na razie, po prostu nurkować tam. Więc vhosts cd i jeśli wpisz ls teraz 292 00:16:28,360 --> 00:16:31,370 zauważyć, że jest tam folder o nazwie host lokalny. 293 00:16:31,370 --> 00:16:33,440 To dlatego, że domyślnie dane appliance 294 00:16:33,440 --> 00:16:36,160 masz kiedykolwiek zamiar uruchomić jedną stronę na urządzeniu. 295 00:16:36,160 --> 00:16:38,970 To nie jest prawdziwy świat, nie jest to w świecie rzeczywistym serwer WWW. 296 00:16:38,970 --> 00:16:41,690 Więc pozwól mi iść do lokalnego komputera, a teraz zobaczymy tam 297 00:16:41,690 --> 00:16:44,290 ostatnia katalog o nazwie HTML. 298 00:16:44,290 --> 00:16:47,080 Więc to trochę głęboki, hierarchia, ale czy i kiedy 299 00:16:47,080 --> 00:16:51,230 zdecydujesz się rozpocząć tworzenie wielu stron internetowych w ciągu najbliższych miesięcy lub roku n, 300 00:16:51,230 --> 00:16:54,370 ten rodzaj struktury folderów bywa pomocny. 301 00:16:54,370 --> 00:16:56,560 A teraz chodźmy do HTML jak właśnie zrobił, 302 00:16:56,560 --> 00:16:59,010 ls, i nic nie ma. 303 00:16:59,010 --> 00:17:01,390 Więc teraz idziemy do przodu i to zrobić. Pozwól mi otworzyć Chrome 304 00:17:01,390 --> 00:17:07,300 wewnątrz urządzenia, i pozwól mi iść do http://localhost. 305 00:17:07,300 --> 00:17:14,440 Tak dosłownie nazwa mojego urządzenia, wprowadzić i uzyskać indeks /. 306 00:17:14,440 --> 00:17:18,290 To nie jest tak naprawdę pokazuje mi nic ciekawego, 307 00:17:18,290 --> 00:17:23,400 ale okazuje się, że to, co widzimy, jest to, że folder, HTML. 308 00:17:23,400 --> 00:17:25,770 Nie ma nic w środku tego folderu teraz, 309 00:17:25,770 --> 00:17:28,750 więc zamiast tego, co mam zamiar zrobić, to najpierw utworzyć plik. 310 00:17:28,750 --> 00:17:33,530 Utwórz plik HTML tak jak my w poniedziałek, ale tym razem umieścić go wewnątrz urządzenia. 311 00:17:33,530 --> 00:17:36,830 Dla tych z Was, którzy starają się podążać z laptopami teraz 312 00:17:36,830 --> 00:17:42,040 pozwól mi zrobić jeden bok to będzie uwzględnione w Pset internetowej, 313 00:17:42,040 --> 00:17:44,280 ale aby uzyskać to do pracy po raz pierwszy, 314 00:17:44,280 --> 00:17:49,830 masz zamiar uruchomić tego polecenia: sudo uruchomić httpd service. 315 00:17:49,830 --> 00:17:52,670 A to znów, będzie powtarzany w ostatnim PSET, 316 00:17:52,670 --> 00:17:55,460 ale jeśli grasz razem teraz w domu, serwer WWW 317 00:17:55,460 --> 00:17:58,660 jest wyłączony w urządzeniu, i to tak, że sok nie do RAM 318 00:17:58,660 --> 00:18:01,960 i pamięć do 7 tygodni z semestru, kiedy nie jest to potrzebne. 319 00:18:01,960 --> 00:18:05,190 Więc musisz uruchomić to polecenie raz, a dostaniesz wyjście takiego. 320 00:18:05,190 --> 00:18:07,920 To powinieneś być w stanie grać tutaj. 321 00:18:07,920 --> 00:18:10,330 Teraz wróćmy do tego folderu. 322 00:18:10,330 --> 00:18:12,770 Ten folder jest pusty, więc pozwól mi rozpocząć tworzenie pliku, 323 00:18:12,770 --> 00:18:16,360 gedit hello.html. 324 00:18:16,360 --> 00:18:20,930 >> Dobrze. Gedit jest otwarte, jak zwykle. Pozwól mi zrobić doctype, html, 325 00:18:20,930 --> 00:18:25,270 html, daj mi przed siebie i zacząć zamykając tagi w góry. 326 00:18:25,270 --> 00:18:28,380 Teraz mam na głowie. Pozwól mi iść dalej i zamknąć głowę 327 00:18:28,380 --> 00:18:32,450 chciałbym teraz zrobić tytuł strony, hello world jak ostatnim razem, 328 00:18:32,450 --> 00:18:34,790 blisko tytuł, teraz pozwól mi ciało. 329 00:18:34,790 --> 00:18:38,130 Tu powiem cześć, świat z pewnymi exclams 330 00:18:38,130 --> 00:18:40,550 wyjaśnić, że jest to inny ciąg. 331 00:18:40,550 --> 00:18:45,800 Blisko ciała, a teraz pozwól mi iść dalej i złożyć zapisać. 332 00:18:45,800 --> 00:18:48,470 Pozwól mi wrócić do mojego okna terminala, a jeśli wpiszę ls 333 00:18:48,470 --> 00:18:51,830 Mam, prawdopodobnie, patrz hello.html. I ja. 334 00:18:51,830 --> 00:18:55,070 Więc teraz wróćmy do mojej przeglądarce, kliknij przeładować 335 00:18:55,070 --> 00:18:58,930 i widać, że rzeczywiście są wewnątrz tego HTML folderze. 336 00:18:58,930 --> 00:19:02,310 Nie widzę jeszcze strony WWW, jest to Apache, serwer WWW, 337 00:19:02,310 --> 00:19:04,670 tylko pokazuje mi zawartość listy tego katalogu. 338 00:19:04,670 --> 00:19:08,260 Podobnie jak w Mac OS lub Windows będzie zazwyczaj zrobić na własnym lokalnym dysku twardym. 339 00:19:08,260 --> 00:19:12,730 Więc jeśli chcesz zobaczyć tę stronę, mogę kliknąć ten mały link tutaj, hello.html, 340 00:19:12,730 --> 00:19:15,160 i rzeczywiście, to, co spodziewałem się zobaczyć. 341 00:19:15,160 --> 00:19:18,080 Teraz znów, nie URL, że każdy z Was może odwiedzić właśnie teraz jest, 342 00:19:18,080 --> 00:19:20,760 bo dla Ciebie, host lokalny, jeśli masz laptopa tutaj 343 00:19:20,760 --> 00:19:23,050 to odnosi się do własnego przykładu urządzenia. 344 00:19:23,050 --> 00:19:25,900 To jest na moim własnym urządzeniem osobistym, 345 00:19:25,900 --> 00:19:29,080 , ale jest to swego rodzaju głupi dla mnie mieć, mieć 346 00:19:29,080 --> 00:19:34,480 użytkownik taki jak ja, kliknij na hello.html rzeczywiście zobaczyć zawartość tej strony. 347 00:19:34,480 --> 00:19:42,590 Okazuje się, że serwery takie jak Apache pozwalają mieć plik domyślny dla każdego serwera. 348 00:19:42,590 --> 00:19:44,640 Zauważcie, mamy hello.html. 349 00:19:44,640 --> 00:19:48,410 Co znajduje się w systemie Linux polecenia, aby zmienić nazwę pliku? 350 00:19:48,410 --> 00:19:50,870 >> MV dla ruchu. Więc pozwól mi to zrobić, 351 00:19:50,870 --> 00:19:55,870 i pozwól mi zmienić nazwę hello.html do index.html. 352 00:19:55,870 --> 00:19:58,610 Pozwól, wpisz ls potwierdzić to teraz została zmieniona. 353 00:19:58,610 --> 00:20:03,250 Teraz to będzie - jeśli wrócę do lokalnego komputera, 354 00:20:03,250 --> 00:20:06,710 zauważyć, że jestem teraz automatycznie widząc, że stronę internetową. 355 00:20:06,710 --> 00:20:11,740 To jest identyczne do mojego rzeczywiście robi / index.html, 356 00:20:11,740 --> 00:20:14,740 ale miłą rzeczą jest teraz, że serwer www jest zastanawianie, 357 00:20:14,740 --> 00:20:18,830 oh, jeśli masz plik, który według ludzkich konwencji, nazywa index.html, 358 00:20:18,830 --> 00:20:21,200 pozwól mi pokazać użytkownikowi, że plik domyślnie 359 00:20:21,200 --> 00:20:25,290 zamiast jakiejś głupiej listy katalogów, które nie jest wcale łatwy w obsłudze. 360 00:20:25,290 --> 00:20:28,900 Rzeczywiście, większość odwiedzanych witryn w Internecie nie ma listy plików do kliknięcia, 361 00:20:28,900 --> 00:20:34,040 oni po prostu pokazać zawartość. Więc tak, jak możemy zrobić, index.html. 362 00:20:34,040 --> 00:20:37,000 Więc to wszystko jest zabawne i dobre, ale jest to dość prosta strona internetowa. 363 00:20:37,000 --> 00:20:41,640 Pozwólcie mi iść do przodu i otworzyć plik index.html w moich vhosts, 364 00:20:41,640 --> 00:20:47,620 lokalne gospodarze, html katalog, a dodajmy coś większego zainteresowania. 365 00:20:47,620 --> 00:20:56,120 Więc nie hello world, niech zamiast powiedzieć: "To jest CS50, Harvard College. . ". 366 00:20:56,120 --> 00:21:00,000 Więc początek opisu katalogu kursów jakiejś tam. 367 00:21:00,000 --> 00:21:03,780 Teraz jeśli przeładować, należy to zobaczyć na mojej stronie domowej. 368 00:21:03,780 --> 00:21:09,560 Okay, i widzę, że, ale załóżmy, że chcę teraz kilka więcej zawartości w tym pliku. 369 00:21:09,560 --> 00:21:15,160 Mogłem iść na dół i, że żadne warunki wstępne, 370 00:21:15,160 --> 00:21:18,740 chociaż niektórzy z was zapewne jak "Ha ha ha, żadnych wymagań wstępnych." 371 00:21:18,740 --> 00:21:24,320 Ale - oficjalnie. Więc przeładować, a teraz mamy to samo dziwactwo, które widzieliśmy ostatnio. 372 00:21:24,320 --> 00:21:26,240 Ale dlaczego tak jest? To był prosty fix. 373 00:21:26,240 --> 00:21:31,440 Dlaczego ta strona działa? 374 00:21:31,440 --> 00:21:34,170 [Student, niezrozumiały] >> Tak, mamy rozwiązane to przed 375 00:21:34,170 --> 00:21:37,440 jawnie mówi przeglądarce umieścić podział wiersza tutaj. 376 00:21:37,440 --> 00:21:39,440 A to dlatego, że jeszcze raz, tylko w przeglądarce zrobi 377 00:21:39,440 --> 00:21:42,610 wyraźnie, co język znaczników mówi mu do zrobienia, 378 00:21:42,610 --> 00:21:45,730 więc choć mogłeś trafić wprowadzić raz lub dwa, a nawet dziesięć razy, 379 00:21:45,730 --> 00:21:49,870 to się połączyć to wszystko w jednym miejscu, tylko umownie. 380 00:21:49,870 --> 00:21:52,770 Więc jeśli naprawdę chcesz końca linii, trzeba użyć znacznika br, 381 00:21:52,770 --> 00:21:56,840 a teraz informacja, jak Poniedziałek, kładę / wewnątrz tego znacznika 382 00:21:56,840 --> 00:22:00,090 tylko dlatego, że to po prostu nie czuję się dobrze 383 00:22:00,090 --> 00:22:02,990 rozpocząć podział wiersza, a następnie zatrzymać go z nic pomiędzy. 384 00:22:02,990 --> 00:22:07,740 >> Więc konwencja HTML jest do otwierania i zamykania tag jednocześnie. 385 00:22:07,740 --> 00:22:11,050 Tak na marginesie, to zobaczysz wiele stron w książkach, nie robi tego. 386 00:22:11,050 --> 00:22:14,240 Prawdą jest, zrobić lub nie robić, ale kłócimy 387 00:22:14,240 --> 00:22:17,430 że projektowanie mądry i stylistycznie, to tylko lepiej 388 00:22:17,430 --> 00:22:20,540 bo wtedy każdy tag jest zarówno otwierane i zamykane jakoś. 389 00:22:20,540 --> 00:22:23,370 Więc teraz niech zapisać i przeładować. Idź z powrotem do przeglądarki, w porządku. 390 00:22:23,370 --> 00:22:26,680 Teraz robimy pewne postępy, ale to nie wystarczy. 391 00:22:26,680 --> 00:22:33,210 Idziemy do przodu i zacząć pisać w jakimś dłuższym korpusie tekstu. 392 00:22:33,210 --> 00:22:40,610 Więc powiedzmy, "Szybki, brązowy lis skacze nad leniwym psem." 393 00:22:40,610 --> 00:22:42,700 A teraz pozwól mi wystarczy skopiować i wkleić to kilka razy 394 00:22:42,700 --> 00:22:45,040 tak, że mamy akapit tekstu. 395 00:22:45,040 --> 00:22:47,780 Pozwól mi wrócić tutaj. Więc to nie wygląda bardzo dobrze. 396 00:22:47,780 --> 00:22:50,000 Mam koniec linii, więc jest w porządku, 397 00:22:50,000 --> 00:22:52,140 ale teraz, gdy stajemy się do tego stopnia, że ​​stronę internetową 398 00:22:52,140 --> 00:22:55,640 że ma wiele treści, a nie tylko pojedyncze linie, aby wykazać HTML, 399 00:22:55,640 --> 00:22:58,570 możemy zacząć myśleć o tych rzeczach jak rzeczywistych punktach. 400 00:22:58,570 --> 00:23:01,590 I możemy zacząć kształtować naszą stronę trochę bardziej czysto. 401 00:23:01,590 --> 00:23:05,120 I rzeczywiście, co mogę zrobić, to udać się tutaj, wewnątrz mojego znacznika body, 402 00:23:05,120 --> 00:23:09,400 i wiesz co, jeśli "To CS50. . ". naprawdę demarks początek ustępu, 403 00:23:09,400 --> 00:23:11,310 no, oznacz je jako takie. 404 00:23:11,310 --> 00:23:13,570 Pozwól, że wcięcie tekstu, tylko umownie powiem 405 00:23:13,570 --> 00:23:15,710 że ustęp kończy się tutaj, 406 00:23:15,710 --> 00:23:18,320 a potem zamiast to zrobić podział wiersza, pozwól mi tylko powiedzieć 407 00:23:18,320 --> 00:23:23,300 To, że nie należy w nowych i ust, 408 00:23:23,300 --> 00:23:27,610 a ja po prostu szybko tiret tylko przez nadpisanie wszystkich tych rzeczy. 409 00:23:27,610 --> 00:23:30,660 >> Więc teraz mamy wcięty akapit tam, 410 00:23:30,660 --> 00:23:33,510 a teraz nasza markup zaczyna trochę więcej 411 00:23:33,510 --> 00:23:37,070 semantycznie spójne z tym, co staramy się robić. 412 00:23:37,070 --> 00:23:40,130 Mamy punkt, więc nazwijmy to ustęp z tagiem str. 413 00:23:40,130 --> 00:23:43,370 Mamy drugi akapit, więc nazwijmy to ustęp z tagiem str. 414 00:23:43,370 --> 00:23:45,850 A teraz, co przeglądarka będzie zwykle zrobić 415 00:23:45,850 --> 00:23:48,490 jest tak jak w angielskiej książce lub eseju, 416 00:23:48,490 --> 00:23:51,280 gdzie zwykle zobaczyć kilka linii przerw między akapitami. 417 00:23:51,280 --> 00:23:53,720 Przeglądarki zrobi to za ciebie automatycznie. 418 00:23:53,720 --> 00:23:56,680 Więc teraz mamy dwa punkty i możemy kontynuować. 419 00:23:56,680 --> 00:23:58,770 Ale, oczywiście, w sieci, gdy masz ciała tekstu 420 00:23:58,770 --> 00:24:01,370 nie jest to zwykle tylko ogromne bąble tekstu. 421 00:24:01,370 --> 00:24:04,040 Są to często hiperłącza w tam. 422 00:24:04,040 --> 00:24:07,250 Więc jeśli chcemy, na przykład, to kilka linków tam, 423 00:24:07,250 --> 00:24:10,760 przypuszczać, co może być interesujące w cokolwiek strona Tworzę tu jest - 424 00:24:10,760 --> 00:24:12,780 Pozwólcie mi odejść do Google.com, 425 00:24:12,780 --> 00:24:16,540 i pozwól mi szukać Szybki, brązowy lis. 426 00:24:16,540 --> 00:24:22,150 Idź do Google Images i, jak o - to jest słodkie. 427 00:24:22,150 --> 00:24:27,420 Pójdziemy z tym. Mamy tu więc szybki brązowy skoki lisa nad leniwym psem. 428 00:24:27,420 --> 00:24:30,560 Więc, co mam zamiar zrobić, po prostu ze względu na demonstracji 429 00:24:30,560 --> 00:24:32,950 Przypuszczam, że jest to obraz był na moim serwerze, 430 00:24:32,950 --> 00:24:35,240 i byłem tworzenia tych obrazów. 431 00:24:35,240 --> 00:24:38,720 Co właśnie nie był prawym przyciskiem myszy lub kontrolować Kliknij na obrazek, 432 00:24:38,720 --> 00:24:42,370 i to, co można zobaczyć w większości przeglądarek jest trochę menu - 433 00:24:42,370 --> 00:24:48,800 przestać to robić - trochę menu, które pozwala wybrać Kopiuj adres odnośnika lub adres URL kopii. 434 00:24:48,800 --> 00:24:52,750 Więc pozwól mi teraz wrócić do mojego HTML, i załóżmy, że chcę 435 00:24:52,750 --> 00:24:56,420 do tego hiperłącza do innej strony internetowej. 436 00:24:56,420 --> 00:24:58,640 >> Co było tag wezwał do tego? 437 00:24:58,640 --> 00:25:01,650 [Student, niezrozumiały] >> Tak. Więc href dla hiper odniesienia. 438 00:25:01,650 --> 00:25:04,660 Pozwólcie mi iść do przodu i wklej to widok 439 00:25:04,660 --> 00:25:07,290 Jest to dość długi URL, więc pozwól mi powiększać powrotem. 440 00:25:07,290 --> 00:25:09,950 Zamknij uchwyty, więc teraz zauważyć, że jestem tak tu 441 00:25:09,950 --> 00:25:11,960 ponieważ URL stało się dość długo. 442 00:25:11,960 --> 00:25:15,180 Pozwól mi przejść tutaj do końca Szybki, brązowy lis, 443 00:25:15,180 --> 00:25:18,830 i pozwól mi zamknąć ten tag z 00:25:21,280 gdzie tylko zamknięte nazwę znacznika. 445 00:25:21,280 --> 00:25:24,470 Teraz pozwól mi iść do przodu i zapisz plik, przeładuj stronę internetową, 446 00:25:24,470 --> 00:25:27,880 i teraz, domyślnie, że zamierza być podkreślone na niebiesko dla mnie, 447 00:25:27,880 --> 00:25:31,980 ale rzeczywiście, mogę teraz kliknij na to i voila. Jest to obraz. 448 00:25:31,980 --> 00:25:33,990 I nie trzeba być zdjęcie, które może zostały powiązane 449 00:25:33,990 --> 00:25:36,270 do innej losowej stronie w Internecie. 450 00:25:36,270 --> 00:25:39,610 Mogę to zrobić, na przykład, z CS50, więc jeden ostatni przykład tutaj. 451 00:25:39,610 --> 00:25:42,730 "To jest CS50" może mieć sens iść, href = 452 00:25:42,730 --> 00:25:50,340 http://www.cs50.net blisko cytat, blisko kotwica. 453 00:25:50,340 --> 00:25:53,990 Więc teraz, że jest nawet krótszy URL, i tym razem nie będziemy się na link do obrazka. 454 00:25:53,990 --> 00:25:57,880 Jesteśmy natomiast dzieje się na link do innej strony. 455 00:25:57,880 --> 00:25:59,840 Teraz mamy obraz tutaj. 456 00:25:59,840 --> 00:26:02,970 Czuję się jak można zrobić trochę lepiej, niż tylko z linkami do obrazu. 457 00:26:02,970 --> 00:26:05,760 Co zrobić, jeśli chcemy rzeczywiście ucieleśniają to w naszej własnej stronie internetowej? 458 00:26:05,760 --> 00:26:09,290 >> Cóż, co mogę zrobić, o to, a nie odnośnik do tej grafiki, 459 00:26:09,290 --> 00:26:14,690 pozwól mi zamiast wyciąć URL, a my się pozbyć tego hiperłącza i oczyścić to. 460 00:26:14,690 --> 00:26:17,190 I idziemy na dół i pozbądź się tego. 461 00:26:17,190 --> 00:26:20,910 Tak naprawdę nie potrzebujesz tych wszystkich zdań teraz, więc niech mi skrócić stronie trochę. 462 00:26:20,910 --> 00:26:24,530 A potem tu pozwól mi iść do przodu w nowym akapicie 463 00:26:24,530 --> 00:26:30,100 powiedzieć, że nie chcesz, aby tekst teraz, chcę obraz, którego źródłem będzie, że URL. 464 00:26:30,100 --> 00:26:33,100 Obraz, podobnie jak koniec linii, jest albo nie lub nie. 465 00:26:33,100 --> 00:26:35,900 Więc pozwól mi natychmiast zamknąć ten tag. 466 00:26:35,900 --> 00:26:39,440 Pozwól mi iść dalej teraz i zamknąć ust, że jestem w środku, 467 00:26:39,440 --> 00:26:43,010 i jeśli wszystko pójdzie dobrze z hello, world, jeśli przeładowanie teraz 468 00:26:43,010 --> 00:26:45,520 I, rzeczywiście, patrz prawo wewnątrz własnej strony obrazu. 469 00:26:45,520 --> 00:26:48,570 Więc teraz mamy znacznik obrazu, taga i tym podobne, 470 00:26:48,570 --> 00:26:51,320 i na dokładkę, pozwól mi zrobić jedną rzecz, która jest często pomijanej 471 00:26:51,320 --> 00:26:55,900 na stronach internetowych tych dni: Chcę zapewnić pewne tekst opisu dla tego obrazu 472 00:26:55,900 --> 00:26:58,090 dla ludzi, którzy są na urządzeniu przenośnym 473 00:26:58,090 --> 00:27:00,640 i dlatego nie może być w stanie pobrać ten plik bardzo szybko, 474 00:27:00,640 --> 00:27:03,310 dla osób niewidomych i może nie być w stanie zobaczyć obraz 475 00:27:03,310 --> 00:27:06,480 ale mogą one mieć czytnik ekranu, który może im powiedzieć, co ten obraz jest. 476 00:27:06,480 --> 00:27:09,100 A do tego jest jeszcze inny atrybut dla znaczników obrazu 477 00:27:09,100 --> 00:27:11,290 zwany alt, dla alternatywnego tekstu. 478 00:27:11,290 --> 00:27:14,650 A co można zrobić tutaj jest powiedzieć: "To jest szybkie, brązowy lis. 479 00:27:14,650 --> 00:27:17,650 Tak, że nawet jeśli człowiek nie może zobaczyć obraz na ekranie, 480 00:27:17,650 --> 00:27:20,560 może on przynajmniej słyszeć, jak w niektórych oprogramowanie o 481 00:27:20,560 --> 00:27:23,080 co faktycznie jest tam na ekranie. 482 00:27:23,080 --> 00:27:25,040 >> To nie zmieni estetykę strony, 483 00:27:25,040 --> 00:27:27,640 ale z pewnością jest to dobra praktyka dla użytkowników. 484 00:27:27,640 --> 00:27:31,760 Dobra, zostawmy tą stronę w jego obecnej formie, 485 00:27:31,760 --> 00:27:33,890 ale zobaczymy, jeśli nie możemy teraz wprowadzić 486 00:27:33,890 --> 00:27:36,210 niektóre lepsze podejście do pisania tych stron, 487 00:27:36,210 --> 00:27:39,980 lekcje, które będzie służyć nam także nasze strony coraz bardziej złożone. 488 00:27:39,980 --> 00:27:42,220 To, czego nie zrobimy w ciągu najbliższych kilku tygodni 489 00:27:42,220 --> 00:27:46,810 jest przejść przez wszystkie z wielu znaczników HTML kilkunastu, że istnieją. 490 00:27:46,810 --> 00:27:49,800 Podobnie jak w zera już w tydzień 0, to prawdopodobnie nie wystarczy 491 00:27:49,800 --> 00:27:52,120 dać ogólny przegląd niektórych pojęć, 492 00:27:52,120 --> 00:27:54,530 szybkie zwiedzanie niektórych blokach to prawdopodobnie stanie, 493 00:27:54,530 --> 00:27:58,240 całkiem wygodnie, aby przejść na własną rękę, do różnych puzzli. 494 00:27:58,240 --> 00:28:00,460 I tak się stanie ponownie w HTML, najprawdopodobniej, 495 00:28:00,460 --> 00:28:04,320 w której istnieje duży zasoby w sieci, że będziemy wskazywać na Państwa, 496 00:28:04,320 --> 00:28:06,920 różne podręczniki, jeśli wolisz czytać podręcznik, 497 00:28:06,920 --> 00:28:10,560 który przeprowadzi Cię przez wszystkie różne rzeczy można zrobić z HTML, 498 00:28:10,560 --> 00:28:16,100 ale naprawdę, widzieliśmy do tej pory w HTML większość podstawowych pojęć. 499 00:28:16,100 --> 00:28:19,900 Mamy pojęcie tagów otwierane, tagi zostały zamknięte. 500 00:28:19,900 --> 00:28:22,100 Niektóre znaczniki, które są zarówno otwarte i zamknięte 501 00:28:22,100 --> 00:28:24,620 w tym sensie, że są puste, nie powinny być z nich środka nic 502 00:28:24,620 --> 00:28:27,490 jak znacznika obrazu lub przerwy w przewodzie, które są po prostu tam. 503 00:28:27,490 --> 00:28:32,330 Przyglądaliśmy się także już w pojęciu atrybutu, jak alt lub źródła. 504 00:28:32,330 --> 00:28:36,410 Zauważ, że te słowa mają tendencję, zgodnie z konwencją, być krótkie i zwięzłe. 505 00:28:36,410 --> 00:28:39,140 >> Nie musimy decydować, co te rzeczy są nazywane, 506 00:28:39,140 --> 00:28:42,060 ktoś kto wymyślił HTML wymyślił tych nazw. 507 00:28:42,060 --> 00:28:44,710 Więc po prostu trzeba zacząć wiedzieć czy patrzeć, kiedy tylko ich potrzebujesz, 508 00:28:44,710 --> 00:28:47,160 jakie imiona są dla tych znaczników i atrybutów. 509 00:28:47,160 --> 00:28:49,510 W przypadku tych atrybutów, przypisuje ogólnie 510 00:28:49,510 --> 00:28:52,900 zmodyfikować zachowanie pewnego znacznika. 511 00:28:52,900 --> 00:28:55,710 W tym przypadku, źródło mówi atrybut obrazu znacznik 512 00:28:55,710 --> 00:28:57,940 czym źródło obrazu należy. 513 00:28:57,940 --> 00:29:04,460 Atrybut href opowiada tagu zakotwiczenia, co powinno być w rzeczywistości linkami do. 514 00:29:04,460 --> 00:29:06,800 Ale w zakresie struktury strony, chociaż Facebook 515 00:29:06,800 --> 00:29:09,680 i Google i jak wygląda kompletny bałagan 516 00:29:09,680 --> 00:29:12,560 pod maską na pierwszy rzut oka, jeśli zaczniesz czytać przez niego 517 00:29:12,560 --> 00:29:16,950 bardziej metodycznie, oni wszyscy idą to podstawowe, podstawowe struktury. 518 00:29:16,950 --> 00:29:19,660 Ale możemy poprawić stylizację z tych rzeczy. 519 00:29:19,660 --> 00:29:24,180 Więc pozwól mi iść do kilku przykładów, że przygotowane wcześniej. 520 00:29:24,180 --> 00:29:27,280 Pozwólcie mi iść do przodu i skopiować je z innego folderu tutaj 521 00:29:27,280 --> 00:29:29,380 i umieścić je w tym katalogu. 522 00:29:29,380 --> 00:29:32,210 Z góry, co zrobiłem było przygotować kilka plików: 523 00:29:32,210 --> 00:29:35,670 search0, search1, search2 i search3 i 4. 524 00:29:35,670 --> 00:29:38,740 Pozwólcie mi iść do przodu i otworzyć pierwszy z tych plików, 525 00:29:38,740 --> 00:29:42,570 i zobaczymy, jeśli nie możemy zacząć tworzyć własne wyszukiwarki. 526 00:29:42,570 --> 00:29:46,530 Na górze tego pliku, jak to zwykle bywa w klasie, tylko kilka uwag. 527 00:29:46,530 --> 00:29:49,760 W HTML, jednak środki, które pozwalają uruchomić komentarz 528 00:29:49,760 --> 00:29:55,640 jest <- i to jesteś wewnątrz komentarza, multi-line komentarzy. 529 00:29:55,640 --> 00:29:59,800 Kiedy będziesz gotowy, aby zatrzymać ten komentarz, możesz to zrobić ->. 530 00:29:59,800 --> 00:30:02,380 Więc wszystko na górze w kolorze niebieskim jest tylko komentarz. 531 00:30:02,380 --> 00:30:04,620 >> To jest moja deklaracja DOCTYPE, która ponownie 532 00:30:04,620 --> 00:30:07,080 można po prostu skopiować i wkleić na wierze, na teraz. 533 00:30:07,080 --> 00:30:10,410 To właśnie mówi przeglądarce, "Here Comes niektóre HTML 5". 534 00:30:10,410 --> 00:30:13,600 Poniżej, na linii 14, to pierwszy z moich rzeczywistych tagów 535 00:30:13,600 --> 00:30:16,900 i to po prostu mówi, jak poprzednio, oto niektóre HTML, 536 00:30:16,900 --> 00:30:19,460 tutaj jest szefem mojej stronie, oto tytuł, 537 00:30:19,460 --> 00:30:23,900 i odwrotnie, że jest to w tytule, to jest na głowicy. 538 00:30:23,900 --> 00:30:26,460 Tutaj teraz jest ciało mojej stronie. 539 00:30:26,460 --> 00:30:31,040 Więc kilka nowych znaczników h1 stoi teraz: dla pozycji 1. 540 00:30:31,040 --> 00:30:33,850 Istnieje tradycja w HTML na wiele lat wstecz 541 00:30:33,850 --> 00:30:37,990 o różnych rozmiarach z tekstu. 542 00:30:37,990 --> 00:30:41,980 I ponownie w dniu, każdy oznacza, ogólnie, tak duży i pogrubienie. 543 00:30:41,980 --> 00:30:45,860 Ale jest też h2, który jest duży, ale nie aż tak duże i odważne. 544 00:30:45,860 --> 00:30:49,320 Jest h3, co jest raczej duży, ale nie aż tak i śmiały, 545 00:30:49,320 --> 00:30:52,380 i tak dalej, aż w dół do h6. 546 00:30:52,380 --> 00:30:55,550 Te dni, choć, H1, H2 i H3 są naprawdę oznaczało 547 00:30:55,550 --> 00:30:57,980 mieć bardziej zrozumiały dla nich 548 00:30:57,980 --> 00:31:01,100 przy czym h1 to naprawdę pozycja: nagłówek na stronie internetowej, 549 00:31:01,100 --> 00:31:04,210 nagłówek kolumny lub coś takiego tekstu. 550 00:31:04,210 --> 00:31:09,030 Więc już świadomie powiedział h1 CS50> szukaj h1 551 00:31:09,030 --> 00:31:12,640 aby je określić, że jest to naprawdę pozycja, tytuł mojej strony. 552 00:31:12,640 --> 00:31:14,850 Nie w tym sensie tytuł pasku tytułu 553 00:31:14,850 --> 00:31:18,960 ale tytuł, że rzeczywiście widzą w samej witryny internetowej, w organizmie. 554 00:31:18,960 --> 00:31:20,990 Teraz to, można się domyślić, co to jest 555 00:31:20,990 --> 00:31:23,110 choć mamy kilka nowych kawałków składni. 556 00:31:23,110 --> 00:31:25,930 Jest to forma. Tak naprawdę robi się ciekawie web 557 00:31:25,930 --> 00:31:28,770 gdy strony pobierać dane od użytkowników. 558 00:31:28,770 --> 00:31:31,700 W tej klasie, w problem ustawiony na programowaniu stron internetowych, 559 00:31:31,700 --> 00:31:33,880 nie zamierzamy zrobić stronę internetową, per se, 560 00:31:33,880 --> 00:31:37,570 z zawartości statycznej, który pokazuje zdjęcia, które zostały podjęte, 561 00:31:37,570 --> 00:31:40,010 czy to jest moje CV, a rzeczy o mnie, 562 00:31:40,010 --> 00:31:42,450 bo te rzeczy są stosunkowo łatwe do wprowadzenia razem. 563 00:31:42,450 --> 00:31:44,400 Trudno, aby rzeczy piękne w sieci, 564 00:31:44,400 --> 00:31:46,390 ale przynajmniej umieszczania treści jest dość trywialne. 565 00:31:46,390 --> 00:31:49,380 Ale robi się naprawdę interesujące, kiedy ktoś może odwiedzić stronę internetową 566 00:31:49,380 --> 00:31:52,260 i zapewniają wejście i mogą wypełniać formularze, 567 00:31:52,260 --> 00:31:55,800 mogą sprawdzić się pola wyboru i może współdziałać z Twojej strony. 568 00:31:55,800 --> 00:31:57,780 I rzeczywiście, prawdopodobnie każda strona Ci zależy 569 00:31:57,780 --> 00:32:00,710 te dni, w szczegóły, jest w jakiś sposób interaktywny. 570 00:32:00,710 --> 00:32:03,110 Facebook, Google, i tym podobne, które podjąć wejściowych użytkownika 571 00:32:03,110 --> 00:32:05,100 i produkować dostosowane wyjście. 572 00:32:05,100 --> 00:32:07,780 >> Zacznijmy więc zrobić to teraz. Niech teraz przejście 573 00:32:07,780 --> 00:32:11,150 z tylko za pomocą znaczników HTML dla zawartości statycznej 574 00:32:11,150 --> 00:32:14,790 bo zamiast mechanizm opłat dynamicznej zawartości. 575 00:32:14,790 --> 00:32:17,350 I do tego celu, niech realizować własne wyszukiwarki. 576 00:32:17,350 --> 00:32:20,820 Zróbmy to w następujący sposób. Oto tag formularza. 577 00:32:20,820 --> 00:32:24,090 Atrybut action określa, że ​​gdy użytkownik wypełnia ten formularz 578 00:32:24,090 --> 00:32:28,400 z klawiaturą, zostanie on przedłożony do tego adresu URL tutaj. 579 00:32:28,400 --> 00:32:31,230 Więc jestem rodzajem oszustwa. To zajmie nam trochę dłużej 580 00:32:31,230 --> 00:32:33,780 niż jedna klasa do wdrożenia całego wyszukiwarki, 581 00:32:33,780 --> 00:32:35,880 więc musimy po prostu zrobić z przodu, że tak powiem. 582 00:32:35,880 --> 00:32:38,650 Zrobimy część, która umożliwia wyszukiwanie użytkownika, a będziemy sortować Punt do Google 583 00:32:38,650 --> 00:32:40,950 Najtrudniejsze znalezienia wyniki wyszukiwania, 584 00:32:40,950 --> 00:32:43,520 ale konkretnie, zamierzam porozmawiać z serwera Google 585 00:32:43,520 --> 00:32:46,710 przy użyciu jednej z dwóch metod bardzo popularne. 586 00:32:46,710 --> 00:32:50,000 Jedna jest uzyskać, inny, że uda nam się w końcu zobaczyć, jest post, 587 00:32:50,000 --> 00:32:52,660 choć istnieją inne, które są rzadziej używane. 588 00:32:52,660 --> 00:32:56,440 Więc po prostu kojarzy się pomysł, chcę trochę treści, trochę wyniki wyszukiwania. 589 00:32:56,440 --> 00:32:58,440 To, można być może wiecie co to robi. 590 00:32:58,440 --> 00:33:01,900 To jest jakiś rodzaj wejścia, to w rzeczywistości będzie wyglądać polu tekstowym, 591 00:33:01,900 --> 00:33:05,200 a nazwa tego wejścia, nazwa tej zmiennej, by tak rzec, 592 00:33:05,200 --> 00:33:08,610 zostanie q do kwerendy przez konwencję. 593 00:33:08,610 --> 00:33:11,700 I znów, Typ wejście to nie będzie pole; 594 00:33:11,700 --> 00:33:13,890 nie będzie menu, to będzie to pole tekstowe 595 00:33:13,890 --> 00:33:18,060 jak oznaczone tym atrybutem tutaj, a tym polu tekstowym, 596 00:33:18,060 --> 00:33:20,680 jak koniec linii, jest albo czy nie. 597 00:33:20,680 --> 00:33:24,480 Więc mamy pusty element z ukośnikiem wewnątrz tego tagu. 598 00:33:24,480 --> 00:33:28,050 Potem mam zamiar umieścić podział wiersza, a można, być może, odgadnąć, co to będzie zrobić. 599 00:33:28,050 --> 00:33:30,210 To jest inny rodzaj pola formularza. 600 00:33:30,210 --> 00:33:32,350 >> Ten będzie używany do złożenia formularza. 601 00:33:32,350 --> 00:33:36,140 Więc to będzie duży przycisk, który użytkownik może kliknąć, aby wysłać formularz, 602 00:33:36,140 --> 00:33:40,800 i oznakowanie na tym przycisku będzie "CS50 Szukaj". 603 00:33:40,800 --> 00:33:44,170 Zamknij formularz, blisko ciała, blisko HTML. 604 00:33:44,170 --> 00:33:46,280 Zobaczmy, co mamy w postaci strony internetowej. 605 00:33:46,280 --> 00:33:48,260 Więc pozwól mi iść do mojej przeglądarce, 606 00:33:48,260 --> 00:33:50,360 puść mnie, jeszcze, na lokalnym komputerze. 607 00:33:50,360 --> 00:33:54,650 To wciąż index.html, więc jeśli chcę zobaczyć ten plik o nazwie search0, 608 00:33:54,650 --> 00:33:59,710 Można po prostu zrobić / search0.html wprowadzić - 609 00:33:59,710 --> 00:34:01,880 i pierwszy z moich błędów. 610 00:34:01,880 --> 00:34:04,400 Co się dzieje? I wyraźnie nie ma uprawnień 611 00:34:04,400 --> 00:34:06,430 dostępu do tego pliku, z jakiegoś powodu. 612 00:34:06,430 --> 00:34:10,170 Ale to dlatego, że, w przeciwieństwie do pracy zrobiliśmy do tej pory w C, 613 00:34:10,170 --> 00:34:14,340 których programy piszesz są traktowane runable przez Ciebie, 614 00:34:14,340 --> 00:34:17,590 wykonywalny przez Ciebie, to nie jest przypadek w internecie, 615 00:34:17,590 --> 00:34:21,010 przy czym czasami może chcesz tworzyć pliki na serwerze, 616 00:34:21,010 --> 00:34:23,310 ale nie chcesz cały świat, aby móc je zobaczyć. 617 00:34:23,310 --> 00:34:25,469 Przeciwnie, chcemy świata, aby zobaczyć pliki 618 00:34:25,469 --> 00:34:27,730 ale inni nie, tylko dla dobra firmy dotyczącej prywatności. 619 00:34:27,730 --> 00:34:30,730 Tak więc jest to bardziej zasadzie opt-in, gdy robisz rzeczy w sieci. 620 00:34:30,730 --> 00:34:32,810 A więc pozwól mi faktycznie wpisz ls tutaj 621 00:34:32,810 --> 00:34:37,440 i zobaczyć pliki mam, ale przypominam, że jeśli zrobić ls-l na długo, 622 00:34:37,440 --> 00:34:41,520 Wezmę dłuższy wpis, który daje mi trochę więcej szczegółów na temat tych plików 623 00:34:41,520 --> 00:34:45,139 , które są obecnie bardzo, po raz pierwszy, odpowiedniego do nas. 624 00:34:45,139 --> 00:34:47,840 Zauważ, że po prawej stronie są imiona moich plików, 625 00:34:47,840 --> 00:34:50,690 i czas, w którym byli ostatnio zmienione lub skopiowane. 626 00:34:50,690 --> 00:34:54,370 Numer ten tutaj jest, co? Czy pamiętasz? 627 00:34:54,370 --> 00:34:56,400 Rozmiar w bajtach, jak duży jest to plik. 628 00:34:56,400 --> 00:34:59,520 >> Tak więc wydaje się, że jakieś logo tutaj, że jest większy niż wszystkich pozostałych plików. 629 00:34:59,520 --> 00:35:03,610 To, kim jestem, to jest to, co jestem i co grupa jestem w. 630 00:35:03,610 --> 00:35:07,430 Ale potem, tu po lewej jest trochę tajemniczy sekwencji, 631 00:35:07,430 --> 00:35:10,040 i rozmawialiśmy, jak sądzę, na chwilę o tym w przeszłości, 632 00:35:10,040 --> 00:35:12,050 ale to ma do czynienia z uprawnieniami. 633 00:35:12,050 --> 00:35:14,020 A nawet jeśli to trochę zamglone, 634 00:35:14,020 --> 00:35:17,270 RW prawdopodobnie oznacza czytać i pisać. 635 00:35:17,270 --> 00:35:22,560 Okazuje się, że te kreski oznaczają różne zestawy uprawnień dla różnych ludzi. 636 00:35:22,560 --> 00:35:24,730 Wzór i jest zasadniczo w następujący sposób. 637 00:35:24,730 --> 00:35:27,650 Kiedy widzisz sekwencję kresek tutaj, wyglądają następująco. 638 00:35:27,650 --> 00:35:30,450 Jest kreska, to nie ma jeszcze trzy kreski, 639 00:35:30,450 --> 00:35:33,390 Jest jeszcze kolejne trzy, to nie jest jeszcze trzy. 640 00:35:33,390 --> 00:35:36,800 Pierwszym z nich jest albo myślnik lub jest to reklama w katalogu. 641 00:35:36,800 --> 00:35:40,220 Tak, że jeden jest całkiem proste. Jeśli jest to folder, mówi d, w przeciwnym razie jest łącznik. 642 00:35:40,220 --> 00:35:44,080 Jest kilka innych spraw, ale teraz musimy po prostu dbać o plikach i katalogach. 643 00:35:44,080 --> 00:35:48,090 Te następne trzy kreski - a ja sztucznie wstawione spacje. 644 00:35:48,090 --> 00:35:50,490 Były, oczywiście, nie tam, kiedy ich zobaczył chwilą. 645 00:35:50,490 --> 00:35:52,900 Są właściciela pliku na uprawnienia, 646 00:35:52,900 --> 00:35:55,840 i wycofanie się z sekundy temu, że został on czytać i pisać. 647 00:35:55,840 --> 00:35:58,560 To dlatego, że ja, jako osoby, która utworzyła ten plik przed chwilą, 648 00:35:58,560 --> 00:36:01,250 Ja, po prostu domyślnie na komputerze z systemem Linux, 649 00:36:01,250 --> 00:36:03,910 mają zdolność do kontynuowania pisania i czytania tego pliku. 650 00:36:03,910 --> 00:36:07,170 >> Więc system operacyjny po prostu daje mi RW automatycznie. 651 00:36:07,170 --> 00:36:10,840 Środkowe te odnoszą się do mojej grupy, że studentów, 652 00:36:10,840 --> 00:36:14,590 który jest rodzajem sensu na urządzeniu, bo jestem jedyną osobą korzystającą z urządzenia. 653 00:36:14,590 --> 00:36:16,620 Więc niech mi tylko machać rękami na to teraz. 654 00:36:16,620 --> 00:36:19,190 Ale te ostatnie są najbardziej istotne dla sieci Web. 655 00:36:19,190 --> 00:36:21,580 To wszyscy na świecie, a fakt 656 00:36:21,580 --> 00:36:24,600 że jest --- oznacza, że ​​nikt na świecie 657 00:36:24,600 --> 00:36:26,680 ma wszelkie uprawnienia do tego pliku. 658 00:36:26,680 --> 00:36:29,180 Oczywiście problem, więc trzeba to naprawić 659 00:36:29,180 --> 00:36:33,830 by jakoś daje światu, co? Czytać i pisać? 660 00:36:33,830 --> 00:36:35,850 To pewnie głupie, prawda? Nie chcę nikogo w internecie 661 00:36:35,850 --> 00:36:38,530 , aby przejść do odwiedzenia mojej strony i jakoś zmienić ten plik, 662 00:36:38,530 --> 00:36:40,800 chociaż tak naprawdę nie mógł z pliku HTML, 663 00:36:40,800 --> 00:36:44,110 ale tylko w zasadzie, prawdopodobnie chcesz, żeby być w stanie go odczytać. 664 00:36:44,110 --> 00:36:47,910 Co to znaczy, aby ją przeczytać? To nie znaczy, że będziemy dbać o rzeczywistej HTML, 665 00:36:47,910 --> 00:36:51,820 ale przeglądarka musi być w stanie przetworzyć, że język znaczników, 666 00:36:51,820 --> 00:36:53,720 od góry do dołu, od lewej do prawej. 667 00:36:53,720 --> 00:36:57,990 Więc ktoś w sieci musi być w stanie go odczytać, więc minimalnie trzeba dać r. 668 00:36:57,990 --> 00:37:00,240 Można to zrobić w kilka różnych sposobów, ale może 669 00:37:00,240 --> 00:37:03,080 Najprostszym jest uruchomienie tego polecenia tutaj. 670 00:37:03,080 --> 00:37:10,860 Chmod, tryb zmiany, a następnie + r więc wszyscy, każdy na świecie + czytać, 671 00:37:10,860 --> 00:37:13,830 i nazwa pliku, search0.html. 672 00:37:13,830 --> 00:37:18,310 >> Teraz, jeśli mogę zrobić ls-l znowu zauważyć, że plik został zmieniony, 673 00:37:18,310 --> 00:37:21,440 i rzeczywiście, mam włączone r dla każdego. 674 00:37:21,440 --> 00:37:23,350 Ja również włączeniu do mojej grupy, ale to jest w porządku, 675 00:37:23,350 --> 00:37:27,150 bo gdybym zwrócił się w sprawie dla siebie, moja grupa jest podzbiorem tego. 676 00:37:27,150 --> 00:37:31,480 Więc to jest w porządku. To po prostu oznacza, że ​​komputer poczynił on czytelny. 677 00:37:31,480 --> 00:37:34,430 Teraz pozwól mi wrócić do mojej przeglądarce, kliknij przeładować. 678 00:37:34,430 --> 00:37:36,330 Ah-ha. Mamy teraz CS50 Wyszukaj. 679 00:37:36,330 --> 00:37:39,830 Mam powiększony trochę sztucznie - wyszukiwarka dość ohydne. 680 00:37:39,830 --> 00:37:41,930 Ale zobaczymy, czy to rzeczywiście działa. 681 00:37:41,930 --> 00:37:45,880 Po pierwsze, pozwól mi zrobić szybkie sprawdzenie kondycji, pozwól mi kontrolować kliknij i zobacz strony. 682 00:37:45,880 --> 00:37:50,780 Zauważ, że w Chrome jesteśmy teraz widząc ten sam HTML, który sam stworzył. 683 00:37:50,780 --> 00:37:55,420 Nie gubi się tutaj, choć. Nie mogę zacząć zmieniać kod tutaj, 684 00:37:55,420 --> 00:37:59,420 bo przeglądarka ma tylko do odczytu widok tego kodu. 685 00:37:59,420 --> 00:38:06,060 Przeglądarka właśnie poprosił lokalnego hosta do pliku o nazwie search0.html. 686 00:38:06,060 --> 00:38:09,490 To jest teraz czysty przypadek, że urządzenie 687 00:38:09,490 --> 00:38:13,480 dzieje się na tym samym komputerze, co mojej przeglądarce. 688 00:38:13,480 --> 00:38:20,470 Może po prostu mieć, równoważnie, wpisałeś w www.facebook.com/search0.html, 689 00:38:20,470 --> 00:38:23,830 i jeśli Facebook miał plik o nazwie, że chciałbym być następnie widząc ich HTML. 690 00:38:23,830 --> 00:38:27,360 I, oczywiście, nie mogę zmienić plik, który wraca z Facebook, albo. 691 00:38:27,360 --> 00:38:29,360 Więc teraz jesteśmy jakby zacierając granice. 692 00:38:29,360 --> 00:38:32,130 Urządzenie jest zarówno serwer, służący do stron internetowych, 693 00:38:32,130 --> 00:38:34,870 ale również klienta w tym sensie, że używam przeglądarki 694 00:38:34,870 --> 00:38:37,630 faktycznie porozmawiać z tym serwerem. 695 00:38:37,630 --> 00:38:39,610 Zobaczmy więc, czy moja wyszukiwarka Google działa. 696 00:38:39,610 --> 00:38:44,930 Pozwól mi iść dalej i szukać Szybki, brązowy lis, wprowadź. 697 00:38:44,930 --> 00:38:47,540 I voila, mam teraz własne wyszukiwarki. 698 00:38:47,540 --> 00:38:51,460 >> Ale w jaki sposób to działa? 699 00:38:51,460 --> 00:38:55,380 Trochę naciągane, ale - i teraz nie możesz zobaczyć, właśnie, część, która znajduje się interesujące. 700 00:38:55,380 --> 00:38:57,370 Zauważ, co się dzieje. 701 00:38:57,370 --> 00:39:00,430 Wskazówka URL. Okazuje się, że tę metodę, 702 00:39:00,430 --> 00:39:02,780 nazywa dostać, jest super-proste. 703 00:39:02,780 --> 00:39:10,270 Kiedy podasz w formularzu, że chcesz "dostać" Wyniki z jakiegoś serwera, 704 00:39:10,270 --> 00:39:13,200 co to będzie zrobić, to wziąć cokolwiek wpisane w formularzu 705 00:39:13,200 --> 00:39:15,290 i umieścić ją w adresie URL. 706 00:39:15,290 --> 00:39:18,580 To będzie ujednolicenie sposobu pobiera umieścić w adresie URL w następujący sposób. 707 00:39:18,580 --> 00:39:22,290 Zauważ, że jest to adres URL, który był moim wartość atrybutu akcji. 708 00:39:22,290 --> 00:39:24,730 To miejsce, gdzie chciałem forma skończyć. 709 00:39:24,730 --> 00:39:26,950 Ale wtedy zauważyć ten znak zapytania. 710 00:39:26,950 --> 00:39:30,230 Jest to konwencja w sieci w której dostarczenie danych wejściowych użytkownika 711 00:39:30,230 --> 00:39:35,320 na stronie internetowej, należy dołączyć do adresu URL znak zapytania, 712 00:39:35,320 --> 00:39:38,330 i wtedy masz całą masę par klucz-wartość. 713 00:39:38,330 --> 00:39:42,380 Nazwa klucza, inaczej znany jako parametr w sieci, 714 00:39:42,380 --> 00:39:46,380 to masz znak równości, to masz wartość tego parametru. 715 00:39:46,380 --> 00:39:49,810 Więc to jest w istocie nazwa zmiennej oraz wartość zmiennej, 716 00:39:49,810 --> 00:39:54,250 Ale ci zmiennej nazwy i wartości pochodzą z formularza HTML. 717 00:39:54,250 --> 00:39:56,250 Dlaczego plusy tam, jak myślisz? 718 00:39:56,250 --> 00:39:59,340 Bo nie wpisać + w między moimi słowami. 719 00:39:59,340 --> 00:40:01,430 [Student, niezrozumiały] 720 00:40:01,430 --> 00:40:05,080 >> Tak, to jest właśnie dla odstępów. Szanse są, gdy widzieliście URL, 721 00:40:05,080 --> 00:40:07,320 nigdy nie ma żadnych spacji w nim, choćby dlatego, 722 00:40:07,320 --> 00:40:09,440 jeśli nie było, nie można było skopiować i wkleić 723 00:40:09,440 --> 00:40:12,700 do IM lub do wiadomości e-mail, ponieważ byłoby to złamać. 724 00:40:12,700 --> 00:40:15,420 Chcesz całość za jeden ciągły łańcuch znaków. 725 00:40:15,450 --> 00:40:18,450 >> Więc przeglądarka jest wystarczająco inteligentny, aby zdać sobie sprawę, uh-uh. 726 00:40:18,450 --> 00:40:22,610 Nie wystarczy umieścić spację tam. Pozwól mi zakodować przestrzeń w jakiś sposób standardowy. 727 00:40:22,610 --> 00:40:25,170 Jednym z konwencji wykorzystać to mieć przeglądarkę 728 00:40:25,170 --> 00:40:29,350 automatycznie umieścić + gdzie byś inaczej mieć miejsca. 729 00:40:29,350 --> 00:40:32,140 Więc teraz, anons Google jest trochę łatwy w obsłudze. 730 00:40:32,140 --> 00:40:34,380 I na pewno nie stworzył stronę internetową, 731 00:40:34,380 --> 00:40:37,200 ale mają one oznakowane własne pole tekstowe 732 00:40:37,200 --> 00:40:39,490 z tego, co właśnie, mam wpisane w. 733 00:40:39,490 --> 00:40:43,090 Załóżmy, że chcę, aby szukać czegoś innego, jak leniwym psem. 734 00:40:43,090 --> 00:40:45,340 Mogę tylko napisać to tutaj, re-search. 735 00:40:45,340 --> 00:40:47,730 Zauważ, że adres URL zmienia się tutaj, 736 00:40:47,730 --> 00:40:51,390 ale zauważ, wtedy faktycznie mogę wyszukać nic Chcę 737 00:40:51,390 --> 00:40:53,610 tylko poprzez zrozumienie jak działają adresy URL. 738 00:40:53,610 --> 00:40:56,840 Mogłem zrobić leniwy kot, wejść, 739 00:40:56,840 --> 00:41:01,370 i zauważ, teraz dostaję bardzo leniwy - powinniśmy? Czuję, że powinienem. 740 00:41:01,370 --> 00:41:09,900 Mam bardzo leniwego kota. 741 00:41:09,900 --> 00:41:11,930 Dobrze. Jest to jedna z najgłupszych rzeczy, jakie zrobiłem. 742 00:41:11,930 --> 00:41:17,160 Ale to jest leniwy kot. 743 00:41:17,160 --> 00:41:19,730 Tak czy inaczej, co jest kluczem takeaway tutaj? 744 00:41:19,730 --> 00:41:22,830 Teraz jesteśmy w rodzaju gry w świecie protokołu HTTP. 745 00:41:22,830 --> 00:41:26,050 HTML jest właśnie to język znaczników, open tag, blisko tag, 746 00:41:26,050 --> 00:41:29,490 , który mówi, jak przeglądarki do renderowania zawartości na stronie internetowej. 747 00:41:29,490 --> 00:41:32,850 Ale po uruchomieniu przekazu danych w Internecie 748 00:41:32,850 --> 00:41:36,290 między przeglądarką a serwerem, to gdzie ten protokół 749 00:41:36,290 --> 00:41:39,370 znany jako HyperText Transfer Protocol przejmuje. 750 00:41:39,370 --> 00:41:42,630 Jest to rodzaj ludzkiej konwencji, gdy Sam i uścisnęli sobie dłonie w poniedziałek, 751 00:41:42,630 --> 00:41:48,300 rozpoczęcie połączenia, a następnie zamknięcie połączenia, sam pomysł tutaj. 752 00:41:48,300 --> 00:41:53,100 Jak są wyniki Google wraca do mnie? 753 00:41:53,100 --> 00:41:55,290 Jak jest przedłożenie forma idzie do Google? 754 00:41:55,290 --> 00:41:58,160 Cóż, pamiętam z innego dnia, że ​​to, co się naprawdę dzieje 755 00:41:58,160 --> 00:42:02,150 pod maską, gdy wniosek jest strona internetowa, 756 00:42:02,150 --> 00:42:04,860 Twoja przeglądarka wysyła nieco-tajemnicze wiadomości jak 757 00:42:04,860 --> 00:42:09,510 GET / HTTP/1.1 do domyślnej strony głównej. 758 00:42:09,510 --> 00:42:13,000 >> Lub, w przypadku, w szczególności dlatego, że wymagane wcześniej 759 00:42:13,000 --> 00:42:17,340 search0.html, to potem będzie nieco-cryptic wiadomość 760 00:42:17,340 --> 00:42:20,040 że moja przeglądarka wysyła do urządzenia. 761 00:42:20,040 --> 00:42:23,090 Lub, w tym przypadku Google, co się rzeczywiście wysłany 762 00:42:23,090 --> 00:42:33,740 jest żądanie / search, i wtedy? q = leniwego kota, z plus tam. 763 00:42:33,740 --> 00:42:36,790 Więc ta wiadomość, że ja, człowiek, nigdy nie piszę, 764 00:42:36,790 --> 00:42:40,620 ale jest wysyłany przez moją przeglądarkę, to jest jak HTTP dzieje. 765 00:42:40,620 --> 00:42:43,240 Odpowiada to po wytrząsanych naszych rąk. 766 00:42:43,240 --> 00:42:46,320 To jest prośba, a serwer jest o wysłanie odpowiedzi. 767 00:42:46,320 --> 00:42:48,560 Warto więc spojrzeć na to pod maską. 768 00:42:48,560 --> 00:42:55,320 Jak poprzednio, możemy otworzyć tę specjalne pole w przeglądarce. 769 00:42:55,320 --> 00:42:58,720 Zobacz stronę, sprawdź elementy. 770 00:42:58,720 --> 00:43:01,550 Tak więc w ramach kontroli elementu, zauważysz, że co się stało w Chrome, 771 00:43:01,550 --> 00:43:04,160 i IE i Firefox mają podobne mechanizmy, 772 00:43:04,160 --> 00:43:07,370 mamy te narzędzia programistyczne dostępne dla nas. 773 00:43:07,370 --> 00:43:09,630 Normalni ludzie nie używać tych kart. 774 00:43:09,630 --> 00:43:11,940 Ale teraz, są zainteresowani tym, co się dzieje 775 00:43:11,940 --> 00:43:13,890 pod maską na poziomie sieciowym. 776 00:43:13,890 --> 00:43:16,130 Więc jeśli podciągnąć poziomie sieci tutaj 777 00:43:16,130 --> 00:43:18,510 pozwól mi iść do przodu i rozwijać to okno, 778 00:43:18,510 --> 00:43:21,840 otwórz ten wpis tutaj, i spojrzeć na nagłówki. 779 00:43:21,840 --> 00:43:26,010 Więc co się dzieje, kiedy poprosić o plik z serwera WWW 780 00:43:26,010 --> 00:43:29,410 to moja przeglądarka wysyła całą masę rzeczy. 781 00:43:29,410 --> 00:43:32,390 I pozwól mi zobaczyć źródło. Więc pod nagłówki żądania, 782 00:43:32,390 --> 00:43:35,250 i to jest właśnie Chrome pokazuje mi jakieś wyjście diagnostyczne, 783 00:43:35,250 --> 00:43:37,340 coś w rodzaju jakiegoś debuggera, 784 00:43:37,340 --> 00:43:40,500 zauważyć, że tego, co już podkreślono właśnie tu 785 00:43:40,500 --> 00:43:47,060 Chrome wysyła do serwera w celu zażądania plik o nazwie search0.html. 786 00:43:47,060 --> 00:43:50,160 To mówi serwerowi co myśli jego nazwa, 787 00:43:50,160 --> 00:43:52,210 dzięki tej dziedzinie grubego gospodarza, to nie jest jakiś 788 00:43:52,210 --> 00:43:56,950 dość ezoteryczne rzeczy tutaj, jak coś zrobić z dat i godzin, 789 00:43:56,950 --> 00:43:59,720 coś zrobić z języków, że przeglądarka nie rozumie, 790 00:43:59,720 --> 00:44:02,850 ale naprawdę ważne linie są te dwa pierwsze tutaj. 791 00:44:02,850 --> 00:44:05,490 >> Co oznacza, że ​​serwer odpowie? Cóż, jeśli przewiń tutaj 792 00:44:05,490 --> 00:44:08,510 i zobaczyć źródło tej rzeczy, zauważysz, że serwer 793 00:44:08,510 --> 00:44:13,700 odpowiedziała wiadomości nieco tajemnicze, jak również, nie 304 modyfikowany. 794 00:44:13,700 --> 00:44:16,030 To trochę dziwne, pozwól mi faktycznie spróbować to naprawić. 795 00:44:16,030 --> 00:44:18,670 Pozwól, przytrzymaj Shift i kliknij załaduj tutaj 796 00:44:18,670 --> 00:44:22,460 zmusić przeglądarkę do rzeczywiście zrobić ten wniosek po raz pierwszy. 797 00:44:22,460 --> 00:44:25,700 Pozwól mi powiększyć, a my zobaczymy, że teraz odpowiedź serwera, 798 00:44:25,700 --> 00:44:28,950 bo orzekł zmianę, jest 200 OK. 799 00:44:28,950 --> 00:44:31,170 Więc prawdopodobnie nigdy nie widział numer 200 800 00:44:31,170 --> 00:44:33,300 w ramach sieci, ale to, co liczb 801 00:44:33,300 --> 00:44:36,760 ty czasami postrzegane niespodziewanie z serwera? 802 00:44:36,760 --> 00:44:42,010 404, nie znaleziono pliku, 403, zakazane; 500, błąd serwera. 803 00:44:42,010 --> 00:44:44,890 Więc to są te kody numeryczne, że świat używa w sieci 804 00:44:44,890 --> 00:44:47,870 oznaczać błędy, podobnie jak funkcji C 805 00:44:47,870 --> 00:44:51,030 mogą zwracać błędy i główny może powrócić kodów wyjścia. 806 00:44:51,030 --> 00:44:54,160 200, choć rzadko można zobaczyć, ponieważ oznacza, że ​​wszystko jest dobrze. 807 00:44:54,160 --> 00:44:59,000 I 304 prawdopodobnie nigdy nie zobaczyć, bo to, co jest to wyraźna? 808 00:44:59,000 --> 00:45:03,330 Że nic nie ma - zobaczymy, czy możemy symulować to ponownie - 809 00:45:03,330 --> 00:45:07,170 Och, teraz to nie współpracuje. 304 powiedział, modyfikowane, 810 00:45:07,170 --> 00:45:09,170 więc dlaczego serwer nawet reagować? 811 00:45:09,170 --> 00:45:12,550 Cóż, dla wydajności, serwer automatycznie dla Ciebie, 812 00:45:12,550 --> 00:45:16,570 jeśli plik się nie zmienił, to nie będzie retransmisji całego pliku HTML. 813 00:45:16,570 --> 00:45:19,150 To tylko poinformować przeglądarkę, że nie uległa zmianie. 814 00:45:19,150 --> 00:45:21,220 Wystarczy skorzystać z kopii już masz. 815 00:45:21,220 --> 00:45:22,650 Więc jest to pojęcie buforowanie w sieci 816 00:45:22,650 --> 00:45:25,840 do wykonania, tak, aby nie tracić czasu i przepustowości odpadów 817 00:45:25,840 --> 00:45:29,160 pobieranie plików ponownie i ponownie bez potrzeby. 818 00:45:29,160 --> 00:45:31,460 >> Jednak ta strona, teraz, było super-proste, 819 00:45:31,460 --> 00:45:34,980 i to tylko pokazał mi HTML, który wrócił. 820 00:45:34,980 --> 00:45:40,940 Miejmy faktycznie używać kartę sieciową teraz zrobić wyszukiwania Google jak Quick Brown Fox. 821 00:45:40,940 --> 00:45:43,010 Pozwól następnie kliknij CS50 wyszukiwania 822 00:45:43,010 --> 00:45:46,950 i teraz, zauważył w dole tu cała masa rzeczy wróciły 823 00:45:46,950 --> 00:45:49,900 bo kiedy odwiedzić prawdziwą stronę internetową jak Google.com, 824 00:45:49,900 --> 00:45:53,520 mają obrazy, mają tekst, mają język zwany JavaScript nie. 825 00:45:53,520 --> 00:45:55,940 Więc każdy wiersz w tej tabeli na dole 826 00:45:55,940 --> 00:46:01,490 reprezentuje coś, że Google wypluł w odpowiedzi na moje pojedynczego żądania. 827 00:46:01,490 --> 00:46:04,160 Jeden mi zależy, choć jest to pierwszy z nich. 828 00:46:04,160 --> 00:46:08,420 A jeśli pójdę do poszukiwania, żądanie, kliknij przycisk Wyświetl źródło tutaj 829 00:46:08,420 --> 00:46:11,300 zauważyć, że rzeczywiście tajemniczy komunikat, że moja przeglądarka wysłany 830 00:46:11,300 --> 00:46:15,010 do Google właśnie te dwie linie tutaj 831 00:46:15,010 --> 00:46:18,420 następnie jakiś tajemnej tu informacji, które będziemy ignorować teraz. 832 00:46:18,420 --> 00:46:20,890 Ale zauważ też, co Chrome jest całkiem przydatny z, 833 00:46:20,890 --> 00:46:24,540 to też pokazano mi ciąg kwerendy, który został wysłany w. 834 00:46:24,540 --> 00:46:27,410 Tak więc, zamiast pokazać mi to, co było dosłownie wysłane, 835 00:46:27,410 --> 00:46:30,800 gdybym go zobaczyć dekodowane, Chrome, tylko do celów diagnostycznych 836 00:46:30,800 --> 00:46:34,270 dla programistów, takich jak my, to tylko pokazuje mi człowieka przyjazną wersję - 837 00:46:34,270 --> 00:46:36,390 , że nie jest, jak się pisze lisa, najwyraźniej. 838 00:46:36,390 --> 00:46:40,520 Chcę tylko zauważyć, to teraz - ale to pokazuje ci, co, zdaje się, wpisane. 839 00:46:40,520 --> 00:46:45,340 Tymczasem odpowiedź, że wrócił z serwera jest znowu 200 OK. 840 00:46:45,340 --> 00:46:47,930 Jednak w tej reakcji zawiera, oczywiście 841 00:46:47,930 --> 00:46:51,920 jeśli faktycznie wyświetlić stronę w HTML - 842 00:46:51,920 --> 00:46:55,440 Przepraszam, to jest trochę skrót klawiaturowy poszło na opak dziś. 843 00:46:55,440 --> 00:46:59,020 >> Zajmę się tym później. Jeśli więc faktycznie wyświetlić stronę na źródło, 844 00:46:59,020 --> 00:47:02,990 co mogę zrobić, klikając tu odpowiedzi, 845 00:47:02,990 --> 00:47:10,080 to, co w rzeczywistości wypluć powrotem, oprócz tego tajemniczej 200 OK wiadomość z serwera. 846 00:47:10,080 --> 00:47:12,520 Trochę tajemnicze, ale gdzie to wszystko się bierze? 847 00:47:12,520 --> 00:47:15,570 Dobrze, zróbmy jedną rzecz tutaj. Innym nieco-tajemnicze polecenie, 848 00:47:15,570 --> 00:47:20,530 Ale to jest rodzaj schludny, ponieważ ukazuje nam, co dokładnie dzieje się pod maską. 849 00:47:20,530 --> 00:47:22,530 Więc jestem z powrotem na moim Mac tutaj, mam podłączony 850 00:47:22,530 --> 00:47:25,980 poprzez program o nazwie SSH, Secure Shell, do innego serwera 851 00:47:25,980 --> 00:47:28,940 ponieważ większość komputerów Harvardu blokować polecenia mamy zamiar uruchomić 852 00:47:28,940 --> 00:47:31,640 bo jest to polecenie na niektórych serwerach nazywa traceroute 853 00:47:31,640 --> 00:47:34,810 , który pozwala prześledzić trasę między punktami A i B, 854 00:47:34,810 --> 00:47:37,020 i do tej pory byliśmy biorąc całkowicie za pewnik 855 00:47:37,020 --> 00:47:40,170 że mogę wpisać w Google.com i jakoś uzyskać dane z powrotem 856 00:47:40,170 --> 00:47:43,530 od połowy w całym kraju lub połowy, na całym świecie. 857 00:47:43,530 --> 00:47:45,810 Z traceroute rzeczywiście możemy zanurkować głębiej 858 00:47:45,810 --> 00:47:49,370 , jak działa Internet i zobaczyć, co się dzieje pod maską. 859 00:47:49,370 --> 00:47:54,440 Więc idź naprzód i arbitralnie prześledzić trasę, powiedzmy, Stanford.edu, 860 00:47:54,440 --> 00:47:57,150 który jest w całym kraju, i nacisnąć enter. 861 00:47:57,150 --> 00:47:59,380 Polecenie to może być super-szybkie lub super-wolny, 862 00:47:59,380 --> 00:48:02,010 ale co widzimy teraz, linia po linii, 863 00:48:02,010 --> 00:48:08,060 jest każdy z etapów i chmielu między nami i Palo Alto lub Stanford, 864 00:48:08,060 --> 00:48:11,010 których mają serwer. 865 00:48:11,010 --> 00:48:16,600 Więc co każda z tych linii reprezentują bardziej konkretnie, chociaż? 866 00:48:16,600 --> 00:48:19,100 Kawałek żargonu z Internetu? [Student, niezrozumiały] 867 00:48:19,100 --> 00:48:21,570 >> Co to jest? [Student, niezrozumiały] 868 00:48:21,570 --> 00:48:25,390 >> Och, więc nie są czasy, ale co każdy wiersz - co rozumiem przez hop? 869 00:48:25,390 --> 00:48:29,140 >> Cóż, są takie rzeczy w Internecie, zwane routery. 870 00:48:29,140 --> 00:48:33,020 I routery, jak sama nazwa wskazuje, informacje droga z punktu A do punktu B. 871 00:48:33,020 --> 00:48:36,920 Ale istnieje kilka punktów poza A i B. 872 00:48:36,920 --> 00:48:40,010 Jest c i d, e, f między wierszu 1, 873 00:48:40,010 --> 00:48:43,480 co zdarza się mój adres IP komputera, 874 00:48:43,480 --> 00:48:46,890 lub mój adres numeryczny, który jednoznacznie identyfikuje komputer, 875 00:48:46,890 --> 00:48:50,300 i krok 15, który jest aktualnie szósty serwer WWW, 876 00:48:50,300 --> 00:48:54,640 najwyraźniej, których jestem wywodząc z tego, lub w wersji 6 z ich serwera w Stanford. 877 00:48:54,640 --> 00:48:56,680 Ale co to za miłe jest, możemy zobaczyć ścieżkę 878 00:48:56,680 --> 00:49:00,480 że mój 0 i 1'S biorą z mojego komputera do Stanford. 879 00:49:00,480 --> 00:49:02,500 Więc krok 1 jest moim własnym komputerze adres. 880 00:49:02,500 --> 00:49:05,760 Każdy komputer w Internecie ma swój unikalny identyfikator, który wygląda tak. 881 00:49:05,760 --> 00:49:08,150 Number.number.number.number. 882 00:49:08,150 --> 00:49:10,370 Gdzieś na tym kampusie, prawdopodobnie w centrum nauki, 883 00:49:10,370 --> 00:49:16,780 jest to router o nazwie Brama Core 2-te83, cokolwiek to znaczy, 884 00:49:16,780 --> 00:49:20,590 więc jest to jeden z wielkich Harvardu routerów fantazyjnych, że trasy wiele ich ruchu. 885 00:49:20,590 --> 00:49:24,640 Oto kolejny routerów Harvardu, ten jest Border Gateway, 886 00:49:24,640 --> 00:49:28,310 Znaczenie granica to chyba na obrzeżach kampusu gdzieś. 887 00:49:28,480 --> 00:49:32,790 Potem jest nox jeden, wiersz 4, który jest Northern Crossroads, 888 00:49:32,790 --> 00:49:35,070 co jest dużym ISP, świadczący usługi internetowe, 889 00:49:35,070 --> 00:49:37,740 że miejsca takie jak Harvard podłączyć do. 890 00:49:37,740 --> 00:49:40,760 Ale wtedy robi się trochę interesujący zgodne 6. 891 00:49:40,760 --> 00:49:45,960 Gdzie są moje bity nagle? Kansas. 892 00:49:45,960 --> 00:49:49,300 Świat ma zwyczaj używania kodów lotniskowych w wielu tych rzeczy, 893 00:49:49,300 --> 00:49:52,900 lub przynajmniej skrótów państw i miast, 894 00:49:52,900 --> 00:49:56,490 więc wygląda na to, w zaledwie 60 ms, 895 00:49:56,490 --> 00:49:59,420 pakiet informacji, 0 i 1 jest z mojego laptopa 896 00:49:59,420 --> 00:50:03,210 ale na drodze do Kansas, i jeszcze raz, w 60 ms. 897 00:50:03,210 --> 00:50:08,180 >> Ponadto, po Kansas, wzięli wycieczkę przez Houston, prawdopodobnie, 898 00:50:08,180 --> 00:50:10,140 jak sugeruje nazwa tego serwera. 899 00:50:10,140 --> 00:50:13,310 Tak, jak serwer w Internecie musi mieć adresu numerycznego, 900 00:50:13,310 --> 00:50:18,360 może również, ewentualnie, są nieco bardziej przyjazny dla człowieka, że ​​adres wpadł ludzie. 901 00:50:18,360 --> 00:50:20,510 Teraz, w kroku 8, nie wiemy, co to jest. 902 00:50:20,510 --> 00:50:22,550 Czasami routery po prostu rodzaj cię ignorują, 903 00:50:22,550 --> 00:50:25,010 i po prostu nie odpowiedzieć na pytania, tak, że jest w porządku. 904 00:50:25,010 --> 00:50:29,290 Jeden po kroku 8 jest najwyraźniej gdzie? L.A. 905 00:50:29,290 --> 00:50:35,290 Zauważ tylko 78 ms, co zajmuje nam ludzi jak 6 + godzin zrobić fizycznie, 906 00:50:35,290 --> 00:50:40,110 bierze pakiety informacji w Internecie 78 ms podróżować tak daleko. 907 00:50:40,110 --> 00:50:45,890 Krok 10 jest w LA, jak również, i krok 11 Wydaje się, że poszedł na północ, w górę w pobliżu Stanford. 908 00:50:45,890 --> 00:50:48,750 To jest ich granica routera lub router granicy. 909 00:50:48,750 --> 00:50:51,240 A kroki para w Stanford, że ignorują nas, 910 00:50:51,240 --> 00:50:55,610 i wreszcie docieramy do serwera WWW w zaledwie 87 ms. 911 00:50:55,610 --> 00:50:57,760 Teraz wszystkie te liczby, na marginesie, 912 00:50:57,760 --> 00:51:00,640 tylko powiedzieć, jak długo trzeba czekać na dane, aby uzyskać ode mnie 913 00:51:00,640 --> 00:51:03,530 do każdego z tych routerów, i to nie jest akumulacyjne. 914 00:51:03,530 --> 00:51:06,960 Co Ten program jest najpierw wysyła zasadniczo do pierwszego routera. 915 00:51:06,960 --> 00:51:09,490 Następnie jeden do drugiego routera, a następnie jednego do trzeciego routera 916 00:51:09,490 --> 00:51:12,610 pomiar każdorazowo. Tak w teorii, te czasy będą rosły 917 00:51:12,610 --> 00:51:14,860 lub przynajmniej bardzo blisko siebie, 918 00:51:14,860 --> 00:51:18,090 , a nawet te, które są tutaj na kampusie są super małe. 919 00:51:18,090 --> 00:51:20,820 Jak najszybciej zacząć chodzić w całym kraju, to ma danych 920 00:51:20,820 --> 00:51:24,830 trochę dłużej, aby podróżować, bliżej 100 ms, lub dać. 921 00:51:24,830 --> 00:51:28,330 Ale idziemy w innym kierunku teraz. Jak o Uniwersytecie Cambridge w Wielkiej Brytanii? 922 00:51:28,330 --> 00:51:32,540 Pozwól, że zamiast biegać traceroute z www.cam dla Cambridge, 923 00:51:32,540 --> 00:51:36,710 . Ac do akademika,. Uk, i nacisnąć enter tutaj. 924 00:51:36,710 --> 00:51:38,830 To było cholernie szybko. 925 00:51:38,830 --> 00:51:43,300 Moje dane dosłownie poszedł do Cambridge w Anglii, w tym ułamku sekundy czasu. 926 00:51:43,300 --> 00:51:45,340 >> Zobaczmy więc ścieżkę, która zajęło. 927 00:51:45,340 --> 00:51:47,520 Harvard, Harvard, Harvard, Crossroads Północne, 928 00:51:47,520 --> 00:51:52,690 które jest ISP, a następnie jest Northern Crossroads, i Bam. 929 00:51:52,690 --> 00:51:58,320 Co jest między etapami 6 i 7, router 6 i 7? 930 00:51:58,320 --> 00:52:02,040 Ocean Atlantycki. A my wywodząc to z faktu, że 931 00:52:02,040 --> 00:52:06,530 przechodzimy od 20 ms do 80 ms, o tutaj. 932 00:52:06,530 --> 00:52:10,050 Więc coś zabrał 60 ms, lub dać, aby dostać się. 933 00:52:10,050 --> 00:52:12,910 I to był chyba duży akwen. 934 00:52:12,910 --> 00:52:15,250 Co się dzieje potem? Cóż, jesteśmy w Londynie, 935 00:52:15,250 --> 00:52:18,860 tylko 88 ms później. More London, bardziej London, 936 00:52:18,860 --> 00:52:21,730 nie wiem gdzie to jest, ale zakładamy, że jest to poza Londynem, 937 00:52:21,730 --> 00:52:26,390 Cambridge tutaj, i wreszcie - dosłownie, University of Cambridge 938 00:52:26,390 --> 00:52:29,500 . Something.net, a następnie, w końcu, w linii 16, 939 00:52:29,500 --> 00:52:31,720 ich serwer jest najwyraźniej nazwie Scorpius 940 00:52:31,720 --> 00:52:35,500 pod maską, chociaż wiemy jak www. 941 00:52:35,500 --> 00:52:38,790 Kind of mind-blowing, myślę. Pierwszy raz, kiedy to zrobił, to całkowicie wiał mój umysł. 942 00:52:38,790 --> 00:52:41,670 Niestety, ten rodzaj Harvard blokuje ruchu, zazwyczaj w sieci. 943 00:52:41,670 --> 00:52:44,340 Więc nie można zrobić to bardzo łatwo. 944 00:52:44,340 --> 00:52:48,500 Sobie sprawę, że, możliwe jest to tutaj. 945 00:52:48,500 --> 00:52:53,630 Dobrze. Weźmy naszą 5-minutową przerwę tutaj. Wrócimy i zanurkować głębiej. 946 00:52:53,630 --> 00:53:00,850 Więc jesteśmy z powrotem, a my trochę ambled o w kilku różnych kierunkach tutaj. 947 00:53:00,850 --> 00:53:03,700 Warto więc podsumować dokładnie, co dzieje się tutaj. 948 00:53:03,700 --> 00:53:07,990 Zaczęliśmy rozmowę mówi o tym języku zwanym HTML. 949 00:53:07,990 --> 00:53:10,680 Ponownie, nie język programowania. To tylko język znaczników 950 00:53:10,680 --> 00:53:15,490 który jest w dużej mierze o estetyce i strukturyzacji treści, w formie strony internetowej. 951 00:53:15,490 --> 00:53:19,220 Ale HTML, zatem musi jakiś mechanizm 952 00:53:19,220 --> 00:53:22,870 do podróżowania pomiędzy przeglądarką a serwerem. 953 00:53:22,870 --> 00:53:28,360 HTML zatem rodzaj przejażdżki na górę innym języku, 954 00:53:28,360 --> 00:53:31,280 a właściwie, protokół HTTP znane. 955 00:53:31,280 --> 00:53:33,730 >> I HTTP, jak widzieliśmy go do tej pory, 956 00:53:33,730 --> 00:53:37,140 jest trochę analogiczna do tej ludzkiej konwencji ściskając ręce. 957 00:53:37,140 --> 00:53:39,940 Gdy przeglądarka chce żądanie strony z serwera, 958 00:53:39,940 --> 00:53:43,450 wysyła on, że "get" żądania z przeglądarki do serwera, 959 00:53:43,450 --> 00:53:48,040 a serwer odpowiada z numerem jak 200, wszystko jest w porządku, 960 00:53:48,040 --> 00:53:53,290 jak HTML lub jakiś zły numer, jak 404, nie znaleziono pliku. 961 00:53:53,290 --> 00:53:58,220 Ale tymczasem, HTTP Internet sam w sobie nie jest per se. 962 00:53:58,220 --> 00:54:01,550 HTTP jest tylko obsługa, cechą Internetu 963 00:54:01,550 --> 00:54:05,530 podobnie jak G czat to kolejny serwis, podobnie jak e-mail jest inna usługa. 964 00:54:05,530 --> 00:54:09,180 Jest różne rzeczy, które możemy zrobić w Internecie. 965 00:54:09,180 --> 00:54:12,670 HTTP jest to jedna z tych aplikacji. 966 00:54:12,670 --> 00:54:17,210 Więc na początek - HTTP jest na szczycie czegoś innego 967 00:54:17,210 --> 00:54:21,750 których nie wspomina po imieniu, może słyszeliście według nazwy, protokół TCP / IP. 968 00:54:21,750 --> 00:54:25,160 Zatem historia po prostu powiedziano mi, że wszystko jest ok. 969 00:54:25,160 --> 00:54:28,720 jak dane podróżuje z punktu A do punktu B. 970 00:54:28,720 --> 00:54:30,950 I w tym przypadku, widzieliśmy na bardzo niskim poziomie 971 00:54:30,950 --> 00:54:33,060 router routerach do routera, 972 00:54:33,060 --> 00:54:35,390 Jak dane rzeczywiście przesyłane. 973 00:54:35,390 --> 00:54:40,510 Ale po drodze, to będzie napotkać różne przeszkody. 974 00:54:40,510 --> 00:54:43,770 Oprócz tych routerów, są rzeczy, zwane firewalle w Internecie, 975 00:54:43,770 --> 00:54:46,680 Dane i tak, na przykład, że po prostu przekazuje 976 00:54:46,680 --> 00:54:49,720 ode mnie do Stanford, ode mnie do Cambridge, 977 00:54:49,720 --> 00:54:54,560 jest wysyłane do, na tym poziomie, coś o nazwie adresu IP. 978 00:54:54,560 --> 00:54:57,340 Przekonaliśmy się o tym przed chwilą, i adres IP 979 00:54:57,340 --> 00:55:02,480 tylko numeryczny adres w.x.y.z formularza 980 00:55:02,480 --> 00:55:08,070 gdzie każdy z nich jest między, lub dać, 0 i 255, 981 00:55:08,070 --> 00:55:10,080 choć nie można całkowicie wykorzystać wszystkie z tych liczb. 982 00:55:10,080 --> 00:55:14,220 Ale każda z tych posiadaczy miejsce jest liczbą od 0 do 255. 983 00:55:14,220 --> 00:55:16,820 Tak adres IP tych dni jest 32 bitów. 984 00:55:16,820 --> 00:55:20,780 >> Teraz, to daje nam, jak wiele można adresy IP na świecie? 985 00:55:20,780 --> 00:55:24,420 Około 4 mld euro, ponieważ za każdym razem liczymy w kompetencji 2 986 00:55:24,420 --> 00:55:27,760 wszystko aż do 32 z czymś, co zwykle daje nam 4 miliardów. 987 00:55:27,760 --> 00:55:30,160 Tak, że jest wiele adresów IP, ale można przeczytać, 988 00:55:30,160 --> 00:55:32,410 lub można teraz zauważyć w prasie popularnej, 989 00:55:32,410 --> 00:55:36,020 Push ku nowej wersji IP zwany IPv6. 990 00:55:36,020 --> 00:55:38,290 Teraz używamy wersji 4. 991 00:55:38,290 --> 00:55:41,060 Tam naprawdę nie było w wersji 5, po prostu prawo do 6 skoków. 992 00:55:41,060 --> 00:55:46,760 Wersja 6 będzie korzystać 128 bitów dla adresów IP, które jest freaking ogromny. 993 00:55:46,760 --> 00:55:49,430 Nie powinno zabraknąć od dłuższego czasu, 994 00:55:49,430 --> 00:55:52,980 ale zaczęliśmy zabraknie wersji 4 adresów IP, 995 00:55:52,980 --> 00:55:56,110 bo każdy z nas ma nie tylko takie rzeczy jak laptopów i komputerów stacjonarnych, 996 00:55:56,110 --> 00:55:58,700 Wielu z nas ma telefon, wiele z nas ma inne urządzenia 997 00:55:58,700 --> 00:56:01,600 jak TiVo i podobne które mają adresy IP się. 998 00:56:01,600 --> 00:56:03,720 Harvard sam ma dziesiątki tysięcy komputerów. 999 00:56:03,720 --> 00:56:07,970 Więc świat jest rzeczywiście zabraknie adresów IP, co najmniej z tej formy. 1000 00:56:07,970 --> 00:56:10,340 Tak więc w ciągu najbliższych kilku lat, będziesz widzieć adresy 1001 00:56:10,340 --> 00:56:12,870 na własnych komputerach prawdopodobnie powoli zmieniać 1002 00:56:12,870 --> 00:56:16,740 jak coraz więcej firm i uniwersytetów zacząć wspierać nowszej wersji. 1003 00:56:16,740 --> 00:56:22,770 Jednak adres IP nie jest wystarczająca do komputera na żądanie danych od B komputerowego. 1004 00:56:22,770 --> 00:56:24,950 Ponieważ komputer b może być serwer, 1005 00:56:24,950 --> 00:56:27,600 i serwer, jak już wspomniałem, może zrobić bukiety rzeczy. 1006 00:56:27,600 --> 00:56:29,940 Można go obsługiwać strony internetowe, może to być serwer pocztowy, 1007 00:56:29,940 --> 00:56:32,310 może być Skype serwera może być serwer Język G. 1008 00:56:32,310 --> 00:56:35,870 >> Wszystkie te różne usługi, które mogą być przewidziane na serwerze 1009 00:56:35,870 --> 00:56:38,330 mogą wszystkie, fizycznie, na tym samym urządzeniu. 1010 00:56:38,330 --> 00:56:40,380 Tak więc oprócz adresów IP, 1011 00:56:40,380 --> 00:56:43,250 Świat ma rzeczy zwane porty w Internecie. 1012 00:56:43,250 --> 00:56:47,830 Port jest tylko numer, więc nie jest to unikalny numer dla HTTP. 1013 00:56:47,830 --> 00:56:50,280 Jego numer to 80. 1014 00:56:50,280 --> 00:56:55,870 HTTP wykorzystuje również numer 443, ale bardziej szczegółowo, na HTTPS zaszyfrowanych. 1015 00:56:55,870 --> 00:57:00,030 Gdy zobaczysz s, do bezpiecznego, która jest przy użyciu innego numeru. 1016 00:57:00,030 --> 00:57:06,580 Istnieją inne numery, takie jak 25, używany do czegoś, co nazywa SMTP, inaczej znany jako e-mail. 1017 00:57:06,580 --> 00:57:09,620 Jest coś, co nazywa się 22 dla SSH, 1018 00:57:09,620 --> 00:57:11,850 i jest tam cała masa innych portów tam. 1019 00:57:11,850 --> 00:57:14,460 Teraz my, ludzie rzadko widują te numery. 1020 00:57:14,460 --> 00:57:21,970 Jednak po wpisaniu w adres jak http://www.facebook.com, 1021 00:57:21,970 --> 00:57:26,560 Przeglądarka jest potajemnie wkładając 80, bo jesteś za pomocą protokołu HTTP. 1022 00:57:26,560 --> 00:57:30,630 Jeśli zamiast tego typu HTTPS, to potajemnie wkładając 443. 1023 00:57:30,630 --> 00:57:35,180 I możemy trochę zobaczyć to ręcznie, jeśli podciągnąć się Brower 1024 00:57:35,180 --> 00:57:41,850 i przejdź do http://www.facebook.com:80. 1025 00:57:41,850 --> 00:57:44,550 Dlatego wyraźnie nie przytaczając tylko nazwę strony internetowej 1026 00:57:44,550 --> 00:57:47,650 ale port, że chcę rozmawiać, i nacisnąć enter. 1027 00:57:47,650 --> 00:57:50,170 Zauważ, że zniknie, ponieważ przeglądarka zakłada 1028 00:57:50,170 --> 00:57:53,360 oh, 80, nie jestem nawet będzie przeszkadzało pokazując, że do Ciebie. 1029 00:57:53,360 --> 00:57:56,400 Ale powodem jest to, że gdybym naprawdę chciał wysłać komuś e-mail, 1030 00:57:56,400 --> 00:58:02,340 Chciałbym naprawdę być wysłanie go do nich na porcie 25, że będąc SMTP. 1031 00:58:02,340 --> 00:58:04,890 Trochę w uproszczeniu, ale niektórzy z was mają przyjaciół 1032 00:58:04,890 --> 00:58:09,290 którzy faktycznie pracują na Facebooku, i oni, podobnie się serwery, które otrzymują e-mail. 1033 00:58:09,290 --> 00:58:12,610 >> Za każdym razem, wysłać e-mail, co gmail robi dla Ciebie 1034 00:58:12,610 --> 00:58:14,960 lub Outlook lub cokolwiek programu używasz, 1035 00:58:14,960 --> 00:58:19,270 To coś w rodzaju potajemnie wstawienie tego numeru, jak również, 25, w tym przypadku. 1036 00:58:19,270 --> 00:58:24,490 Jest to kombinacja adresu IP i numer, który jednoznacznie identyfikuje 1037 00:58:24,490 --> 00:58:29,190 komputer w Internecie i danej usługi na tym komputerze. 1038 00:58:29,190 --> 00:58:33,460 Teraz, oczywiście, większość z nas prawdopodobnie nigdy nie wpisany ręcznie adres IP. 1039 00:58:33,460 --> 00:58:37,340 Może masz w urządzeniu, ale w realnym świecie, nie tak dużo. 1040 00:58:37,340 --> 00:58:42,750 Dlaczego nie wpisać adresy IP w przeglądarkach? 1041 00:58:42,750 --> 00:58:45,860 Że to działa w rzeczywistości, możemy zobaczyć to, pozwól mi pokazać 1042 00:58:45,860 --> 00:58:50,000 jedno inne polecenia, które powinny pracować niemal wszędzie na terenie kampusu Uniwersytetu Harvarda na komputerze Mac lub PC. 1043 00:58:50,000 --> 00:58:53,970 Jest to polecenie nazywa nslookup, name lookup serwer. 1044 00:58:53,970 --> 00:58:59,960 Jeśli spojrzeć www.cnn.com, okazuje się, że ma CNN - oh, ciekawe. 1045 00:58:59,960 --> 00:59:03,180 CNN zaczęła używać Amazon Web Services. 1046 00:59:03,180 --> 00:59:06,380 Może wiesz z cloud computing, jednego Amazona z wielkich graczy na cloud computing. 1047 00:59:06,380 --> 00:59:10,240 Co właśnie nie było, powiedział: "Daj mi adres serwera WWW CNN" 1048 00:59:10,240 --> 00:59:14,090 ale okazuje się, że serwer WWW CNN jest zarządzane przez Amazon, 1049 00:59:14,090 --> 00:59:16,030 Amazon Web Services, to sugeruje. 1050 00:59:16,030 --> 00:59:19,680 I adres tego serwera jest to tutaj. 1051 00:59:19,680 --> 00:59:22,350 Więc nie jestem pewien, czy to będzie działać, bo nie używałem Amazon. 1052 00:59:22,350 --> 00:59:32,830 Ale spróbujmy; http://, adres IP, wprowadź i - 1053 00:59:32,830 --> 00:59:35,690 to będzie działać? 1054 00:59:35,690 --> 00:59:39,280 Tak. To będzie działać. Internet jest super-slow dzisiaj. 1055 00:59:39,280 --> 00:59:43,680 Ale w chwili, widać jakąś historię wiadomości. 1056 00:59:43,680 --> 00:59:48,360 Proszę bardzo. Bank of America jest pozwany. Dobrze. 1057 00:59:48,360 --> 00:59:54,000 >> To dlatego, że ten adres IP okazuje się przez synonimem www.cnn.com. 1058 00:59:54,000 --> 00:59:59,920 Oczywiście, to byłoby straszne marketing powiedzieć, odwiedź nas w internecie na 50.112.94.127. 1059 00:59:59,920 --> 01:00:02,370 Że nigdy nie pamiętam. Więc nawet te dni można przypomnieć rzeczy 1060 01:00:02,370 --> 01:00:07,210 jak 1-800-COLLECT lub mnemotechniki świat przyszedł z numerów telefonów. 1061 01:00:07,210 --> 01:00:09,540 Które przed telefonów komórkowych, były raczej trudne do zapamiętania 1062 01:00:09,540 --> 01:00:11,800 aż można po prostu wpisać go i zapomnieć o nim. 1063 01:00:11,800 --> 01:00:15,730 Tak więc w sieci, też ma tę konwencję nazw i adresów IP, 1064 01:00:15,730 --> 01:00:17,770 i tam są te rzeczy tam nazywa serwery DNS, 1065 01:00:17,770 --> 01:00:23,870 systemy domen serwery nazw, które przekładają adresów IP na nazwy i odwrotnie. 1066 01:00:23,870 --> 01:00:26,340 Więc to, co dzieje się pod maską. 1067 01:00:26,340 --> 01:00:29,540 W końcu mamy protokół TCP / IP, co jest to bardzo niski poziom protokołu 1068 01:00:29,540 --> 01:00:32,570 które, tak naprawdę, tylko dostaje 0 i 1 'przez Internet, 1069 01:00:32,570 --> 01:00:36,030 i czyni to poprzez wprowadzanie ich do wirtualnej kopercie 1070 01:00:36,030 --> 01:00:38,820 Jeśli będzie, i zapisu na zewnątrz obwiedni 1071 01:00:38,820 --> 01:00:43,930 IP adres przeznaczenia, jak również numer portu numeryczny 1072 01:00:43,930 --> 01:00:47,520 Świadczenie usługi na tym miejscu, że chce porozmawiać. 1073 01:00:47,520 --> 01:00:51,060 Tymczasem, na kopercie jest tam również coś znane jako adresu zwrotnego, 1074 01:00:51,060 --> 01:00:55,600 jaki jest Twój adres IP, tak, że gdy CNN dostaje pakiet informacji od Ciebie, 1075 01:00:55,600 --> 01:00:58,710 otwiera wirtualną kopertę, widzi, że chcesz, stronę domową, 1076 01:00:58,710 --> 01:01:04,630 wie ze strony nadawcy tego wirtualnego kopercie, do kogo wysłać z powrotem do HTML. 1077 01:01:04,630 --> 01:01:07,470 Warto więc spojrzeć na to w nieco bardziej szczegółowo. 1078 01:01:07,470 --> 01:01:11,370 To jest z firmy o nazwie Ericson, od kilku lat do tyłu. 1079 01:01:11,370 --> 01:01:14,780 Wzięli kilka wolności z jak Internet faktycznie działa, 1080 01:01:14,780 --> 01:01:18,920 ale maluje dużo bardziej wizualny obraz niż zwykły kredą tutaj. 1081 01:01:18,920 --> 01:01:26,690 Więc mam ci dać "nieco z Internetu." 1082 01:02:26,660 --> 01:02:29,840 >> [Narrator] Po raz pierwszy w historii, 1083 01:02:29,840 --> 01:02:35,260 ludzie i maszyny pracują razem, realizując marzenia. 1084 01:02:35,260 --> 01:02:38,910 Jednocząc siły, która nie zna granic geograficznych. 1085 01:02:38,910 --> 01:02:43,230 Bez względu na rasę, wyznanie lub kolor. 1086 01:02:43,230 --> 01:02:47,770 Nowa era, w którym komunikacja naprawdę łączy ludzi. 1087 01:02:47,770 --> 01:02:50,070 To 1088 01:02:50,070 --> 01:02:54,980 Dawn of the Net. 1089 01:02:54,980 --> 01:03:04,640 Chcesz wiedzieć, jak to działa? Kliknij tutaj, aby rozpocząć podróż do siatki. 1090 01:03:04,640 --> 01:03:07,890 Teraz, dokładnie to, co się stało po kliknięciu na ten link? 1091 01:03:07,890 --> 01:03:10,150 Początek przepływ informacji. 1092 01:03:10,150 --> 01:03:13,310 Informacja ta przemieszcza się w dół do własnego działu korespondencji osobistej 1093 01:03:13,310 --> 01:03:18,500 gdzie pakiety IP to Pan, Etykiety, i wysyła go na swej drodze. 1094 01:03:18,500 --> 01:03:20,960 Każdy pakiet jest ograniczony w swojej wielkości. 1095 01:03:20,960 --> 01:03:23,880 Pocztową musi zdecydować jak podzielić informacji 1096 01:03:23,880 --> 01:03:26,070 i jak się spakować. 1097 01:03:26,070 --> 01:03:29,550 Teraz pakiet potrzebuje etykietę zawierającą ważne informacje 1098 01:03:29,550 --> 01:03:35,570 jak adres nadawcy, adres odbiorcy, i typu pakietu jest. 1099 01:03:51,700 --> 01:03:54,980 Ponieważ ten konkretny pakiet wychodzi na Internet, 1100 01:03:54,980 --> 01:03:57,720 to otrzyma również adres serwera proxy, 1101 01:03:57,720 --> 01:04:01,520 która posiada specjalną funkcję, jak zobaczymy później. 1102 01:04:01,520 --> 01:04:06,650 Pakiet jest już wprowadzony na sieci lokalnej lub sieci LAN. 1103 01:04:06,650 --> 01:04:10,160 Sieć ta służy do połączenia wszystkich komputerów lokalnych " 1104 01:04:10,160 --> 01:04:15,900 routery, drukarki, etc, dla wymiany informacji w ramach fizycznych ścianach budynku. 1105 01:04:15,900 --> 01:04:20,290 LAN jest dość niekontrolowany miejsce, i, niestety, 1106 01:04:20,290 --> 01:04:23,950 wypadki mogą się zdarzyć. 1107 01:04:31,190 --> 01:04:34,710 Szosa LAN jest pełna wszelkiego rodzaju informacji. 1108 01:04:34,710 --> 01:04:38,900 Są to pakiety IP, Novell pakunki, AppleTalk pakiety. 1109 01:04:38,900 --> 01:04:41,270 Idą na ruchu, jak zwykle. 1110 01:04:41,270 --> 01:04:44,260 Lokalny router odczytuje adres i, jeśli to konieczne, 1111 01:04:44,260 --> 01:04:48,520 podnosi paczkę do innej sieci. 1112 01:04:48,520 --> 01:04:54,270 Ah, router. Symbol kontroli w świecie pozornie niezorganizowany. 1113 01:04:54,270 --> 01:05:05,480 [Router mamrocząc i mówić do siebie] 1114 01:05:05,480 --> 01:05:10,030 >> [Narrator] Tam jest, systematyczny, niedbały, metodyczne, 1115 01:05:10,030 --> 01:05:14,150 konserwatywny, a czasami nie do końca do prędkości. 1116 01:05:14,150 --> 01:05:17,680 Ale przynajmniej jest dokładnie, w przeważającej części. 1117 01:05:32,270 --> 01:05:36,820 Jak pakiety opuszczają router, one drogę do korporacyjnej sieci 1118 01:05:36,820 --> 01:05:40,830 i głowy dla przełącznika routera. 1119 01:05:40,830 --> 01:05:46,250 Nieco bardziej wydajne niż router, przełącznik Router odgrywa szybkie i luźne z pakietów IP, 1120 01:05:46,250 --> 01:05:48,920 zręcznie je wzdłuż trasy ich drodze. 1121 01:05:48,920 --> 01:05:52,130 "Pinball Wizard", w formacie cyfrowym, jeśli będzie. 1122 01:05:52,130 --> 01:06:04,270 [Switch Router mówić do siebie] 1123 01:06:09,830 --> 01:06:12,150 [Narrator] Jak pakiety docierają do miejsca przeznaczenia, 1124 01:06:12,150 --> 01:06:14,740 są one odbierane przez interfejs sieciowy, 1125 01:06:14,740 --> 01:06:18,040 gotowy do wysłania do następnego poziomu. 1126 01:06:18,040 --> 01:06:21,010 W tym przypadku proxy. 1127 01:06:21,010 --> 01:06:25,040 Proxy jest używany przez wiele firm jako swego rodzaju pośrednikami 1128 01:06:25,040 --> 01:06:27,630 w celu zmniejszenia obciążenia do internetu 1129 01:06:27,630 --> 01:06:32,240 oraz ze względów bezpieczeństwa, jak również. 1130 01:06:32,240 --> 01:06:38,750 Jak widać, pakiety są o różnych rozmiarach w zależności od ich treści. 1131 01:06:55,210 --> 01:07:01,890 Proxy otwiera paczkę i wygląda na adres strony internetowej lub adres URL. 1132 01:07:01,890 --> 01:07:04,950 W zależności od tego, czy adres jest dopuszczalne, 1133 01:07:04,950 --> 01:07:08,000 pakiet jest wysyłany do Internetu. 1134 01:07:13,890 --> 01:07:19,630 Istnieją jednak pewne adresy, które nie odpowiadają za zgodą pełnomocnika. 1135 01:07:19,630 --> 01:07:25,680 To znaczy, korporacyjnych lub zarządzania wytyczne. 1136 01:07:25,680 --> 01:07:30,580 Są doraźnym rozpatrywane. 1137 01:07:30,580 --> 01:07:32,410 Będziemy mieć nic z tego. 1138 01:07:32,410 --> 01:07:36,350 Dla tych, którzy czynią to, to na drodze ponownie. 1139 01:07:46,850 --> 01:07:53,310 >> Następna w kolejce, firewall. 1140 01:07:53,310 --> 01:07:57,410 Corporate firewall służy dwóm celom. 1141 01:07:57,410 --> 01:08:02,420 Zapobiega kilka raczej nieprzyjemnych rzeczy z internetu od najbliższych do intranetu, 1142 01:08:02,420 --> 01:08:10,280 i może również zapobiec poufnych informacji firmowych z wysyłaniu na Internet. 1143 01:08:10,280 --> 01:08:12,980 Raz przez firewall, router odbiera pakiet 1144 01:08:12,980 --> 01:08:18,180 i umieszcza go na znacznie węższym drogi, lub pasma, jak mówimy. 1145 01:08:18,180 --> 01:08:23,720 Oczywiście, droga nie jest wystarczająco szeroka, aby wziąć je wszystkie. 1146 01:08:23,720 --> 01:08:29,319 Teraz można się zastanawiać, co się dzieje z tymi wszystkimi pakietami, które nie czynią go po drodze. 1147 01:08:29,319 --> 01:08:32,270 Cóż, kiedy IP Pan nie otrzyma potwierdzenia 1148 01:08:32,270 --> 01:08:35,000 że pakiet został odebrany w terminie, 1149 01:08:35,000 --> 01:08:39,890 on po prostu wysyła pakiet zastępczy. 1150 01:08:39,890 --> 01:08:44,760 Jesteśmy teraz gotowi do wejścia w świat Internetu. 1151 01:08:44,760 --> 01:08:49,370 Pajęczyna połączonych sieci, które obejmują cały nasz glob. 1152 01:08:49,370 --> 01:08:56,050 Tutaj, routery i przełączniki ustalenia powiązań między sieciami. 1153 01:08:56,050 --> 01:08:59,200 Teraz Net jest zupełnie inne środowisko niż znajdziesz 1154 01:08:59,200 --> 01:09:01,569 w obrębie murów ochronnych sieci LAN. 1155 01:09:01,569 --> 01:09:04,060 Tu, to jest Dziki Zachód. 1156 01:09:04,060 --> 01:09:06,359 Dużo miejsca, wiele możliwości, 1157 01:09:06,359 --> 01:09:09,760 mnóstwo rzeczy do zwiedzania i miejsc do odwiedzenia. 1158 01:09:09,760 --> 01:09:12,760 Dzięki bardzo małej kontroli i regulacji, 1159 01:09:12,760 --> 01:09:18,300 nowe pomysły znaleźć podatny grunt naciskać na kopercie z ich możliwości. 1160 01:09:18,300 --> 01:09:22,330 Ale z powodu tej wolności pewne niebezpieczeństwa czają również. 1161 01:09:22,330 --> 01:09:27,000 Nigdy nie będziesz wiedzieć, kiedy spotkasz bał Ping of Death, 1162 01:09:27,000 --> 01:09:29,890 Specjalna wersja normalnego ping request 1163 01:09:29,890 --> 01:09:35,720 co jakiś idiota wymyślił bałagan niczego gospodarzy. 1164 01:09:35,720 --> 01:09:39,130 Ścieżka nasze pakiety wziąć może za pośrednictwem satelity, 1165 01:09:39,130 --> 01:09:43,090 linie telefoniczne, bezprzewodowe lub nawet transoceaniczna kablowych. 1166 01:09:43,090 --> 01:09:46,520 Oni nie zawsze najszybsze lub najkrótszej trasy możliwe, 1167 01:09:46,520 --> 01:09:50,290 ale będą się tam w końcu. 1168 01:09:50,290 --> 01:09:55,230 Może dlatego, że to jest czasami nazywane "World Wide Wait". 1169 01:09:55,230 --> 01:09:57,980 Ale kiedy wszystko działa sprawnie, 1170 01:09:57,980 --> 01:10:03,800 można obejść cały świat ponad pięć razy na każde skinienie, dosłownie. 1171 01:10:03,800 --> 01:10:08,230 I wszystkie z kosztów lokalnej lub mniej. 1172 01:10:08,230 --> 01:10:15,070 Pod koniec naszej podróży, znajdziemy inny firewall. 1173 01:10:15,070 --> 01:10:18,420 >> W zależności od punktu widzenia w pakiecie danych, 1174 01:10:18,420 --> 01:10:23,730 Firewall może być bastionem bezpieczeństwa lub przeciwnik bał. 1175 01:10:23,730 --> 01:10:28,530 Wszystko zależy od tego, na której stronie jesteś i jakie są twoje zamiary. 1176 01:10:28,530 --> 01:10:34,990 Zapora została zaprojektowana, aby wpuścić tylko tych pakietów, które spełniają jego kryteria. 1177 01:10:34,990 --> 01:10:39,360 Ten firewall działa na portach 80 i 25. 1178 01:10:39,360 --> 01:10:46,630 Wszystkie próby wejść przez inne porty są zamknięte dla biznesu. 1179 01:10:57,660 --> 01:11:03,480 Port 25 jest używany dla pakietów pocztowych 1180 01:11:03,480 --> 01:11:10,720 podczas gdy port 80 jest wejście dla pakietów z Internetu do serwera WWW. 1181 01:11:10,720 --> 01:11:15,080 Wewnątrz zapory pakiety są sprawdzane dokładniej. 1182 01:11:15,080 --> 01:11:17,970 Niektóre pakiety zrobić to łatwo przez odprawę celną, 1183 01:11:17,970 --> 01:11:21,420 podczas gdy inni po prostu wyglądać nieco wątpliwa. 1184 01:11:21,420 --> 01:11:24,060 Teraz oficer zapora nie jest łatwo oszukać, 1185 01:11:24,060 --> 01:11:32,120 np. gdy ten ping z pakietu śmierci próbuje zamaskować się jako normalnego pakietu ping. 1186 01:11:32,120 --> 01:11:37,520 [Oficer Firewall rozmawia pakietów] 1187 01:11:37,520 --> 01:11:40,510 [Narrator] Dla tych pakietów szczęście wystarczy, aby tak daleko, 1188 01:11:40,510 --> 01:11:45,730 podróż dobiega końca. 1189 01:11:45,730 --> 01:11:52,130 To tylko line up na interfejsie być wzięty do serwera WWW. 1190 01:11:52,130 --> 01:11:55,440 Obecnie, serwer może działać na wielu rzeczach, 1191 01:11:55,440 --> 01:11:59,230 z systemów mainframe do kamery internetowej do komputera na biurku. 1192 01:11:59,230 --> 01:12:01,720 Dlaczego nie twoja lodówka? 1193 01:12:01,720 --> 01:12:04,870 Przy właściwej instalacji, można dowiedzieć się, czy masz zadatki 1194 01:12:04,870 --> 01:12:08,390 dla Chicken Cacciatore, lub jeśli masz iść na zakupy. 1195 01:12:08,390 --> 01:12:11,760 Pamiętaj, że to świt Sieci. 1196 01:12:11,760 --> 01:12:17,310 Prawie wszystko jest możliwe. 1197 01:12:17,310 --> 01:12:20,440 Jeden po drugim, pakiety są odbierane, 1198 01:12:20,440 --> 01:12:26,320 otwarte i rozpakowane. 1199 01:12:26,320 --> 01:12:31,200 Zawarte w nich informacje, to jest prośba o udzielenie informacji, 1200 01:12:31,200 --> 01:12:34,830 jest wysyłana do aplikacji serwera WWW. 1201 01:12:41,540 --> 01:12:47,140 Pakiet sam w sobie jest ekologiczny, 1202 01:12:47,140 --> 01:12:57,570 gotowa do użytku kolejny, i wypełnione z żądanych informacji, 1203 01:12:57,570 --> 01:13:03,340 adresowane, i wysłał na jego drodze do ciebie. 1204 01:13:03,340 --> 01:13:13,250 Powrót przeszłości firewall, routery, a na drodze do Internetu. 1205 01:13:13,250 --> 01:13:21,020 Powrót za pośrednictwem korporacyjnej zapory 1206 01:13:21,020 --> 01:13:24,180 i na interfejsie, 1207 01:13:24,180 --> 01:13:31,180 gotowi dostarczyć swoją przeglądarkę internetową z informacjami, którego szukasz. 1208 01:13:31,180 --> 01:13:39,840 Oznacza to, że ten film. 1209 01:13:39,840 --> 01:13:43,550 Zadowolony z ich wysiłków, i zaufania do lepszego świata, 1210 01:13:43,550 --> 01:13:50,250 nasze pakiety danych zaufanych odjechać błogo do zachodu słońca z innego dnia, 1211 01:13:50,250 --> 01:13:56,880 znając pełni służyli swoim panom dobrze. 1212 01:13:56,880 --> 01:14:02,560 Teraz nie jest to szczęśliwe zakończenie jest? 1213 01:14:02,560 --> 01:14:07,040 [Malan] Dobra, wystarczy. Do zobaczenia w przyszłym tygodniu. 1214 01:14:07,040 --> 01:14:10,040 [CS50.TV]