[Powered by Google Translate] [Тыдзень 7, працяг] [David J. малая, Гарвардскі універсітэт] [Гэта CS50.] [CS50.TV] Добра. Welcome Back. Гэта CS50, і гэта ў канцы тыдня 7. Таму адной з гэтых дурных дробязях, якая ідзе па ўсім Інтэрнэту і мы сёрбаць, і цяпер яно павінна зрабіць трохі выклікаюць сэнс для вас. Ну, гэта было смяшней гэтага хлопца, чым гэта было да вас, хлопцы. Гаворачы аб, добра, хлопцы, Сёння дзень нараджэння Нейт. Каб даць вам адчуванне таго, наколькі добра Nate і я на вэб-распрацоўка на аснове класа панядзелак і заснаваныя цяпер на гэтым, Я думаў, што падцягнуць галоўную старонку Нейт, калі вы яго яшчэ не бачыла. Гэта тут І.А. Нейт HTML. Так што ўбачыць яго зыходны код, калі вы хочаце паглядзець, як гэта зрабіць, і Нейт, калі б мы маглі няёмкае становішча вы проста коратка, супрацоўнікі цябе сёе-тое Калі вы хацелі б падзяліцца некаторымі дэсерт з некаторымі з дзяцей у класе тут. Калі вы хацелі б прыехаць ўніз. Вы ўсё апладыруюць і вельмі добрыя, але ніхто не сядзіць дзе-небудзь каля Nate, па некаторых прычынах, у тым заднюю зону. Таму, магчыма, вы можаце знайсці некаторыя людзі, каб атрымліваць асалоду ад гэтага с. З Днём Нараджэння, Нейт. Дадатковая прывітанняў: Мы паказалі пару кліпаў з нашых CS50x студэнтаў. Калі вы хацелі б паглядзець, хто яшчэ гэта ў свеце якая наступных разам, вы можаце адправіцца на гэты адрас, дзе Джозэф, адзін з нашых ТФ, сабраў мантаж роду ўсіх, хто быў перадаць гэтыя відэа, у тым ліку Рык Эстлі. І калі вы пракруціць праз іх, гэта сапраўды вельмі натхняльная , Каб убачыць разнастайнасць краін і гарадоў, з якіх людзі родам. Так што, калі вы хочаце, каб зірнуць на тое, што будзе да да канца семестра. Сёння мы працягваем наш погляд на Web, вэб-праграмаванне, HTML і да т.п., і мы таксама паабедаць прыдумаць у гэтую пятніцу Калі вы хочаце, і, у прыватнасці, яшчэ не зрабілі гэтага раней. Гэтая тэма пятніцу будзе дзень нараджэння Нейт, так што калі вы хацелі б мець дзень нараджэння абед з Nate і іншыя, некаторыя з нашых сяброў з прамысловасці, Калі ласка галаву, што URL там. Касмічная, як заўсёды, абмежавана. Акрамя таго, калі вы забыліся, разумею, што на наступным тыдні заканчваецца тэрмін праблемай усталяваны 4 у паляванне зборшчыка смецця, якім пасля аднаўлення усе гэтыя файлы JPEG з card.raw, Вы і вашыя таварышы профіль, калі вы хочаце, можаце паспрабаваць фатаграфавання так як многія з навукоўцаў-кампутарнікаў з гэтай карты памяці наколькі гэта магчыма, і вы і ваш падзел будзе выйграць казачны прыз. Калі ласка, вярніцеся да PSET 4 у спецыфікацыі адносна таго, што ўяўляе і калі. Акрамя таго, калі вы хочаце, каб ваша рук увекавечыў на вэб-сайце курсу і яго гісторыі адзення, ведаю, што вы рады цяпер, каб пачаць прадстаўляць канструкцый на гэты год футболкі і талстоўцы і таму падобнае. Мы зробім усё магчымае, каб уключыць столькі, колькі мы можам, але мы будзем мець некаторыя супрацоўнікі агляд ўсіх канструкцый каб пераканацца, што яны адпавядаюць спецыфікацыям, і мы тады наогул забраць некалькі з іх будуць выстаўлены. Так што калі вы тып канструкцыі, проста ведаю, што патрабаванні для графікі PNG, па меншай меры, 200 DPI, яны не павінны быць больш, чым 4000 x 4000 пікселяў, і не больш за 10 Мб, але вы можаце выкарыстоўваць рэчы, як Photoshop або GIMP або розныя праграмы графічнага аб'екта, ўсё, што ў вас ёсць у вашым распараджэнні. Акрамя таго, на гарызонце канчатковы праект. Канчатковы праект сапраўды з'яўляецца кульмінацыяй 50, якому ўсіх заданняў у курсе, гэта ваша магчымасць рэальна зрабіць сваю ўласную рэч. І гэта можа быць проста зрабіць нешта для задавальнення, гэта можа быць, каб вырашыць некаторыя актуальныя праблемы вашай студэнцкай групы мае, для некаторых новых вэб-сайце, новых механізму збору дадзеных. Гэта можа быць мабільнае прыкладанне для Android, на IOS. Сапраўды, неба гэта мяжа, і на працягу наступных некалькіх тыдняў, як пераход ад C гэтыя мовы высокага ўзроўню, як PHP і JavaScript, Вы апынецеся больш азнаёміўся з некаторымі рэальнымі метадамі, некаторыя рэальныя інструменты, і ў дадатак, што, Вядома, што, вядома, мае гісторыю семінараў, якіх на працягу наступных некалькіх тыдняў, некаторыя з выкладчыкаў і нашы сябры з кампуса будзе прапаноўваць дадатковы семінары якія ідуць вышэй і па-за таго, што звычайна робіцца ў раздзеле прадставіць вам рэчы, як праграмаванне Android, прадставіць вам рэчы, як праграмаванне IOS або больш прасунутых вэб-распрацоўка метадаў. Там цэлая гісторыя гэтых ужо ў Інтэрнэце. Калі вы ідзяце ў cs50.net/seminars, мы рабілі гэта на працягу досыць доўгага гадоў, і вы ўбачыце, што архівах тут з PDF-файламі і відэа і да т.п. некалькі відэа дзясятка семінараў. У мінулым годзе, напрыклад, у нас быў семінар па acing вашых тэхнічных інтэрв'ю, калі вы на самой справе хочаце сысці і прайсці стажыроўку або поўны працоўны дзень канцэрта. Windows Mobile развіццё, развіццё Android, Google Maps, API, CSS, распрацоўка для BlackBerry, Emacs. Сапраўды, дабро запрашаем, каб зірнуць на любы з гэтых семінараў па вашаму меркаванні. І мы будзем правядзення некаторых новых гэтым семестры, а таксама. Так што наперадзе з канчатковым праектам? Ну, па-першае, нават калі гэтая дата некалькі непазбежнай, гэта сапраўды проста магчымасць пачаць думаць пра канчатковы праект цалкам рэальна. Мы ведаем толькі пачатак частка таго, што мы яшчэ будзем пакрыццё ў курсе, HTML, PHP і да т.п., але вы ўсё знаёмыя з вэб- і я прадузятасць гэты размову ў бок толькі таму, што вэб- большасць людзей у канчатковым выніку робіць вэб-канчатковых праектаў, Але гэта зусім не неабходнае. Выкарыстанне C ў парадку, Objective C, Java, любы іншы мову, які вы, магчыма, ведаеце ці хочаце ведаць досыць добра. Але каб атрымаць сокаў на пачатковым этапе, мы чакаем прадстаўлення preproposal якая, у PDF на вэб-сайце, які зараз знаходзіцца на cs50.net, і ў левым верхнім куце вы ўбачыце канчатковы праект гэта спецыфікацыя для канчатковага праекта, і ёсць падрабязная інфармацыя пра preproposal і таму падобнае. Гэта ў значнай ступені зводзіцца да электроннай пошце ў вучэнне чалавек проста завязаць размову з ім аб тым, што вы думаеце. На projects.cs50.net з'яўляецца сховішчам ідэй ад людзей на тэрыторыі кампуса калі вы змагаецеся, каб прыдумаць нейкую ідэю, і manual.cs50.net/APIs з'яўляецца сховішчам спасылкі на API. Што, аднак, з'яўляецца API? Што такое API? Я сказаў, што па крайняй меры ў два разы, у адпаведнасці з стэнаграм за апошнія некалькі тыдняў. Што гэта? [Студэнт, неразборліва] >> Добра, добра. Так что-то інтэрфейсу праграмавання. Інтэрфейс прыкладнога праграмавання, і гэта можа прымаць розныя формы, але тое, што гэта сапраўды зводзіцца да таго, код што хтосьці УГ пісьмовай ці дадзеных, што нехта сабраў , Якія даступныя для вас у некаторым праграмным шляхам. Вы можаце пісаць код на C, PHP, Python, Ruby, незалежна ад абранага мовы звычайна з'яўляецца, і можна неяк абапірацца на чужую функцыянальнасці або чужы набор дадзеных. Напрыклад, калі я іду па гэтай спасылцы тут, і вы ўбачыце пару спасылак на наступнай старонцы якіх у нас ёсць уласны API, CS50, які вельмі Гарвард-арыентаванай, а затым іншых API. Сярод іншых API, сапраўды карысныя рэчы як магчымасць адпраўкі SMS на людзей, магчымасць атрымліваць СМС паведамленні ад людзей. І такія рэчы, якія вы можаце паняцця не маю, як рэалізаваць сябе, але дзякуючы паслугах, некаторыя бясплатна, а некаторыя камерцыйныя, Вы можаце пабудаваць на вяршыні тыя, і зрабіць што-то для вас цікавасць. Сярод інтэрфейсаў API CS50 з'яўляюцца гэтыя кампуса арыентаваныя рэчы, як Гарвардскі курсы, энергіі, падзеі, ежа, карты, навіны, нататкі ў сацыяльных сетках і Shuttleboy ўласную, і гэтыя API-інтэрфейсы, якія выглядаюць трохі нешта накшталт гэтага. Дазвольце мне падцягнуць API HarvardFood. Калі вы калі-небудзь былі на сайце HUD, вы, верагодна, быў там проста паглядзець, што на вячэру або каб убачыць, што гадзіны для некаторых D-зала. Ну, гэта не асабліва лёгка арыентавацца, і так, што мы сапраўды некаторы час таму былі мы пісалі праграмнае забеспячэнне, яно адбудзецца, будзе ў PHP, што на самой справе экране драпіны сукупнасці сайт HUD,. На экран соскоб значыць нешта напісаць праграму на мове PHP, як , Якая прэтэндуе на браўзэры, нават калі вы можаце запусціць яго ў камандным радку, , Якая прэтэндуе на браўзэр, падключаецца да вэб-сайт, загружае яе HTML, мовы, на якой яна напісана, , А затым чытае яго, ці, больш канкрэтна, разбірае яго зверху ўніз, злева направа. І тое, што мы зрабілі, мы напісалі код такім чынам, што любы час, мы ўбачылі нешта ў гэтым HTML, які выглядаў, як нешта ў меню, як гамбургер, мы хацелі б імпартаваць, што ў нашы ўласныя базы дадзеных. І ў любы час мы бачылі пажыўнай каштоўнасці, мы хацелі б імпартаваць у свае базы дадзеных. І тое, што мы рабілі, было выкарыстоўваць той факт, што HUD аўтара, хоць гэта можа быць трохі складанай задачай для нас, людзей, для навігацыі пад капотам, усё HTML спараджаецца сваімі кампутарнымі праграмамі. Так што ўсе свае HTML, хоць гэта можа выглядаць брудным, Як і большасць вэб-сайтаў пад капотам варта шаблоне. Такім чынам, мы толькі што правялі пару гадзін высветліць, што мадэль так што, у рэшце рэшт, мы выкідваем ўсе брудныя HTML, Усе эстэтыка смелыя абліцоўвання і курсіў і да т.п., і што мы тады ў стане зрабіць, гэта выставіць тыя ж самыя дадзеныя. Напрыклад, на гэтым шляху. Такім чынам, мы, у адпаведнасці з дакументацыяй тут, паведамілі свету, што, калі вы запытаеце URL , Што выглядае так, food.cs50.net / нешта, і вы даць пэўныя параметры, якія мы будзем казаць пра сённяшні дзень, як дату заканчэння часу, даты пачатку часу, ежы і гэтак далей, што нашы серверы вернецца да вас, да прыкладу, ў файл CSV, коска separted каштоўнасці, як файл Excel, які змяшчае ўсе для сняданку на гэтую канкрэтную дату ў сакавіку мінулага года калі мне давялося напісаць гэтую дакументацыю. Для тых, хто знаёмы, CSV гэта не адзіны фармат файла. Там у іншы фармат, які ўсё больш універсальнымі называецца JSON, JavaScript Object Notation. Дадзеныя могуць вярнуцца ў гэтым фармаце. Такім чынам, вынас тут, ці што вы акунуцца ў API або любы іншы CS50 або што-небудзь там, у Інтэрнэце, ці не на ўсіх, разумееш, што свет усё больш пачалі стандартызацыі як машыны паведамляюцца. Мы выкарыстоўваем стандартныя фарматы дадзеных, такія як CSV або JSON. А што гэта азначае для вас, што вы можаце напісаць цікавую частка праграмы , Якая дазваляе карыстальніку шукаць сталовай меню , Што дазваляе ім ствараць спісы абраных, што дазваляе ім атрымліваць тэкставыя абвесткі , Калі іх любімая ежа збіраецца быць пададзены ў некаторых D-зала з выкарыстаннем чужога набораў дадзеных і будынак на вяршыні свайго API. Так пра гэта ў форме семінараў і дакументацыю, што ў вас тут онлайн. Так што тыя, то ёсць API. Гэта вяртае нас да HTML. Хуткае рэзюмэ. Што такое HTML? [Студэнт, неразборліва] >> Добра. Мова разметкі гіпертэксту. Хто-небудзь яшчэ, што гэта мова гіпертэкставай разметкі? Мова разметкі гіпертэксту. Добра. Такім чынам, HTML, HyperText. HyperText як раз ставіцца да Web, па большай частцы. Разметка азначае, што яна на самай справе не мова праграмавання, HTML. Гэта не мова, які вы можаце выказаць логіку цалі Ён не мае завес. Ён не мае умоў. Ён не мае функцыі, як такой. Хутчэй, яна мае гэтыя рэчы называюцца тэгамі, ці, дакладней, элементаў. І гэтыя элементы маюць пачатак і канчатковых тэгаў, або адкрытыя тэгі і закрытыя тэгі, і тое, што гэтыя тэгі наогул азначае для браўзэра, пачаць нешта рабіць, а затым спыніць рабіць нешта, хоць ёсць і выключэнні з гэтага. Часам гэта проста "пакласці радкі тут", напрыклад. І мы бачылі прыклады, што на днях, паміж смелымі абліцоўванне, радкоў, а затым некалькі іншых тэгаў. Такім чынам, HTML гэта мова, на якім вэб-старонкі напісаныя. Так што, калі я іду на нешта накшталт Google.com і пацягніце ўверх толькі дома іх старонкі, Нагадаем, што калі вы пстрыкніце правай кнопкай мышы або пстрыкніце кантроль і паглядзець на выгляд зыходнай старонкі, як правіла, гэта поўны беспарадак ў гэтыя дні пад капотам, але гэта таму, што Кампутары не хвалюе прабел, так што гэта не павінна выглядаць прыгожа. Але калі павялічыць на часткі, заўважыць, што Chrome, проста каб быць добрым, быў колерам рэчы. Сапраўды, гэта самы першы тэг, які мы бачылі ў вэб-старонкі. І зноў, HTML 5, апошняя версія гэтага мовы, сапраўды ёсць гэтая рэч у пачатку, > Так, мы вырашылі гэта раней відавочна кажа браўзэра пакласці радкі тут. І гэта таму, што, зноў жа, браўзэр толькі збіраецца зрабіць відавочна, што мова разметкі кажа гэта рабіць, так што нават калі вы маглі ўдарыць увядзіце адзін ці два разы ці нават у дзесяць разоў, ён збіраецца аб'яднаць усё ў адной прасторы, проста канвенцыі. Так што калі вы сапраўды хочаце радкі, вы павінны выкарыстоўваць тэг б-р, і цяпер апавяшчэнне, як у панядзелак, я паставіў / ўнутры гэтага тэга, толькі таму, што гэтага проста не адчувае сябе добра , Каб пачаць новую радок, то спыніць яго ні з чым паміж імі. Такім чынам, канвенцыя ў HTML, каб адкрыць і закрыць тэг адначасова. Як і ў бок, вы ўбачыце шмат сайтаў, у кнігах не рабіць гэтага. Гэта правільна рабіць ці не рабіць гэтага, але мы сцвярджаем, , Што дызайн-мудры і стылістычна, гэта толькі лепш таму што тады кожны тэг як адкрываюцца і зачыняюцца так ці інакш. А цяпер давайце захаванне і перазагрузка. Вярнуцца да браўзэра, усё ў парадку. Цяпер мы дамагліся некаторых поспехаў, але гэта не зусім дастаткова. Давайце пойдзем далей і пачаць друкаваць у некаторых даўжэй тэкст. Так скажам, «Хуткая карычневая ліса скача над гультаяватай сабакам". А цяпер дазвольце мне проста скапіюйце і ўстаўце гэты некалькі разоў так што ў нас ёсць абзац тэксту. Дазвольце мне вярнуцца сюды. Так што гэта не выглядае вельмі добра. У мяне ёсць радкі, так што гэта нармальна, але цяпер, калі мы становімся на кропку з вэб-старонкі , Які мае шмат кантэнту, а не толькі адной лініі, каб прадэманстраваць HTML, мы можам пачаць думаць аб гэтых рэчах, як фактычнае пунктаў. І мы можам пачаць структураваць нашу вэб-старонку трохі чысцей. І на самай справе, што я магу зрабіць, гэта зайсці сюды ўнутр майго цела тэга, і вы ведаеце, што, калі «Гэта CS50. . ». сапраўды demarks пачатку абзаца, добра, давайце пазначыць яго як такое. Дазвольце мне абзац тэксту, толькі па пагадненні, дазвольце мне сказаць, што гэты пункт сканчаецца тут, , А затым замест таго, рабіць гэта радкі, дазвольце мне сказаць, што гэта належыць там, і ў якасці новага пункта, і я проста хутка водступ ад проста выдаліўшы ўсе гэтыя рэчы. Так што цяпер у нас ёсць абзац з водступам там, і цяпер наша разметка пачынаюць атрымліваць крыху больш семантычна адпавядае таму, што мы спрабуем зрабіць. У нас ёсць пункт, так што давайце называць гэта пункт з тэгам р. У нас ёсць другі пункт, так што давайце называць гэта пункт з тэгам р. А цяпер, то, што браўзэр, як правіла, робяць сапраўды гэтак жа як у англійскай кніга альбо артыкул, дзе вы звычайна бачыце некаторыя радкі паміж абзацамі. Браўзэр будзе рабіць гэта за вас аўтаматычна. Так што цяпер у нас ёсць два пункты, і мы можам працягнуць гэта. Але, вядома, у Інтэрнэце, калі ў вас ёсць органы тэксту гэта не правіла, проста велізарныя згусткі тэксту. Ёсць часта гіперспасылак там. Такім чынам, калі мы хочам, напрыклад, ўключаць у сябе некаторыя спасылкі там, Выкажам здагадку, што магло б прадстаўляць цікавасць у любы вэб-старонцы Я ствараю тут - адпусьці мяне да Google.com, і дазвольце мне шукаць булак. Перайсці да Google малюнкаў, і, як наконт - гэта міла. Мы пойдзем з гэтым. Так што тут у нас ёсць хуткая карычневая ліса скача праз лянівых сабаку. Так што я збіраюся зрабіць тут, толькі дзеля дэманстрацыі, , Мяркуюць, што гэты вобраз быў на маім серверы, і я быў стварэння гэтых малюнкаў. Што я проста быў правай кнопкай мышы або кіраваць націсніце на карцінку, і тое, што вы ўбачыце ў большасці браўзэраў трохі меню - спыніць рабіць гэта - невялікае меню, якое дазваляе выбраць копію размяшчэння спасылку або скапіюйце URL. Такім чынам, дазвольце мне вярнуцца цяпер да майго HTML, і выкажам здагадку, што я хачу да гіперспасылка на іншую вэб-старонку. Што было тэг з імем для гэтага? [Студэнт, неразборліва] >> Так. Так HREF для гіпер спасылкі. Дазвольце мне ісці наперад і ўставіць яго цалі Гэта даволі доўгі URL, так што дазвольце мне аддаліцца. Зачыніць дужкі, так што цяпер я заўважыў дарозе сюды таму што URL апынулася даволі доўга. Дазвольце мне прагортку тут да канца булак, , А затым дазвольце мне ў гэты тэг з . Так што ўсё на верху ў сінім гэта проста каментар. Гэта мая Дэкларацыя DOCTYPE, які зноў, Вы можаце проста скапіяваць і ўставіць на веру, на дадзены момант. Гэта проста кажа браўзэру, «Вось ідзе некаторы HTML 5. Ніжэй гэтага, у радку 14, з'яўляецца першым у маёй фактычнай тэгі і гэта проста кажа, як і раней, вось некаторыя HTML, вось ідзе кіраўнік маёй старонцы, вось назоў, , А затым, наадварот, вось і ўсё за тытул, гэта ўсё на галаву. Вось цяпер ідзе цела маёй старонцы. Так што пару новых тэгаў цяпер: h1 выступае за загаловак 1. Там ёсць традыцыя ў HTML для шмат гадоў назад наяўнасці розных памераў тэксту. А яшчэ ў той дзень, кожная з якіх азначала, як правіла, толькі вялікі і тоўсты. Але ёсць і h2, якая з'яўляецца вялікай, але не такі вялікі і тоўсты. Там у h3, якая з'яўляецца своеасаблівай вялікі, але не такі вялікі і смелы, і гэтак далей, аж да h6. У гэтыя дні, хоць, h1, h2 і h3 сапраўды азначала, мець больш сэнсавае значэнне для іх, якой h1 сапраўды загаловак: загаловак вэб-старонкі, загалоўку слупка ці нешта накшталт гэтага тэксту. Так што я наўмысна сказаў h1 CS50 пошук> h1 для задання, што гэта сапраўды загаловак, назва маёй старонцы. Ня тытул у тым сэнсе, загаловак, але назва, што вы на самой справе бачыце ў самой вэб-старонкі, у целе. Цяпер гэтага, вы можаце здагадацца, што гэта такое, хоць у нас ёсць некалькі новых частак сінтаксісу. Гэта форма. Такім чынам, вэб пачынаецца самае цікавае , Калі вэб-сайты прымаюць ўваходныя дадзеныя ад карыстальнікаў. У гэтым класе, у задачы усталяваны на вэб-праграмавання, Мы не збіраемся рабіць сайт, як такой, са статычным змесцівам, якое паказвае фатаграфіі, якія вы зрабілі, ці гэта маё рэзюмэ, і пра мяне, таму што тыя рэчы, якія адносна лёгка, разам узятыя. Гэта цяжка зрабіць прыгожыя рэчы ў Інтэрнэце, але па крайняй меры падымаючы змест даволі трывіяльна. Але ўсё становіцца сапраўды цікава, калі хто-то можа наведаць ваш сайт і забяспечыць ўваход і могуць запаўняць формы, можна праверыць з сцяжкамі і могуць ўзаемадзейнічаць з вашага сайта. І на самай справе, напэўна, кожны вэб-сайт, вы клапоціцеся аб у гэтыя дні, ва ўсіх падрабязнасцях, так ці інакш інтэрактыўным. Facebook, Google, і да таго падобнае, якія прымаюць карыстацкі ўвод і вырабляем індывідуальныя выхад. Такім чынам, давайце пачнем гэта рабіць цяпер. Давайце зараз пераходзе з выкарыстаннем толькі HTML для разметкі статычнага кантэнту як замест механізм дастаўкі для дынамічнага кантэнту. І ў гэтым кірунку, давайце рэалізуем нашу ўласную пошукавую сістэму. Давайце зробім гэта наступным чынам. Вось выглядзе тэга. Дзеянне атрыбут паказвае, што, калі карыстальнік запаўняе гэтую форму з клавіятурай, ён будзе прадстаўлены на гэты адрас тут. Так я накшталт падману. Ён збіраецца ўзяць нас трохі даўжэй аднаго класа, каб рэалізаваць увесь пошукавай сістэмы, таму мы проста робім пярэднюю частку, так бы мовіць. Мы будзем рабіць тую частку, якая дазваляе карыстачу пошук, і мы будзем сартаваць Пунт на Google жорсткая частка пошуку вынікаў пошуку, але, у прыватнасці, я збіраюся пагаварыць з вэб-сервера ад Google з дапамогай аднаго з двух вельмі папулярных метадаў. Адзін час атрымаць іншае, што мы ў канчатковым рахунку бачыць, будучы паведамленне, хаця ёсць і іншыя, якія радзей выкарыстоўваюцца. Так што проста выклікае ва ўяўленні ідэю, я хачу, каб атрымаць кантэнт, атрымаць некаторыя вынікі пошуку. Гэта, мабыць, можна здагадацца, што гэта робіць. Гэта свайго роду уваходам, ён, па сутнасці, будзе выглядаць як тэкставае поле, і імя гэтага ўваходу, імя гэтай зменнай, так бы мовіць, збіраецца быць Q для запыту па дамове. І зноў, тып гэты ўваход не будзе сцяжок; ён не будзе меню, яно будзе ў тэкставае поле як пазначаецца гэты атрыбут тут, і гэта тэкставае поле, як радкі, альбо ёсць, альбо няма. Таму ў нас ёсць пусты элемент з касой рысай ўнутры гэтага тэга. Тады я збіраюся паставіць радкі, і вы можаце, напэўна, здагадацца, што гэта будзе рабіць. Гэта яшчэ адзін від формы ўводу. Гэты збіраецца быць выкарыстаны для адпраўкі формы. Такім чынам, гэта будзе вялікая кнопка, якую карыстач можа націснуць, каб адправіць форму, і пазнака на гэтую кнопку будзе "CS50 Пошук". Зачыніць форму, недалёка цела, блізкія HTML. Давайце паглядзім, што мы маем на ўвазе гэтую вэб-старонку. Такім чынам, дазвольце мне пайсці ў маім браўзэры, адпусьці мяне, тым не менш, на лакальным хасце. Гэта па-ранейшаму index.html, так што калі я хачу бачыць гэты файл называецца search0, Я магу проста зрабіць / search0.html, увядзіце - і першы з маіх памылак. Што адбываецца? Я дакладна не маюць дазволу доступ да гэтага файла, па некаторых прычынах. Але гэта таму, што, у адрозненне ад працы, якую мы рабілі да гэтага часу ў C, дзе вы пішаце праграмы мяркуюцца runable вамі, выкананыя вамі, гэта не зусім так у Інтэрнэце, якім часам вы можаце ствараць файлы на сервер, але вы не хочаце, каб увесь свет зможа ўбачыць іх. Хутчэй за ўсё, вы хочаце, каб свет бачыў некаторыя файлы але не іншыя, проста дзеля прыватнага жыцця аўтара. Так што гэта больш выбару ў аснове, калі вы робіце рэчы ў Інтэрнэце. І таму дазвольце мне на самай справе Тып LS тут, і вы ўбачыце файлы ў мяне ёсць, але нагадаем, што калі я зраблю LS-л доўгі час, Я атрымаю больш у каталогу, які дае мне некаторыя падрабязнасці аб гэтых файлах што ў цяперашні час, сапраўды, у першы раз, якія маюць дачыненне да нас. Звярніце ўвагу, што на правым імёны мае файлы, і час, у які яны ў апошні раз былі змененыя або скапіяваныя. Гэты нумар тут што? Вы памятаеце? Памер у байтах, наколькі вялікі файл. Так што я, здаецца, ёсць нейкі лагатып тут, гэта больш, чым усе іншыя файлы. Гэта хто я, гэта тое, што я і што я група цалі Але потым, тут на левым трохі загадкавыя паслядоўнасці, і мы пагаварылі, я думаю, коратка пра гэта і ў мінулым, але гэта не мае агульнага з дазволамі. І нават калі гэта крыху туманна, RW, верагодна, азначае чытаць і пісаць. Вось і атрымліваецца, што гэтыя рыскі абазначаюць розныя наборы дазволаў для розных людзей. І карціна, па сутнасці, наступным чынам. Калі вы бачыце паслядоўнасць рысак тут, яны выглядаюць наступным чынам. Там у працяжнік, то ёсць яшчэ тры працяжнік, то ёсць яшчэ тры, то ёсць яшчэ тры. Першы з іх з'яўляецца альбо працяжнік, ці гэта аб'ява для каталога. Так што даволі лёгка. Калі гэта тэчка, яна кажа д, у адваротным выпадку гэта злучок. Там у некалькі іншых выпадкаў, але зараз мы проста клапоцімся пра файлы і каталогах. Наступныя тры працяжнік - і я штучна ўстаўленая прасторы. Яны былі, відавочна, не было, калі мы іх убачылі хвіліну таму. Гэтыя дазволу ўладальніка файла, у і адклікае секунду назад, што яно было прачытана і пісаць. Гэта таму, што я, як чалавек, які стварыў гэты файл хвіліну назад, Я, проста па змаўчанні, на кампутар Linux, маюць магчымасць працягнуць чытанне і запіс гэтага файла. Такім чынам, аперацыйная сістэма проста дае мне RW аўтаматычна. Сярэдні з іх ставяцца да маёй групе, што і студэнты, якая з'яўляецца свайго роду бессэнсоўныя на прыборы, таму што я адзіны чалавек, які выкарыстоўвае гэты прыбор. Такім чынам, дазвольце мне проста махаць рукамі, што на дадзены момант. Але апошні з іх з'яўляюцца найбольш важнымі для Web. Гэта ўсё яшчэ ў свеце, і той факт, тое што --- азначае, што ніхто яшчэ ў свеце мае ніякіх правоў на гэты файл. Ясна, што праблема, так што мне трэба, каб выправіць гэта , Нейкім чынам даць свету тое, што? Чытаць і пісаць? Гэта, верагодна, нямы, ці не так? Я не хачу, каб нехта на вэб- пайсці, каб наведаць маю старонку і неяк змяніць гэты файл, нават калі яны сапраўды не маглі з HTML файл, але толькі ў прынцыпе, напэўна, проста хочуць, каб яны маглі яго прачытаць. Што гэта значыць чытаць? Гэта не значыць, што яны збіраюцца клапаціцца аб фактычнай HTML, але браўзэр павінен быць у стане разабраць, што мова разметкі, зверху ўніз, злева направа. Значыць, нехта ў інтэрнэце павінен умець чытаць, так што я мінімальна трэба даць яму р. Я магу зрабіць гэта ў некалькі розных спосабаў, але, магчыма, Прасцей за ўсё выканаць гэтую каманду тут. Chmod, змена рэжыму, то A + R, так што ўсё, усё ў свеце + чытаць, , А затым імя файла, search0.html. Цяпер, калі я раблю LS-л зноў, звярніце ўвагу, што файл быў зменены, І сапраўды, я ўключыў г для ўсіх. Я таксама уключыў яго ў сваю групу, але гэта нармальна, таму што калі я ператварыўся ў на ўсім, мая група з'яўляецца падмноствам гэтага. Так што гэта таксама добра. Гэта проста азначае, што кампутар зараз зрабіў яго даступным для чытання. Цяпер дазвольце мне вярнуцца да маёй браўзэра, націсніце кнопку перазагрузкі. Ах-ха. Цяпер у нас ёсць CS50 пошук. Я павялічана трохі штучна - даволі агіднае пошукавай сістэмы. Але давайце паглядзім, калі яна сапраўды працуе. Па-першае, дазвольце мне зрабіць хуткую праверку наяўнасці свядомасці, дазвольце мне кіраваць кнопкай мышы і прагледзець зыходны код старонкі. Звярніце ўвагу, што ў Chrome цяпер мы назіраем тое ж самае HTML, што я сам стварыў. Не заблытацца тут, аднак. Я не магу пачаць змяненне кода тут, таму што браўзэр мае даступную толькі для чытання сувязі з гэтым кодам. Браўзэр проста спытаў лакальнага кампутара файл пад назвай search0.html. У цяперашні час чыстая выпадковасць, што прыбор апынецца на тым жа кампутары, мой браўзэр. Я мог бы проста, што эквівалентна, увялі ў www.facebook.com/search0.html, і калі Facebook быў файл з імем, я б тады, бачачы іх HTML. І, вядома, я не магу змяніць файл, які вяртаецца з Facebook, альбо. Так што цяпер мы як бы сціраючы грані. Прыбор з'яўляецца як серверам, абслугоўванні вэб-старонак, але ў той жа кліента ў тым сэнсе, што я з дапамогай браўзэра на самай справе пагаварыць з гэтага сервера. Такім чынам, давайце паглядзім, калі мой Google пошукавая сістэма працуе. Дазвольце мне ісці наперад і шукаць булак, увядзіце. І вуаля, зараз у мяне ёсць мой уласны пошукавік. Але як гэта працуе? Нацяжкай, але - і зараз вы не можаце бачыць, дакладней, тая частка, якая ўяўляе цікавасць. Звярніце ўвагу, што адбываецца. Звярніце ўвагу на URL. Аказваецца, што гэты метад, называюць атрымаць, супер-просты. Калі вы пакажаце ў форме, што Вы хочаце, каб 'атрымаць' Вынік ад некаторых сервераў, што ён збіраецца зрабіць, гэта прыняць тое, што вы ўвялі ў форму і паклаў яго ў URL-адрасе. Гэта будзе стандартызаваць, як ён атрымлівае пакласці ў URL наступным чынам. Звярніце ўвагу, што гэта URL, які быў значэннем мае дзеянні атрыбуту. Вось дзе я хацеў форма ў канчатковым выніку. Але тое заўважыць гэта пытальнік. Гэта Канвенцыя аб вэб якога забяспечыць увод дадзеных карыстачом на сайт, вы дадаеце да URL пытальнік, і тады ў вас ёсць цэлая куча пар ключ-значэнне. Імя ключа, інакш вядомы як параметр у Web, то ў вас ёсць знак роўнасці, то ў вас ёсць значэнне гэтага параметру. Так што гэта па сутнасці імя зменнай і значэнне зменнай, але імёны гэтых зменных і значэнняў прыйшоў з HTML формы. Чаму плюсы там, як вы думаеце? Таму што я не ўводзіць + паміж маімі словамі. [Студэнт, неразборліва] >> Так, гэта толькі для інтэрвалу. Хутчэй за ўсё, калі вы бачылі URL, ніколі няма ніякіх прабелаў у ім, калі толькі таму, што калі б былі, вы не маглі сапраўды скапіруйце яго і ўстаўце у IM або ў электроннай пошце, таму што гэта парушыла б. Вы хочаце, каб усё гэта будзе адзін бесперапынны радок знакаў. Такім чынам, браўзэр досыць разумны, каб разумець, э-э-э-э. Не проста паставіць прасторы. Дазвольце мне кадаваць прастору, у некаторых стандартным спосабам. Адзін з канвенцый для гэтага з'яўляецца наяўнасць браўзэра аўтаматычна ставіцца +, дзе вы хацелі б мець месца. Так што цяпер, звярніце ўвагу, Google быў выгляд зручна. Я, вядома, не ствараюць гэтую вэб-старонку, але яны ўжо запоўненая свае тэкставае поле з тым, што, сапраўды, я набраў цалі Выкажам здагадку, я хачу, каб шукаць нешта яшчэ, як гультаяватая сабака. Я магу проста набраць гэта тут, паўторнага пошуку. Звярніце ўвагу, што URL змяняецца тут, не заўважыць тое, што я магу на самой справе шукаць усё, што я хачу проста разуменне таго, як URL-адрасы працы. Я мог бы зрабіць лянівы кот, увядзіце, і звярніце ўвагу, цяпер я атрымліваю вельмі лянівых - мы павінны? Я адчуваю, што мы павінны. Я атрымліваю вельмі лянівы кот. Добра. Гэта адна з самых дурных рэчаў, якія мы зрабілі. Але гэта лянівы кот. Ва ўсякім выпадку, тое, што ключ вынас тут? Цяпер мы накшталт гульні ў свеце HTTP. HTML менавіта гэтая мова разметкі, адкрыты тэг, які зачыняе тэг, , Які кажа браўзэру, як адлюстроўваць змесціва на вэб-старонках. Але калі вы пачынаеце перадачу дадзеных праз Інтэрнэт паміж вэб-браўзэрам і серверам, вось дзе гэты пратакол вядомы як пратакол перадачы гіпертэксту бярэ на сябе. Гэта свайго роду чалавечага канвенцыі; калі Сэм і я паціснулі адзін аднаму рукі ў панядзелак, пачынаючы злучэнне, а затым закрыцця злучэння, тыя ж ідэі тут. Як вынікаў Google, вяртаецца да мяне? Як мая форма прадстаўлення збіраюся Google? Ну, памятаеце з другі дзень што тое, што адбываецца на самай справе пад капотам, калі вы запытваеце вэб-старонкі, ваш браўзэр пасылае некалькі-зашыфраванае паведамленне, як GET / HTTP/1.1 для хатняй старонкі па змаўчанні. Ці, у дадзеным выпадку, таму што я знарок прасіў раней search0.html, то гэта будзе некалькі, загадкавае паведамленне што мой браўзэр адпраўляе на прыладу. Ці, у дадзеным выпадку Google, што на самой справе паслаў з'яўляецца запыт да / пошуку, а затым? Q = лянівы кот, са знакам плюс там. Такім чынам, гэта паведамленне, што я, чалавек, я ніколі не друкаваць, але ў цяперашні час адпраўленыя на мой браўзэр, гэта, як HTTP адбываецца. Гэта эквівалент нашага паціснуўшы рукі. Гэта запыт, а сервер збіраецца адправіць адказ. Такім чынам, давайце зірнем на гэта пад капотам. Як і раней, мы можам адкрыць гэтую спецыяльным поле ў браўзэры. Прагляд старонкі, правяраць элементы. Такім чынам, пад праверку элемента, заўважыў, што тое, што адбылося ў Chrome, IE і Firefox і маюць падобныя механізмы, у нас ёсць гэтыя прылады для распрацоўнікаў даступныя для нас. Нармальныя людзі не выкарыстоўваюць гэтыя ўкладкі. Але мы, вось, цікава тое, што адбываецца пад капотам на сеткавым узроўні. Так што, калі я цягну да сеткавага ўзроўню тут, Дазвольце мне пайсці далей і пашырыць гэта акно, адкрыць гэты запіс тут, і паглядзіце на загалоўкі. Так што ж адбываецца, калі я прашу файлаў з вэб-сервера мой браўзэр адпраўляе цэлую кучу рэчаў. І дазвольце мне прагледзець крыніца. Так пад загалоўкаў запыту, І гэта толькі Chrome паказаў мне некаторыя дыягнастычныя выхад, накшталт як адладчык нейкі, заўважыць, што тое, што я вылучыў тут менавіта тое, што Chrome адпраўляе на сервер для таго, каб запытаць файл з імем search0.html. Гэта кажа серверу, што ён думае, што яго імя, Дзякуючы гэтай галіне тоўстай кішкі гаспадара, то ёсць некаторы даволі эзатэрычныя рэчы тут, як нешта рабіць з датамі і часам, нешта рабіць з мовамі, што браўзэр разумее, але па-сапраўднаму важных ліній гэтых першых двух тут. Што ж адказ сервера? Ну, а калі пракруціць ўніз тут і праглядаць зыходны тэкст гэтай рэччу, заўважылі, што сервер адказаў з некалькі загадкавае паведамленне, а таксама, 304 Not Modified. Гэта крыху дзіўна, дазвольце мне на самой справе спрабуюць выправіць гэта. Дазвольце мне ўтрымліваць зруху і націсніце загрузіць тут каб прымусіць браўзэр на самай справе зрабіць гэты запыт у першы раз. Тады дазвольце мне павялічыць маштаб, і мы бачым, што адказ сервера, таму што я правяла змену, складае 200 OK. Такім чынам, вы, верагодна, ніколі не бачыў нумар 200 ў кантэксце Web, але тое, што нумары Вы часам бачылі нечакана з сервера? 404, файл не знойдзены, 403, забаронены, 500, памылка сервера. Так што гэтыя лічбавыя коды, што ў свеце выкарыстоўваецца ў вэб- для абазначэння памылак, гэтак жа, як функцыі C можа вярнуць памылкі і асноўныя можаце вярнуцца кодаў выхаду. 200, хоць, вы рэдка бачыце, таму што гэта азначае, што ўсё добра. І 304 вы, верагодна, ніколі не бачылі, таму што тое, што гэта азначала? Гэта нічога не мае - давайце паглядзім, калі мы можам імітаваць гэты раз - О, цяпер гэта не супрацоўнічае. 304 кажа не змяняецца, дык чаму ж серверы, нават адказваць? Ну, для павышэння эфектыўнасці вэб-сервер аўтаматычна для вас, калі файл не змяніўся, ён не будзе перадаваць ўвесь HTML файл. Гэта проста скажу браўзэра яна не змянілася. Проста выкарыстоўвайце копіі ў вас ужо ёсць. Так што гэта паняцце кэшавання на вэб- прадукцыйнасць, так што вы не марнуеце час і адходаў прапускную здольнасць загрузка файлаў зноў і зноў без неабходнасці. Але гэтая вэб-старонка, зараз, была супер-просты, і гэта толькі паказаў мне, што HTML вярнуўся. Давайце рэальна выкарыстоўваць сетку ўкладкі цяпер рабіць Google пошук як булак. Дазвольце мне затым націсніце CS50 пошук, і цяпер, звярніце ўвагу, у ніжнім тут цэлую кучу рэчаў вярнуўся таму што, калі я наведваю рэальным вэб-сайтам, як Google.com, яны маюць малюнкі, у іх ёсць тэкст, у іх ёсць мова, званы наяўнасць там. Такім чынам, кожная радок у гэтай табліцы сюды уяўляе сабой нешта, што Google выплюнуў у адказ на маю просьбу аднаго. Адно мяне хвалюе, хоць, гэта першае. І калі я іду ў пошук, запытваць, націсніце кнопку прагляду зыходнага кода тут, заўважыць, што, сапраўды, загадкавае паведамленне, што мой браўзэр паслаў у Google Менавіта гэтыя два радкі, вынікаюць некаторыя тайнай інфармацыі тут якія мы будзем ігнараваць. Але звярніце ўвагу, таксама, што Chrome з'яўляецца даволі зручным с, ён таксама паказаў мне радок запыту, які быў пасланы ўнутры Таму замест таго, пакажыце мне гэта, які быў літаральна адпраўлены, калі б я ўбачыць яго дэкадаваць, Chrome, толькі для адладкі, для распрацоўнікаў, як мы, гэта проста паказвае мне зразумелыя чалавеку версія - гэта не як вы запісваеце ліса, мабыць. Я проста заўважыў гэта цяпер - але гэта паказвае вам, што я, па-відаць, ўвялі. Між тым, адказ, які прыйшоў ад сервера зноў 200 OK. Але, уключаных у адказ, што, вядома, Калі мы сапраўды прагляду HTML-старонкі - Прабачце, гэта крыху спалучэння клавіш пайшло наперакасяк сёння. Я разбяруся з гэтым пазней. Такім чынам, калі мы на самай справе прагляду зыходнага кода старонкі, які я магу зрабіць тут, націснуўшы адказ гэта тое, што было на самай справе пляваць назад, у дадатак да загадкавым 200 OK паведамленне з сервера. Трохі загадкава, але дзе ўсё гэта зыходзіць? Ну, давайце зробім яшчэ адну рэч тут. Іншы некалькі загадкава-каманд, але выгляд гэтага ў акуратныя тым, што ён паказвае нам менавіта тое, што адбываецца пад капотам. Так што я вярнуўся на маім Mac тут, я падключыў праз праграму SSH, Secure Shell, на іншы сервер таму што большасць кампутараў Гарвардскага універсітэта блакаваць каманды мы збіраемся запусціць таму што гэтая каманда на некаторых серверах называецца трасіроўку , Што дазваляе прасачыць маршрут паміж кропкамі А і В, і да гэтага часу мы прымалі як належнае цалкам што я магу ўвесці ў Google.com і нейкім чынам атрымаць дадзеныя назад з паўдарогі па ўсёй краіне ці на іншым канцы святла. З трасіроўку мы сапраўды можам пагрузіцца ў трохі глыбей пра тое, як працуе Інтэрнэт, і паглядзець, што адбываецца пад капотам. Так што давайце ісці наперад і адвольна прасачыць маршрут, скажам, Stanford.edu, якія па ўсёй краіне, і націсніце ўвод. Гэтая каманда можа быць супер-хуткага або супер-павольныя, але тое, што мы бачым цяпер, радок за радком, з'яўляецца кожны з крокаў ці скачкоў паміж намі і Апала-Альта, ці Стэнфард, дзе яны маюць свае вэб-сервера. Такім чынам, што ж кожная з гэтых ліній ўяўляюць больш канкрэтна, праўда? Кавалак жаргон з Інтэрнэту? [Студэнт, неразборліва] >> Што гэта такое? [Студэнт, неразборліва] >> Ну, так што ёсць час, але тое, што кожны радок - тое, што я маю на ўвазе хоп? Ну, ёсць такія рэчы ў інтэрнэце называюць маршрутызатарамі. І маршрутызатараў, як вынікае з назвы, інфармацыя аб маршруце ад кропкі А ў кропку Б. Але ёсць некалькі пунктаў за межамі а і б. Там у ў і г а д і е паміж радкоў 1, якія, здараецца, IP-адрас майго кампутара, ці мой лікавы адрас, які адназначна ідэнтыфікуе кампутар, і кроку 15, які на самай справе шосты вэб-сервер, па-відаць, якую я выводзячы з гэтага, ці 6-й версіі свайго вэб-сервера ў Стэнфардзе. Але тое, што быццам акуратна, мы можам убачыць шлях , Што мая 0 і 1 прымаюць з майго кампутара ў Стэнфард. Такім чынам, крок 1 адрас майго ўласнага кампутара. Кожны кампутар у Інтэрнэце мае унікальны ідэнтыфікатар, які выглядае наступным чынам. Number.number.number.number. Дзесьці на гэтым кампусе, верагодна, у навуковым цэнтры, з'яўляецца маршрутызатарам называецца асноўны шлюз 2-te83, што б гэта ні сродкаў, так што гэта адно з вялікай фантазіі Гарвардскага універсітэта маршрутызатараў, якія накіроўваюць шмат трафіку. Вось яшчэ адзін з маршрутызатараў Гарвардскага універсітэта, гэта адзін Border Gateway, мяжы сэнсу гэта, верагодна, на перыферыі мястэчка недзе. Тады ёсць NOx адзін, радок 4, якая з'яўляецца паўночнай Скрыжаванне, , Які з'яўляецца вялікім ISP, інтэрнэт-правайдэра, што такія месцы, як Гарвард падключыць да. Але тады ўсё становіцца трохі цікавей у радку 6. Дзе мае біты раптам? Канзас. У свеце ёсць звычка выкарыстоўваць коды аэрапортаў у многіх з гэтых рэчаў, або па крайняй меры скарачэнняў штатаў або гарадоў, так ён выглядае, усяго за 60 мс, пакет інфармацыі, 0 і 1 з маім ноўтбукам атрымаў усю дарогу да Канзаса, і зноў, у 60 мс. Акрамя таго, пасля Канзас, яны ўзялі тур праз Х'юстан, верагодна, як гэта было прапанавана імя гэтага сервера. Так як сервер у Інтэрнэце павінны мець лікавы адрас, ён можа таксама, пры неабходнасці, мець некалькі больш зразумелыя чалавеку адрасы, што людзі прыдумалі. Цяпер, у пункце 8, мы не ведаем, што гэта такое. Часам маршрутызатары проста нейкая вас ігнаруюць, і яны проста не адказваць на пытанні, так што ўсё ў парадку. Той, пасля кроку 8 мабыць дзе? Лос-Анджэлес Звярніце ўвагу на ўсяго толькі 78 мс, што займае нас, людзей, як 6 + гадзін, каб зрабіць фізічна, прымае пакеты інфармацыі ў інтэрнэце 78 мс ехаць так далёка. Крок 10 знаходзіцца ў Лос-Анджэлесе, а таксама і крок 11, здаецца, пайшоў на поўнач, каля Стэнфард. Гэта іх межавых маршрутызатара або межавы маршрутызатар. Пару крокаў у Стэнфардзе, якія ігнаруюць нас, І, нарэшце, мы прыходзім да вэб-серверу усяго 87 мс. Зараз усе гэтыя лічбы, як у баку, проста сказаць вам, колькі часу патрабуецца для перадачы дадзеных, каб атрымаць ад мяне Кожнаму з гэтых маршрутызатараў, і гэта не назапашвальная. Тое, што гэта праграма не з'яўляецца, яна спачатку пасылае паведамленне, па сутнасці, першым маршрутызатарам. Тады на другім маршрутызатары, то да трэцяга маршрутызатару, вымярэння кожны раз. Такім чынам, у тэорыі, гэтыя часы будуць расці або па крайняй меры вельмі блізка адзін да аднаго, і, сапраўды, тыя, якія прама тут, на тэрыторыі кампуса з'яўляюцца супер-малая. Як толькі вы пачынаеце рух па ўсёй краіне, ён прымае дадзеныя трохі больш падарожнічаць, бліжэй да 100 мс, плюс-мінус. Але давайце ісці ў іншым накірунку цяпер. Як наконт Кембрыджскага універсітэта ў Вялікабрытаніі? Дазвольце мне замест гэтага запусціць трасіроўку з www.cam для Кембрыджа, . Пераменнага току для акадэмічных,. Вялікабрытанія, увядзіце і націсніце тут. Гэта было надзвычай хутка. Мае дадзеныя літаральна адправіўся ў Кембрыдж, Англія, у тую долю секунды часу. Такім чынам, давайце паглядзім шлях, які ён прыняў. Гарвард, Гарвард, Гарвард, Паўночнай Скрыжаванне, якая з'яўляецца правайдэрам, а затым гэта Паўночнага Crossroads, а потым бац. Што знаходзіцца паміж крокі 6 і 7, маршрутызатар 6 і 7? Атлантычны акіян. І мы гэта вывядзенне з таго, што мы пераходзім ад 20 мс для 80 мс тут. Такім чынам, сёе-тое ўзялі 60 мс, плюс-мінус, каб атрымаць больш. І гэта, напэўна, вялікі вадаём. Што адбываецца пасля гэтага? Ну, вось мы і ў Лондане, усяго 88 мс пазней. Больш Лондане, больш Лондана, Не ведаю, дзе гэта, але мы мяркуем, што гэта за межамі Лондана, Cambridge тут, і, нарэшце, мы - у літаральным сэнсе, Кембрыджскі універсітэт . Something.net, а затым, нарэшце, у радку 16, іх вэб-сервер па-відаць называюць Скарпіёна пад капотам, хоць мы ведаем яго як WWW. Выгляд ашаламляльных, я думаю. Першы раз, калі я зрабіў гэта, яна цалкам падарваў мой розум. На жаль, Гарвардскі блакуе гэты выгляд трафіку, як правіла, у сетцы. Такім чынам, вы не можаце зрабіць гэта супер лёгка. Зразумейце, аднак, гэта тут магчыма. Добра. Давайце возьмем наш 5-хвілінны перапынак тут. Мы вернемся і ныраць глыбей. Такім чынам, мы вярнуліся, і мы накшталт гулялі каля ў некалькіх розных напрамках тут. Такім чынам, давайце падвядзем вынік менавіта тое, што тут адбываецца. Мы пачалі размову пра гэта кажуць мовай называецца HTML. Зноў жа, не мова праграмавання. Гэта проста мова разметкі , Што ў значнай ступені аб эстэтыцы і структуравання зместу ў выглядзе вэб-старонкі. Але HTML, таму патрэбны нейкі механізм для падарожжа паміж вэб-браўзэрам і серверам. HTML такім чынам роду атракцыёнаў на вяршыні гэтага іншай мовы, ці, дакладней, пратакол, вядомы як HTTP. І HTTP, як мы бачылі гэта да гэтага часу, гэта свайго роду аналагічны гэтага чалавека канвенцыі поціск рукі. Калі браўзэр хоча запыце старонкі з сервера, яна пасылае, што "атрымаць" запыт ад браўзэра да сервера, , А затым сервер адказвае лік, напрыклад 200, усё ў парадку, а таксама HTML або дрэнныя лік, напрыклад 404, файл не знойдзены. А між тым, HTTP сама па сабе не ў Інтэрнэце, як такога. HTTP гэта проста сэрвіс, асаблівасць Інтэрнэту гэтак жа, як G чата іншай службы, так жа, як электронная пошта іншую службу. Там ўсялякія рэчы, якія мы можам зрабіць у Інтэрнэце. HTTP з'яўляецца толькі адной з гэтых прыкладанняў. Такім чынам, у верхняй частцы - HTTP знаходзіцца на вяршыні нешта іншае якіх мы не згадвалі па імені, Вы, напэўна, чулі па імені, TCP / IP. Так што гісторыя, якую мы толькі што сказалі, што гэта ўсё аб як дадзеныя перамяшчаюцца з пункту А ў пункт Б. І ў гэтым выпадку, мы ўбачылі на вельмі нізкім узроўні маршрутызатара да маршрутызатара, каб маршрутызатар да маршрутызатара, як дадзеныя перадаюцца на самай справе. Але на гэтым шляху, яна будзе сутыкацца з рознымі перашкодамі. Акрамя таго, гэтыя маршрутызатары, ёсць рэчы, званыя брандмаўэрамі ў сетцы Інтэрнэт, і таму дадзеныя, такія як, што мы проста перадача ад мяне, у Стэнфард, у мяне ў Кембрыдж, пасылаецца, на гэтым узроўні, тое, што называецца IP-адрас. Мы бачылі гэтую хвіліну назад, і IP-адрас гэта проста лікавыя адрасы выгляду w.x.y.z, дзе кожны з іх паміж імі, плюс-мінус, 0 да 255, калі вы не можаце цалкам выкарыстаць усе гэтыя лічбы. Але кожны з гэтых месцаў уладальнікамі ўяўляе сабой лік ад 0 да 255. Такім чынам, IP-адрас у гэтыя дні 32 біт. Цяпер, што дае нам, колькі магчымых IP-адрасоў у свеце? Каля 4 млрд, таму што ў любы час мы разлічваем ў ступені 2 усё, аж да 32 пра што-то, што звычайна дае нам 4 мільярды даляраў. Так што вельмі шмат IP адрасоў, але вы, магчыма, чыталі, ці вы маглі б цяпер заўважыць у папулярнай прэсе, штуршок да новай версіі IP называецца IPv6. Цяпер мы выкарыстоўваем версіі 4. Там сапраўды не было версіі 5, мы проста скакаць прама да 6. Версія 6 будзе выкарыстоўваць 128 біт для IP адрасоў, якія дзяўбуць велізарны. Мы не павінны скончыцца на працягу досыць доўгага часу цяпер, але мы пачалі бегчы з 4-й версіі IP-адрасоў, таму што ва ўсіх нас ёсць не толькі рэчы, як наўтбукі і настольныя ПК, Шмат хто з нас ёсць тэлефоны, многія з нас маюць іншыя прылады як TiVo і да т.п., якія маюць IP-адрасы саміх сябе. Гарвардскі сама па сабе мае дзесяткі тысяч кампутараў. Такім чынам, свет сапраўды сканчаюцца IP-адрасы, па меншай меры, гэтую форму. Такім чынам, на працягу бліжэйшых некалькіх гадоў, вы ўбачыце адрасы на свой кампутар, верагодна, павольна змяняцца усё больш і больш кампаній і універсітэтаў пачынаюць падтрымліваць новую версію. Але IP-адрас не з'яўляецца дастатковым для кампутара запытваць дадзеныя з кампутара б. Таму што кампутар б можа быць сервер, і сервер, як я згадваў раней, можна зрабіць пучкі рэчы. Гэта можа размясціць вэб-старонак, гэта можа быць сервер электроннай пошты, гэта можа быць Skype серверы, гэта можа быць сервер G чаце. Усе гэтыя розныя паслугі, якія могуць быць прадастаўлены па серверу можа ўсё, фізічна, быць на той жа машыне. Такім чынам, у дадатак да IP-адрасах, у свеце ёсць рэчы, званыя парты ў сеткі Інтэрнэт. Порт гэта проста лік, такім чынам, ёсць унікальны нумар для HTTP. Яго нумар 80. HTTP таксама выкарыстоўваецца лік 443, але больш канкрэтна, для зашыфраванага HTTPS. Кожны раз, калі вы бачыце с, для бяспечнага, якая выкарыстоўвае іншы нумар. Ёсць і іншыя лічбы, як 25, які выкарыстоўваецца для так званых SMTP, інакш вядомы як электронная пошта. Там-то называецца 22 для SSH, і ёсць цэлая куча іншых партах там. Зараз, мы, людзі рэдка бачаць гэтыя лічбы. Аднак, калі вы ўводзіце адрас, напрыклад http://www.facebook.com, Браўзэр таемна ўстаўкі 80, таму што вы выкарыстоўваеце HTTP. Калі вы, наадварот, тыпу HTTPS, ён таемна ўстаўкі 443. І мы можам выгляду бачыць гэта ўручную, калі я цягну да Брауэр і перайдзіце да http://www.facebook.com:80. Таму відавочна спасылаючыся не толькі на назву сайта але порт, што я хачу, каб гаварыць, і націсніце ўвод. Звярніце ўвагу, яна знікае, таму што браўзэр мяркуе, ой, 80, я нават не буду затлумляцца, якія паказваюць, што для вас. Але прычына гэтага ў тым, што калі б я сапраўды хацеў, каб адправіць кагосьці электроннай пошты, Я б вельмі пасылаць яго да іх на порт 25, які, будучы SMTP. Трохі спрошчана, але некаторыя з вас ёсць сябры , Якія фактычна працуюць на Facebook, і яны, аналагічна, ёсць серверы, якія атрымліваюць электронную пошту. Кожны раз, калі вы адпраўляеце ліст, тое, што Gmail робіць для вас або Outlook, або любой іншай праграмы, якую вы выкарыстоўваеце, гэта свайго роду таемна ўстаўкі гэтага ліку, а, 25, у гэтым выпадку. Менавіта гэта спалучэнне IP-адрас і нумар, які адназначна ідэнтыфікуе кампутар у сетцы Інтэрнэт і пэўнай паслугі на гэтым кампутары. Цяпер, вядома, большасць з нас, напэўна, ніколі не ўводзяцца ўручную IP-адрас. Можа быць, у вас ёсць у халадзільніку, але і ў рэальным свеце, не так шмат. Чаму мы не ўводзіць IP-адрасы ў браўзэрах? Яна будзе працаваць, на самай справе, мы можам бачыць гэта, дазвольце мне паказаць вам яшчэ адна каманда, якая павінна працаваць у любым месцы на самых кампусе Гарвардскага універсітэта на Mac або ПК. Там гэтая каманда называецца серверу, выдалены сервер імёнаў пошуку. Калі я гляджу www.cnn.com, аказваецца, што мае CNN - о, цікава. CNN пачаў выкарыстоўваць Amazon Web Services. Вы можаце ведаць, хмарных вылічэнняў, адзін Амазонкі з буйных гульцоў у галіне хмарных вылічэнняў. Тое, што я рабіў, было, я сказаў: "Дайце мне адрас вэб-сервера CNN, ' але аказваецца, што вэб-сервер CNN, кіруюць Amazon, Amazon Web Services, гэта гаворыць пра тое. І адрас гэтага сервера гэта тут. Так што я не ўпэўнены, што гэта будзе працаваць, таму што яны не прывыклі выкарыстоўваць Amazon. Але давайце паспрабуем гэта, http://, IP-адрас, увядзіце, а таксама - яно будзе працаваць? Так. Ён будзе працаваць. Інтэрнэт супер-павольныя сёння. Але, у адзін момант, вы ўбачыце некаторыя навіны. Там мы ідзем. Банк Амерыкі адказчыкам у судзе. Добра. Гэта таму, што гэты IP-адрас толькі, здараецца, па сінонімам www.cnn.com. Вядома, гэта было б жахліва маркетынгу сказаць, наведайце нас на вэб-сайце 50.112.94.127. Вы ніколі не памятаю. Такім чынам, нават у гэтыя дні вы, магчыма, памятаеце рэчы як 1-800-COLLECT або Мнемонік свеце прыдумаў для тэлефонных нумароў. Які, перш чым сотавыя тэлефоны, былі даволі цяжка запомніць пакуль вы можаце проста ўвесці яго і забыцца пра яго. Такім чынам, Web, таксама мае гэтую канвенцыю імёнаў і IP-адрасоў, і ёсць гэтыя рэчы там называюць DNS сервераў, Даменнае імя сістэмы сервера, якія перакладаюць IP-адрасы ў імёны, і наадварот. Так што тое, што адбываецца пад капотам. У рэшце рэшт, у нас ёсць TCP / IP, што гэта вельмі нізкім ўзроўні пратаколу што, сапраўды, проста атрымлівае 0 і 1 праз Інтэрнэт, і робіць гэта, змясціўшы іх у віртуальны канверт, калі заўгодна, і пісаць на знешняй баку канверта IP-адрас прызначэння, а таксама лічбавы порт паслугі на гэтага прызначэння, што ён хоча пагаварыць. Між тым, на канверце ёсць таксама нешта, вядомае як зваротны адрас, які з'яўляецца вашым IP адрас, так што, калі CNN атрымлівае пакет інфармацыі ад вас, адкрывае гэты віртуальны канверт, бачыць, што вы хочаце, каб галоўная старонка, ён ведае, ад адпраўніка частка гэтага віртуальнага канверта, каго паслаць HTML назад. Такім чынам, давайце зірнем на гэта крыху больш падрабязна. Гэта з кампаніі пад назвай Ericson, ад некалькі гадоў таму. І яны ўзялі некаторыя вольнасці з тым, як на самой справе працуе інтэрнэт, але ён малюе значна больш навочную карціну, чым проста мелу тут. Такім чынам, я даю вам "трохі ў Інтэрнэце". [Вядучы] Упершыню ў гісторыі, людзі і тэхніка працуюць разам, разумеючы, сон. Аб'ядноўвае сілай, якая не ведае геаграфічных межаў. Без незалежна ад расы, веравызнання або колеру скуры. Новая эра, дзе стасункі сапраўды збліжае людзей. Гэта Рассвет ў Сеткі. Хочаце ведаць, як гэта працуе? Націсніце тут, каб пачаць сваё падарожжа ў Сеткі. Цяпер, што менавіта адбылося, калі вы націснулі на гэтую спасылку? Вы пачалі патокам інфармацыі. Гэтая інфармацыя праходзіць ўніз у ваш асабісты паштовым аддзяленні , Дзе г-н пакетаў IP яго, называе яго, і адпраўляе яго на сваім шляху. Кожны пакет абмежаваны ў сваіх памерах. Пошта пакой павінна вырашыць, як падзяліць інфармацыю і як спакаваць яго. Цяпер, пакет павінен этыкеткі, якія змяшчаюць важную інфармацыю такіх як адрас адпраўніка, адрас атрымальніка, тып пакета ён. Паколькі гэты пакет выходзіць у Інтэрнэт, ён таксама атрымлівае адрас для проксі-сервера, які мае спецыяльную функцыю, як мы ўбачым пазней. Пакет цяперашні час запушчаны на вашай лакальнай сеткі або інтэрнэту. Гэтая сетка выкарыстоўваецца для падлучэння ўсіх лакальных кампутараў маршрутызатары, друкаркі і гэтак далей, для абмену інфармацыяй у межах фізічнага сцен будынка. Інтэрнэт з'яўляецца даволі некантралюемае месца, і, на жаль, няшчасныя выпадкі могуць адбыцца. Шаша LAN запакаваная з усімі відамі інфармацыі. Гэтыя IP-пакетаў, Novell пакеты, пакеты AppleTalk. Яны ідуць супраць руху, як звычайна. Лакальны маршрутызатар чытае адрас і, пры неабходнасці, падымае пакет на іншую сетку. Ах, маршрутызатар. Сімвал кантролю ў, здавалася б дэзарганізаваная свеце. [Маршрутызатары мармытаў і казаў сабе] [Вядучы] Там ён, сістэматычнае, абыякава, метадычнай, кансерватыўную, а часам і не зусім да хуткасці. Але па крайняй меры ён сапраўды, па большай частцы. Як пакеты пакідаюць маршрутызатар, яны робяць свой шлях у карпаратыўны інтэрнэт і галава на маршрутызатар камутатар. Трохі больш эфектыўным, чым маршрутызатар, маршрутызатар перамыкач гуляе хутка і свабодна з IP-пакетаў, спрытна накіроўваючы іх на сваім шляху. "Pinball Wizard", лічбавыя калі вы будзеце. [Маршрутызатар перамыкач кажу сабе] [Вядучы] Як пакетаў прыбыць да месца прызначэння, яны падабралі сеткавы інтэрфейс, гатовыя да адпраўкі на наступны ўзровень. У гэтым выпадку проксі-сервер. Проксі-сервер выкарыстоўваецца многімі кампаніямі ў якасці свайго роду пасярэдніка У мэтах зніжэння нагрузкі на падключэнне да Інтэрнэту і па меркаваннях бяспекі, а таксама. Як вы можаце бачыць, усе пакеты розных памераў у залежнасці ад іх зместу. Проксі адкрывае пакет і шукае вэб-адрас або URL. У залежнасці ад таго адрасы з'яўляецца прымальным, пакет адпраўляецца да Інтэрнэту. Ёсць, аднак, некаторыя адрасы, якія не адказваюць па ўзгадненні з проксі-серверам. Гэта значыць, карпаратыўныя або прынцыпы кіравання. Яны сумарна справа. Мы будзем мець нічога падобнага. Для тых, хто робіць гэта, гэта на дарогу. Затым, брандмаўэр. Карпаратыўны міжсеткавы экран служыць двум мэтам. Гэта прадухіляе некаторыя даволі непрыемныя рэчы з Інтэрнэту з паступаюць у Інтранэт, і ён можа таксама прадухіліць канфідэнцыйнай карпаратыўнай інфармацыі, ад высылкі з на Інтэрнэт. Калі праз брандмаўэр, маршрутызатар забірае пакет і змяшчае яго на значна больш вузкім дарогі, ці прапускная здольнасць, як мы кажам. Відавочна, што дарогі не дастаткова шырокія, каб прыняць іх усіх. Зараз, вы маглі б задацца пытаннем, што адбываецца з тых пакетаў, якія не робяць гэта па дарозе. Ну, калі г-н IP не атрымлівае пацверджання , Што пакет быў прыняты ў свой час, Ён проста пасылае замена пакета. Цяпер мы гатовыя ўвайсці ў свет Інтэрнэту. Павуцінне узаемазвязаных сетак, якія ахопліваюць ўсёй нашай зямной шар. Тут, маршрутызатары і камутатары ўстанаўлення сувязяў паміж сеткамі. Цяпер, Чыстыя гэта цалкам іншы асяроддзі, чым Вы знойдзеце ў абарончай сцяны вашай лакальнай сеткі. З тут, гэта Дзікага Захаду. Шмат месца, шмат магчымасцяў, шмат рэчаў, каб даследаваць і месцы, каб пайсці. Дзякуючы вельмі мала кантролю і рэгулявання, новыя ідэі знаходзяць добрую глебу, каб выйсці за межы сваіх магчымасцяў. Але з-за гэтай свабоды, пэўныя небяспекі ўтойваюцца таксама. Вы ніколі не ведаеце, калі вы сустрэнецеся страшны пінг смерці, Спецыяльная версія нармальны пінг-запыт, які нейкі ідыёт прыдумаў сапсаваць нічога не падазравалых гаспадароў. Шлях наш пакетаў прымаюць можа быць праз спадарожнік, тэлефоннай лініі, бесправадной ці нават трансокеанских кабеляў. Яны не заўсёды маюць самы хуткі або самы кароткі шлях магчымым, але яны атрымаюць там у канчатковым рахунку. Можа быць, таму яго часам называюць «World Wide Wait". Але калі ўсё працуе гладка, Вы можаце абыйсці зямной шар пяць разоў на падзенне капялюш, у літаральным сэнсе. І ўсё па кошту мясцовага званка ці менш. Бліжэй да канца нашай мэты, мы знойдзем іншага брандмаўэр. У залежнасці ад вашай пункту гледжання, як пакет дадзеных, Брандмаўэр можа быць апорай бяспекі або страшны праціўнік. Усё залежыць ад таго, з якога боку вы на і якія вашы намеры. Брандмаўэр прызначаны для пусцілі толькі тыя пакеты, якія адпавядаюць яго крытэрам. Гэты брандмаўэр працуе на парты 80 і 25. Усе спробы пранікнуць праз іншыя парты закрыты для бізнэсу. Порт 25 выкарыстоўваецца для паштовых пакетаў, у той час як порт 80 з'яўляецца уваходам для пакетаў з сеткі Інтэрнэт на вэб-серверы. Усярэдзіне брандмаўэра, пакеты правяраюцца больш старанна. Некаторыя пакеты зрабіць гэта лёгка праз мытню, у той час як іншыя выглядаюць трохі сумніўная. Цяпер, брандмаўэр афіцэр не так лёгка абдурыць, напрыклад, пры гэтым пінг смерці пакет спрабуе замаскіраваць сябе як звычайны пакет пінгу. [Firewall афіцэр размаўляў з пакетамі] [Вядучы] Для тых пакетаў пашанцавала дастаткова, каб зрабіць гэта настолькі далёка, Падарожжа падыходзіць да канца. Гэта проста лінія на інтэрфейс, які будзе ўзяты на вэб-серверы. У цяперашні час вэб-серверы могуць працаваць на многія рэчы, ад мэйнфрэймаў да вэб-камеру да кампутара на стале. Чаму б не ваша халадзільнік? Пры правільнай наладзе, вы можаце даведацца, калі ў вас ёсць задаткі на курыныя Cacciatore, або калі ў вас ёсць хадзіць па крамах. Памятаеце, што гэта зара Сеткі. Амаль усе магчыма. Адзін за адным пакеты будуць атрыманыя, адчыніліся, і распакаваць. Інфармацыі, якую яны ўтрымліваюць, гэта значыць, ваш запыт аб прадастаўленні інфармацыі, пасылаецца на сервер прыкладанняў вэб-сайтаў. Сам пакет з другаснай сыравіны, гатовы да выкарыстання зноў, і напоўнены вашы запытваемага інфармацыі, вырашаны, і разаслаў на сваім шляху назад да вас. Вярнуцца мінулым брандмаўэра, маршрутызатара і далей праз да Інтэрнэту. Вярнуцца праз карпаратыўны брандмаўэр і на вашым інтэрфейсе, гатовыя пастаўляць вэб-браўзэр з інфармацыяй вы прасілі. Гэта значыць, гэты фільм. Задаволены іх намаганні і давяраючы лепшага свету, нашы пакеты надзейных дадзеных паскакаў шчасліва ў закат другі дзень, ведаючы, цалкам яны служылі сваім гаспадарам добра. Цяпер не тое, што шчаслівы канец? [Малая] Добра, гэтага дастаткова. Убачымся на наступным тыдні. [CS50.TV]