[Powered by Google Translate] [Wiki 7, Inaendelea] [David J. Malan, Chuo Kikuu cha Harvard] [Hii ni CS50.] [CS50.TV] Wote haki. Karibu Back. Hii ni CS50, na hii ni mwisho wa wiki 7. Hivyo moja ya mambo haya ya kijinga kidogo kwamba huenda kuzunguka Internet na sisi slurped juu, na ni lazima sasa kufanya kidogo ya akili geeky na wewe. Naam, ilikuwa funnier kwa guy hii kuliko ilivyokuwa kwa nyie. Akizungumza ya, vizuri, guys, leo ni siku ya kuzaliwa ya Nate. Ili kukupa hisia ya Nate tu jinsi nzuri na mimi ni katika maendeleo ya mtandao msingi darasa Jumatatu na msingi sasa juu ya hili, Nilidhani ningependa kuvuta up nyumbani Nate wa ukurasa, kama hawajaona bado. Hii hapa ia Nate ya HTML. Basi tazama sourcecode yake kama Ningependa kuona jinsi ya kufanya hili, na Nate, kama tunaweza koroweza wewe tu kwa ufupi, wafanyakazi got wewe kitu kidogo kama Ningependa kushiriki baadhi dessert na baadhi ya watoto katika darasa hapa. Kama Ningependa kuja juu chini. Nyinyi wote kupongeza na ni nzuri sana, lakini hakuna mtu yeyote mahali popote karibu ameketi Nate, kwa sababu fulani, katika eneo hilo nyuma. Hivyo labda unaweza kupata baadhi ya folks kufurahia haya kwa. Happy Birthday, Nate. Ziada hellos: Sisi ilionyesha clips michache kutoka kwa wanafunzi wetu CS50x. Kama ungependa kuona nani mwingine ni katika ulimwengu hiyo kufuatia pamoja, unaweza kichwa kwa URL hii, ambapo Yusufu, moja ya TFS yetu, ina kuweka pamoja montage wa aina ya kila mtu ambaye amekuwa kuwasilisha hizi videos, kati yao Rick Astley. Na kama wewe kitabu kupitia haya, ni kweli kabisa msukumo kuona utofauti wa nchi na miji ambayo watu ni hailing. Hivyo kama wewe Ningependa kuchukua kuangalia hiyo, ya kwamba itakuwa juu kwa njia ya mwisho wa muhula. Leo tunaendelea kuangalia zetu katika mtandao, mtandao programu, HTML na kama, na sisi pia chakula cha mchana kuja hii Ijumaa kama ungependa, na hasa, hujafanya hivyo kabla. Mandhari hii Ijumaa itakuwa siku ya kuzaliwa ya Nate, hivyo kama ungependa kuwa na siku ya kuzaliwa chakula cha mchana na Nate na wengine, baadhi ya marafiki zetu kutoka Viwanda, tafadhali kichwa kwa kuwa URL huko. Nafasi, kama siku zote, ni mdogo. Pia, kama wameweza wamesahau, kutambua kwamba wiki ijayo ni tarehe ya mwisho ya tatizo kuweka scavenger 4 wa kuwinda, ambapo baada ya kurejesha yote ya JPEGS wale kutoka card.raw, wewe na sehemu mates wako, kama ungependa, unaweza kujaribu kupiga picha kama wengi wa wanasayansi kompyuta kutoka kwamba kadi ya kumbukumbu kama inawezekana, na wewe na sehemu yako kisha kushinda tuzo Fabulous. Rejea nyuma kwenye vipimo pset 4 ya kama yale ya kuwasilisha na kwa wakati. Pia, kama wewe ungependa kuwa handiwork yako immortalized kwenye tovuti kozi na historia yake ya mavazi, tunajua kwamba wewe ni kuwakaribisha sasa kuanza kutoa miundo kwa mwaka huu fulana na mashati na kama. Tutaweza kufanya kazi nzuri ni pamoja na kama wengi kama tunaweza, lakini tutaweza kuwa na baadhi ya wanachama wa mapitio wafanyakazi wote wa miundo kuhakikisha wao uko sambamba na specifikationer, na sisi kisha kuchukua ujumla wachache wa wao kuwa exhibited. Hivyo kama wewe ni aina ya kubuni, tu kujua kwamba, mahitaji ya kwa graphics ni PNG, angalau 200 DPI, wanapaswa kuwa zaidi ya 4000 x 4000, saizi ya na si zaidi ya 10 MB, lakini wewe ni kuwakaribisha kwa kutumia vitu kama Photoshop au GIMP au programu mbalimbali graphic wa, chochote una ovyo wako. Pia kwenye upeo wa macho ni mradi wa mwisho. mradi wa mwisho kweli ni kilele cha 50, ambapo ya kazi zote katika shaka, ni nafasi yako ya kweli ya kufanya jambo yako mwenyewe. Na kwamba wanaweza kuwa tu kufanya kitu kwa ajili ya kujifurahisha, inaweza kuwa ili kutatua baadhi ya matatizo kubwa mwanafunzi wako kundi ana, kwa baadhi ya tovuti mpya, baadhi ya mwezi ukusanyaji utaratibu wa data. Inaweza kuwa maombi ya simu kwa Android, kwa iOS. Kweli, anga ni ya kikomo, na juu ya pili wiki chache, kama sisi mpito kutoka C kwa lugha hizi ngazi ya juu kama PHP na JavaScript, utapata mwenyewe inazidi familiarized na baadhi ya mbinu halisi ya dunia, baadhi ya zana halisi ya dunia, na kuongeza kwamba, kujua kwamba bila shaka ina historia ya semina, ambapo zaidi ya wiki ijayo kadhaa, baadhi ya wafanyakazi wa kufundisha na rafiki ya yetu kutoka juu ya chuo kutoa semina ya hiari ambayo kwenda juu na zaidi ya kile kawaida kufanyika katika sehemu kuanzisha wewe mambo kama programu Android, kuanzisha wewe mambo kama iOS programu au zaidi juu ya mtandao wa maendeleo mbinu. Kuna historia nzima ya hizi tayari online. Kama wewe kwenda cs50.net/seminars, tumekuwa kufanya hii kwa baadhi ya miaka kabisa, na utaona kwamba jalada hapa na PDFs na video na kama kadhaa videos dazeni ya semina na semina. Mwaka jana, kwa mfano, tulikuwa na semina juu ya acing yako mahojiano ya kiufundi, kama wewe ni kweli kuangalia kwenda mbali na kufanya tarajali au ya muda GIG. Windows simu ya maendeleo, Android maendeleo, Google Maps, API, CSS, kuendeleza kwa Blackberry, Emacs. Kweli, wewe ni kuwakaribisha kwa kuangalia yoyote ya semina hizi kwa urahisi. Na tutaweza kuwa kufanya baadhi ndio mpya hii muhula, kama vile. Hiyo ni nini mbele na mradi wa mwisho? Naam, kwanza, ingawa tarehe hii ni kiasi fulani imminent, hii ni kweli tu nafasi ya kuanza kufikiria juu ya mradi wa mwisho kabisa realistically. Tunajua tu mwanzo wa baadhi ya yale tutaweza bado kufunika katika shaka, HTML, PHP na kama, lakini wewe ni wote ukoo na mtandao, na mimi upendeleo mazungumzo haya kuelekea Mtandao tu kwa sababu watu wengi kuishia kufanya Mtandao makao miradi ya mwisho, lakini kwamba ni kwa maana hakuna zinazohitajika. Kutumia C ni mzuri, lengo C, Java, lugha yoyote unaweza kujua au unataka kujua ni kabisa faini. Lakini kupata juisi inapita awali, tutaweza wanatarajia kuwasilisha preproposal ambayo, kwa PDF kwenye tovuti, ambayo sasa ni saa cs50.net, na juu kushoto utaona mradi wa mwisho ni vipimo kwa ajili ya mradi wa mwisho, na katika kuna maelezo juu preproposal na kama. Ni pretty much majipu chini barua pepe kwa mafundisho wenzako tu kwa mgomo hadi mazungumzo na kwake kuhusu kile unachokifikiria. On projects.cs50.net ni hazina ya mawazo kutoka folks juu ya chuo kama wewe ni zinakabiliwa na kuja na wazo baadhi, na manual.cs50.net/APIs ni hazina ya viungo kwa APIs. Nini, ingawa, ni API? Nini API? Nilivyosema ni angalau mara mbili, kulingana na nakala ya wiki kadhaa iliyopita. Nini hiyo? [Mwanafunzi, unintelligible] >> Okay, nzuri. Hivyo kitu programu interface. Maombi ya programu interface, na hii inaweza kuchukua fomu kadhaa, lakini jambo hili majipu kweli chini ni code kwamba mtu mwingine HS iliyoandikwa au data kwamba mtu mwingine imekusanya kwamba yanapatikana kwa namna baadhi ya programu. Unaweza kuandika code katika C, PHP, Python, Ruby, chochote lugha yako ya uchaguzi kwa kawaida ni, na kwa namna fulani unaweza kujenga juu ya utendaji ya mtu mwingine au mtu mwingine data kuweka. Kwa mfano, kama mimi kwenda link hii hapa, na utaona jozi ya viungo kwenye ukurasa baadae ambapo tuna CS50 ya mwenyewe APIs, ambayo ni sana Harvard-centric, na kisha ya tatu wa chama APIs. Miongoni mwa APIs tatu ni muhimu kweli kweli mambo kama kuwa na uwezo wa kutuma SMS ya watu, kuwa na uwezo wa kupokea ujumbe wa maandishi SMS kutoka kwa watu. Na mambo kama hayo kwamba unaweza kuwa na wazo jinsi ya kutekeleza mwenyewe, lakini shukrani kwa huduma, baadhi, bure na baadhi ya kibiashara unaweza kujenga atop wale na kufanya kitu cha riba na wewe. Miongoni mwa APIs CS50 ya mambo haya ni ya chuo-centric kama Harvard kozi, nishati, matukio, chakula, ramani, habari, tweets na Shuttleboy mwenyewe, na haya ni kwamba APIs kuangalia kitu kidogo kama hii. Hebu vuta hadi API HarvardFood. Kama ve milele imekuwa na tovuti ya HUD, ve pengine imekuwa kuna tu kuona nini kwa chakula cha jioni au kuona nini masaa ni kwa baadhi d-ukumbi. Naam, ni si hasa rahisi navigate, na hivyo nini hatukuwa baadhi ya wakati uliopita ilikuwa sisi aliandika programu, hutokea kwa kuwa katika PHP, kwamba kwa kweli screen scrapes ukamilifu wa tovuti ya HUD. Screen scrape kitu ina maana kuandika programu kwa lugha kama PHP kwamba hujifanya kuwa browser, hata ingawa unaweza kukimbia katika haraka amri, kwamba hujifanya kuwa browser, unajumuisha na tovuti, downloads HTML yake, lugha ambayo ni imeandikwa, na kisha husoma, au zaidi hasa, parses ni juu hadi chini, kushoto na kulia. Na nini hatukuwa ilikuwa sisi aliandika code yetu kwa njia ambayo vile wakati wowote tuliona kitu katika kuwa HTML kwamba inaonekana kama kitu kwenye orodha, kama hamburger, tunataka kisha kuagiza kuwa katika orodha yetu wenyewe. Na wakati wowote tuliona maudhui ya lishe, tunataka kuagiza kwamba katika database yetu wenyewe. Na tulichokifanya kujiinua ukweli kwamba HUD wa tovuti, hata ingawa inaweza kuwa ni kidogo ya changamoto kwetu binadamu navigate chini ya Hood, yote ya HTML ni yanayotokana na mipango yao ya kompyuta. Basi wote wa HTML yao, hata ingawa inaweza kuangalia messy, kama tovuti nyingi chini ya Hood kinachofuata mfano. Hivyo sisi tu alitumia masaa kadhaa kuhesabia ya kwamba mfano ili kwamba katika mwisho, sisi kutupa yale yote ya HTML messy, wote wa aesthetics ya yanayowakabili koze na italics na kama, na kile sisi ni basi na uwezo wa kufanya ni kuweka wazi data huo. Kwa mfano, kwa njia hii. Hivyo sisi, kulingana na nyaraka hapa, habari ya ulimwengu kwamba kama wewe kuomba URL kwamba inaonekana kama hii, food.cs50.net / kitu fulani, na wewe kutoa vigezo fulani, ambayo tutaweza majadiliano juu ya leo, kama mwisho tarehe muda, kuanza tarehe wakati, unga na kadhalika, nini server yetu nitawarudia ninyi, kwa mfano, ni faili CSV, comma separted maadili kama faili Excel, zenye kila kitu kwa ajili ya kifungua kinywa, kwa tarehe hii hasa Machi ya mwaka jana wakati mimi kilichotokea kuandika juu ya hili nyaraka. Kwa wale jamaa, CSV si tu faili format. Kuna mwingine format kwamba wote zaidi Versatile kuitwa JSON, JavaScript Object nukuu. data zinaweza kurudi katika muundo huo. Hivyo takeaway hapa ni kwamba kama wewe kupiga mbizi katika hii API au nyingine yoyote ya ya CS50 au kitu chochote kutoka huko kwenye mtandao, au si wakati wote, kutambua kwamba dunia ina inazidi ilianza standardize jinsi mashine intercommunicate. Sisi kutumia data format kiwango kama CSV au JSON. Na hii ina maana gani wewe ni wewe unaweza kuandika sehemu ya kuvutia ya mpango kwamba lets user yako kutafuta menu messi, kwamba lets yao kuunda orodha ya favorites kwamba lets wao kupata rapporteringar Nakala wakati mlo wao favorite ni kuhusu kuwa aliwahi katika baadhi d-hall kwa kutumia data seti ya mtu mwingine na kujenga juu ya APIs yao. Hivyo zaidi juu ya kuwa katika fomu ya semina na nyaraka kwamba una hapa online. Hivyo wale, basi, ni APIs. Hiyo unatuleta nyuma kwa HTML. Quick recap. Nini ni HTML? [Mwanafunzi, unintelligible] >> Good. HyperText Markup lugha. Mtu mwingine, ni nini HyperText Markup lugha? HyperText Markup lugha. Sawa. Hivyo HTML, HyperText. HyperText tu inahusu Mtandao, kwa sehemu kubwa. Markup ina maana kwamba siyo kweli lugha ya programu, HTML. Siyo lugha ambayo unaweza kueleza mantiki in Haina matanzi. Haina masharti. Haina kazi, per se. Badala yake, ina mambo haya kuitwa vitambulisho, au vizuri zaidi, vipengele. Na wale vipengele kuwa tags kuanza na vitambulisho mwisho, au wazi vitambulisho na vitambulisho funge, na nini wale tags ujumla maana ya browser ni, kuanza kufanya kitu na kisha kuacha kufanya kitu fulani, ingawa kuna buraa kwamba. Wakati mwingine ni tu 'kuweka kuvunja line hapa,' kwa mfano. Na tuliona mifano ya siku hiyo nyingine, kati ya yanayowakabili ujasiri, mstari wa mapumziko, na kisha michache tags nyingine. Hivyo HTML ni lugha ambayo mtandao kurasa zilizoandikwa. Hivyo kama mimi kwenda kitu kama Google.com na kuvuta tu zao nyumbani ukurasa, kukumbuka kuwa kama wewe haki bonyeza au kudhibiti bonyeza na kuangalia mtazamo chanzo ukurasa, kawaida ni fujo kamili siku hizi chini ya Hood, lakini hiyo ni kwa sababu kompyuta hawajali kuhusu nafasi nyeupe, hivyo hii haina kuangalia pretty. Lakini kama sisi kuvuta sehemu yake, taarifa kwamba Chrome, tu kuwa nzuri, ina rangi coded mambo. Hakika, huu ni tag sana kwanza kuwa tuliona katika ukurasa wa mtandao. Na tena, HTML 5, toleo la lugha hii, gani kuwa jambo hili mwanzoni, > Yeah, tumekuwa kutatuliwa hii kabla ya na kupanga kuwaambia browser 'kuweka kuvunja line hapa.' Na hiyo kwa sababu, tena, browser 's tu kwenda kufanya kupanga ni lugha ghafi anaelezea ni kufanya, hivyo hata kama unaweza kuwa enter mara moja au mbili au hata mara kumi, itakavyo kuchanganya wote katika nafasi moja, tu kwa mkataba. Hivyo kama kweli unataka kuvunja line, una kutumia tag br, na sasa taarifa, kama Jumatatu, mimi kuweka ndani / ya tag hii, tu kwa sababu hii tu hana haki ya kujisikia kuanza kuvunja line basi kuacha kwa lolote kati. Hivyo mkataba katika HTML ni kufungua na kufunga tag wakati huo huo. Kama kando, utaona mengi ya Nje katika vitabu si kufanya hivyo. Ni sahihi kufanya au si kufanya hivyo, lakini sisi wanasema kwamba design-busara na stylistically, hii ni bora kwa sababu kisha tag kila ni wa kufunguliwa na imefungwa kwa namna fulani. Hivyo sasa hebu kuokoa na Reload. Nenda nyuma browser, okay. Sasa sisi ni kufanya baadhi ya mafanikio, lakini siyo ya kutosha kabisa. Hebu kwenda mbele na kuanza kuandika katika mwili baadhi tena wa maandishi. Hivyo hebu sema, 'quick brown fox anaruka juu ya mbwa wavivu.' Na sasa napenda nakala tu na kuweka hii mara chache hivyo kwamba tuna aya ya asilia. Hebu nirejee nyuma zaidi ya hapa. Hivyo si kuangalia nzuri sana. Mimi wala kuwa na mapumziko ya mstari, hivyo ni sawa, lakini sasa, mara moja sisi ni kupata kwa uhakika wa kuwa na mtandao ukurasa ambayo ina kura ya maudhui na mistari si moja tu kuonyesha HTML, tunaweza kuanza kufikiri ya mambo haya kama aya halisi. Na tunaweza kuanza kuunda mtandao wetu ukurasa kidogo zaidi cleanly. Na kwa kweli, nini siwezi kufanya ni kwenda hapa ndani ya mwili lebo yangu, na unajua nini, kama 'Hii ni CS50. . . ' kweli demarks mwanzo wa aya, vizuri, hebu tag kama vile. Hebu Indent asilia, tu kwa mkataba, napenda kusema kwamba aya hii itaishia hapa, na kisha badala ya kufanya hii kuvunja line, basi mimi tu kusema kwamba hii ni pale na kama aya mpya, na mimi itabidi haraka Indent na tu clobbering yote ya mambo haya. Hivyo basi, tuna aya indented huko, na sasa ghafi yetu ni mapya ya kupata zaidi kidogo semantically sambamba na kile sisi ni kujaribu kufanya. Tuna aya, hivyo hebu kuiita aya na tag p. Tuna aya ya pili, hivyo hebu kuiita aya na tag p. Na sasa, nini browser itakuwa kawaida kufanya ni kama ilivyo katika kitabu Kiingereza au insha, ambapo kwa kawaida wewe kuona mapumziko baadhi mstari kati ya aya. Browsers kufanya kwamba kwa wewe moja kwa moja. Hivyo basi, tuna aya mbili na tunaweza kuendelea hii. Lakini, bila shaka, ya mtandao, wakati una miili ya asilia si kawaida tu kubwa matone ya asilia. Kuna mara nyingi viungo katika huko. Hivyo kama tunataka, kwa mfano, ni pamoja na baadhi ya viungo huko, tuseme nini inaweza kuwa ya riba katika kila ukurasa wa mtandao nina kujenga hapa ni - niende Google.com, na napenda kutafuta haraka kahawia mbweha. Nenda images Google, na, vipi kuhusu - hii ni cute. Tutaweza kwenda na hili. Hivyo hapa tuna haraka kahawia mbweha kuruka juu ya mbwa wavivu. Basi nini mimi naenda kufanya hapa, kwa ajili tu ya maandamano, ni kudhani kwamba picha hii alikuwa kwenye server yangu, na mimi alikuwa kujenga picha hizi. Nini mimi tu hakuwa ilikuwa haki bonyeza au kudhibiti click kwenye picha, na nini utaona katika browsers wengi ni menu kidogo - kuacha kufanya hivyo - menu kidogo kwamba utapata kuchagua nakala kiungo mahali au URL nakala. Hivyo basi mimi kurudi nyuma sasa kwa HTML yangu, na tuseme kwamba mimi nataka kwa hyperlink hii kwa mtandao mwingine. Nini ilikuwa tag kuitwa kwa hilo? [Mwanafunzi, unintelligible] >> Yeah. Hivyo href kwa ajili ya kumbukumbu mfumuko. Hebu kwenda mbele na kuweka kwamba in Ni URL pretty muda mrefu, hivyo basi mimi zoom nyuma nje. Mabano Close, hivyo sasa taarifa mimi nina njia juu hapa sababu URL kwamba kilichotokea kuwa pretty muda mrefu. Hebu kitabu zaidi ya hapa na mwisho wa haraka kahawia mbweha, na basi mimi kuifunga tag na . Kwa hiyo kila kitu juu ya bluu ni maoni. Hii ni bayana yangu doctype, ambayo tena, unaweza tu nakala na kuweka juu ya imani, kwa sasa. Hii tu anamwambia browser, 'Hiyo inakuja baadhi 5 HTML.' Chini ya kwamba, juu ya mstari wa 14, ni ya kwanza ya tags yangu halisi, na hii tu anasema, kama kabla, inakuja baadhi HTML, hapa anakuja kichwa cha ukurasa wangu, inakuja cheo, na kisha, kinyume chake, hiyo ni kwa ajili ya cheo, hiyo ni kwa kichwa. Hapa sasa inakuja mwili wa ukurasa wangu. Hivyo tags wanandoa mpya sasa: h1 anasimama kwa viongozi 1. Kuna mapokeo katika HTML kwa miaka mingi nyuma ya kuwa na ukubwa tofauti wa maandishi. Na nyuma katika siku, kila mmoja na maana, kwa ujumla, kubwa tu na ujasiri. Lakini kuna pia h2, ambayo ni kubwa lakini kabisa kama kubwa na ujasiri. Kuna h3, ambayo ni aina ya kubwa lakini si karibu kama kubwa na ujasiri, na kadhalika, njia yote chini h6. Siku hizi, ingawa, h1 h2, na h3 ni kweli maana kuwa na zaidi semantic maana kwao, ambapo h1 ni kweli kichwa cha habari: ya kichwa cha ukurasa wa mtandao, viongozi wa safu au kitu kama hicho wa maandishi. Hivyo nimekuwa makusudi alisema h1 CS50 tafuta> h1 kwa specifiy kwamba hii ni kweli kichwa cha habari, jina la ukurasa wangu. Si cheo katika hisia bar cheo, lakini cheo kwamba wewe kweli kuona katika mtandao ukurasa yenyewe, katika mwili. Sasa hii, pengine unaweza nadhani ni nini, ingawa tuna wachache mpya vipande ya syntax. Hii ni fomu. Hivyo mtandao kweli anapata kuvutia wakati tovuti kuchukua pembejeo kutoka kwa watumiaji. Katika darasa hili, katika tatizo kuweka juu ya programu ya mtandao, sisi siyo kwenda kufanya tovuti, per se, na maudhui tuli kwamba inaonyesha picha kwamba umechukua, au huu ni resume yangu, na mambo kuhusu mimi, kwa sababu yale mambo ni rahisi kuweka pamoja. Ni vigumu kufanya mambo mazuri kwenye mtandao, lakini angalau kuweka juu ya maudhui ni pretty yasiyo na maana. Lakini mambo kupata kweli ya kuvutia wakati mtu unaweza kutembelea tovuti yako na kutoa mchango na inaweza kujaza fomu, unaweza kuangalia mbali checkboxes na unaweza kuingiliana na tovuti yako. Na kwa kweli, pengine kila tovuti unaowajali siku hizi, katika maelezo yoyote, ni kwa namna fulani ya maingiliano. Facebook, Google, na kama, kwamba kuchukua user pembejeo na kuzalisha pato umeboreshwa. Basi hebu kuanza kufanya hivyo sasa. Mpito Hebu sasa kutoka tu kutumia HTML kwa ghafi ya bidhaa tuli kama badala utaratibu wa utoaji wa bidhaa nguvu. Na upande wa mwisho kwamba, hebu tafuta kutekeleza yetu wenyewe injini. Hebu kufanya hivyo kama ifuatavyo. Hapa ni tag fomu. sifa action bayana kwamba wakati mtumiaji fyller nje fomu hii na keyboard zao, itakuwa in hii URL hapa. Hivyo mimi nina aina ya cheating. Ni kwenda kuchukua yetu kwa muda mrefu kidogo kuliko darasa moja kutekeleza yote search engine, hivyo tutaweza tu kufanya mwisho mbele, hivyo kusema. Tutaweza kufanya sehemu ambayo inakuwezesha tafuta mtumiaji, na tutaweza aina ya punt kwa Google sehemu ngumu ya kutafuta matokeo ya utafutaji, lakini, hasa, mimi nina kwenda kuzungumza na web server ya Google kutumia moja ya njia mbili maarufu sana. Moja ya kupata mwingine, kwamba tutaweza hatimaye kuona, kuwa post, ingawa kuna wengine ambao ni chini mara nyingi kutumika. Hivyo kupata tu conjures up wazo la, nataka kupata baadhi maudhui, kupata baadhi ya matokeo ya utafutaji. Hii, unaweza labda nadhani nini hii gani. Hii ni baadhi ya aina ya pembejeo, ni, kwa kweli, kwenda kuangalia kama uwanja wa maandishi, na jina la pembejeo, jina la kutofautiana kwamba, ili kuzungumza, inaenda Q kwa ajili ya swala na mkataba. Na tena, aina ya pembejeo hii si kwenda kuwa checkbox; si kwenda kuwa menu; itakavyo kuwa shamba Nakala kama ulionyehsa kwa sifa hii hapa, na hii Nakala sanduku, kama kuvunja line, ni aidha kuna au la. Hivyo tuna kipengele tupu na slash ndani tag kwamba. Kisha Mimi naenda kuweka kuvunja line, na unaweza, labda, nadhani nini hii ni kwenda kufanya. Hii ni nyingine aina ya pembejeo fomu. Hii moja kwenda kutumika kwa ajili ya kuwasilisha fomu. Hivyo hii ni kwenda kuwa kifungo kubwa kwamba mtumiaji unaweza bonyeza kuwasilisha fomu, na studio ya kifungo kwamba ni kwenda kuwa 'CS50 Search.' Close fomu, karibu mwili, karibu HTML. Hebu kuona nini sisi katika fomu ya ukurasa huu mtandao. Hivyo basi mimi kwenda browser yangu, let me go, bado, kwa mwenyeji wa ndani. Hii bado ni index.html, hivyo kama nataka kuona faili hii inaitwa search0, Naweza tu kufanya / search0.html, kuingia - na ya kwanza ya makosa yangu. Nini kinaendelea? Mimi wazi hawana ruhusa kupata faili hii, kwa sababu fulani. Lakini hiyo ni kwa sababu, tofauti na kazi tumefanya hivi sasa katika C, ambapo mipango ya kuandika ni kudhani kuwa runable na wewe, executable na wewe, kwamba si kweli kwamba kesi kwenye mtandao, ambapo wakati mwingine unaweza kutaka kujenga files katika server, lakini hutaki dunia nzima kuwa na uwezo wa kuona kwao. Badala yake, unataka ulimwengu kuona baadhi ya faili lakini si wengine, kwa ajili tu ya faragha. Hivyo ni zaidi ya msingi opt-katika wakati wewe ni kufanya mambo ya mtandao. Na hivyo basi mimi kweli aina ls hapa, na wewe kuona files ninao, lakini wanakumbuka kwamba kama mimi kufanya ls-l kwa muda mrefu, Nitapata orodha tena ambayo inatoa mimi maelezo zaidi kuhusu baadhi files haya kwamba ni sasa, kwa kweli, kwa mara ya kwanza muhimu kwa sisi. Ona kwamba juu ya haki mbali ni majina ya files yangu, na kisha muda ambayo wao walikuwa iliyopita au kunakiliwa. Idadi hii hapa ni nini? Je, unakumbuka? kawaida katika bytes, jinsi kubwa ni faili. Hivyo mimi wanaonekana kuwa na aina fulani ya alama katika hapa kwamba kubwa kuliko files mengine yote. Hii ni nani mimi, hii ni nini mimi na kile kikundi mimi nina in Lakini basi, zaidi ya hapa na kushoto ni kidogo ya mlolongo cryptic, na sisi aliyesema, nadhani, kwa ufupi juu ya jambo hili katika siku za nyuma, lakini hii ina nini na permissions. Na hata kama hiyo kidogo hazy, RW pengine inamaanisha kusoma na kuandika. Hivyo ni zinageuka kuwa haya dashes kuashiria mbalimbali seti ya ruhusa kwa watu tofauti. Na mfano ni, kimsingi, kama ifuatavyo. Baada ya kuona mlolongo wa dashes hapa, wao kuangalia kama ifuatavyo. Kuna dash, basi kuna tatu zaidi dashes, basi kuna mwingine tatu, basi kuna mwingine tatu. Wa kwanza ni aidha dash au ad ni kwa directory. Ili mtu pretty rahisi. Kama ni folda, inasema d, vinginevyo ni hyphen. Kuna wanandoa kesi nyingine, lakini kwa sasa tutaweza tu huduma kuhusu files na telefonkataloger. Hizi mitatu ijayo dashes - na nimekuwa artificially kuingizwa nafasi. Walikuwa, ni wazi, si kuna wakati tuliona nao sasa iliyopita. Hizi ni mmiliki wa faili permissions, na kukumbuka kutoka iliyopita pili kwamba ilikuwa kusoma na kuandika. Hiyo ilikuwa sababu mimi, kama mtu ambaye aliumba faili hii wakati uliopita, Mimi, tu kwa default, kwenye kompyuta Linux, wana uwezo wa kuendelea kusoma na kuandika kuwa faili. Hivyo mfumo wa uendeshaji tu anitiaye RW moja kwa moja. ndio katikati yanahusiana na kundi yangu, kwamba wa wanafunzi, ambayo ni aina ya maana juu ya appliance kwa sababu mimi nina mtu tu kutumia appliance. Hivyo basi mimi tu kukitikisa mikono yangu saa kwamba kwa sasa. Lakini kwa wale wa mwisho ni muhimu zaidi kwa ajili ya mtandao. Hii ni kila mtu mwingine katika dunia, na ukweli kwamba maana yake ni kwamba ni --- kwamba hakuna mtu mwingine katika dunia ana ruhusa yoyote na faili hii. Wazi tatizo, hivyo mimi haja ya kurekebisha hii kwa namna fulani kutoa dunia nini? Soma & kuandika? Kwamba pengine bubu, haki? Mimi sitaki mtu yeyote juu ya Mtandao kwenda kutembelea ukurasa wangu na kwa namna fulani kubadilisha faili, hata kama kweli hakuweza na faili HTML, lakini tu katika kanuni, pengine tu unataka yao kuwa na uwezo wa kusoma. Ina maana gani kwa kusoma? Haina maana wao wanaenda huduma kuhusu HTML halisi, lakini browser inahitaji kuweza kuchanganua kwamba lugha ghafi, juu hadi chini, kushoto na kulia. Hivyo mtu kwenye Mtandao inahitaji kuwa na uwezo wa kusoma, hivyo mimi minimally haja ya kuwapa r. Mimi siwezi kufanya hili katika njia kadhaa tofauti, lakini labda rahisi ni kukimbia amri hii hapa. Chmod, mabadiliko mode, kisha r + hivyo wote kila mmoja, katika ulimwengu + kusoma, na kisha jina la faili, search0.html. Sasa kama mimi kufanya ls-l tena ona kwamba faili kwamba imebadilika, na kwa kweli, nimekuwa akageuka juu r kwa kila mtu. Nimekuwa pia akageuka juu kwa ajili ya kundi langu, lakini hiyo ni nzuri, kwa sababu kama mimi akageuka katika tarehe kwa kila mtu, kundi yangu ni subset ya kwamba. Basi hiyo ni faini pia. Hii ina maana tu ya kompyuta sasa kuifanya someka. Sasa basi mimi kwenda nyuma ya browser yangu, bonyeza Reload. Ah-ha. Sisi sasa kuwa CS50 Search. Nimekuwa zoomed katika kidogo artificially - injini pretty hideous tafuta. Lakini hebu angalia kama ni kweli kazi. Kwanza, napenda kufanya haraka sanity hundi, basi mimi kudhibiti bonyeza na kuona ukurasa chanzo. Ona kwamba ndani ya Chrome tuko sasa kuona HTML sawa kwamba mimi mwenyewe kuundwa. Je, si kupata kuchanganyikiwa hapa, ingawa. Siwezi kuanza kubadilisha code hapa, kwa sababu kisakuzi ina mtazamo kusoma tu ya kanuni hii. Kivinjari tu aliuliza jeshi mitaa kwa faili inayoitwa search0.html. Ni bahati mbaya kuwa sasa safi appliance hutokea kwa kuwa kwenye kompyuta moja kama kivinjari changu. Mimi nilikuwa tu, equivalently, kuwa typed katika www.facebook.com/search0.html, na kama Facebook ilikuwa faili inayoitwa kwamba, mimi basi ingekuwa kuona HTML yao. Na, bila shaka, siwezi kubadilisha faili kwamba anakuja nyuma kutoka Facebook, aidha. Hivyo sasa sisi ni aina ya blurring mistari. appliance ni server wote, kuwahudumia juu ya kurasa za mtandao, lakini pia ni mteja katika maana ya kwamba mimi nina kutumia browser kwa kweli kuzungumza na server kwamba. Basi hebu angalia kama yangu ya Google search engine kazi. Hebu kwenda mbele na kutafuta kwa haraka kahawia mbweha, kuingia. Na voilà, sasa nina tafuta yangu mwenyewe injini. Lakini jinsi gani kazi hii? Kidogo ya kunyoosha, lakini - na sasa huwezi kuona, just, sehemu hiyo ni ya riba. Angalia nini kinatokea. Angalia URL. Ni zinageuka kuwa kwamba mbinu, inaitwa kupata, ni super-rahisi. Wakati wewe taja katika fomu ya kwamba unataka 'kupata' matokeo kutoka server baadhi, nini ni kwenda kufanya ni kuchukua chochote uliyoandika katika fomu na kuiweka katika URL. Ni kwenda standardize jinsi anapata kuweka katika URL kama ifuatavyo. Ona kwamba hii ni URL kwamba alikuwa thamani ya hatua ya sifa zangu. Hiyo ambapo nilitaka fomu kuishia. Lakini basi taarifa hii swali alama. Hii ni mkataba juu ya Mtandao kwayo kutoa user pembejeo na tovuti, wewe append kwa URL swali alama, na kisha una rundo zima la jozi ufunguo-thamani. jina la muhimu, inayojulikana kama parameter katika mtandao, basi una ishara sawa, basi una thamani ya parameter kwamba. Hivyo ni kimsingi jina kutofautiana na thamani variable, lakini wale variable ya majina na maadili alikuja kutoka HTML fomu. Kwa nini ni pluses huko, unafikiri? Kwa sababu sikuwa aina + katika kati ya maneno yangu. [Mwanafunzi, unintelligible] >> Yeah, ni tu kwa nafasi. Tabia mbaya ni, wakati wowote wewe ve kuona URL, kuna kamwe yoyote nafasi ndani yake, kama tu kwa sababu kama kuna walikuwa, unaweza si kweli nakala na kuweka ndani ya IM au katika barua pepe kwa sababu ingekuwa kuvunja. Unataka jambo zima kuwa moja contiguous kamba ya wahusika. Hivyo browser ni smart kutosha kutambua, uh uh-. Je, si tu ya kuweka nafasi huko. Hebu encode nafasi katika baadhi ya njia standard. Moja ya mikataba kwa kufanya hivyo ni kuwa na kivinjari moja kwa moja kuweka + ambapo vinginevyo una nafasi. Hivyo sasa, ilani Google imekuwa aina ya user-kirafiki. Mimi hakika hakuwa kuanza ukurasa huu mtandao, lakini wao prepopulated Nakala zao wenyewe shamba kwa nini, just, mimi typed in Tuseme mimi unataka kutafuta kitu kingine, kama mbwa wavivu. Naweza aina tu hii hapa, re-search. Taarifa kwamba URL mabadiliko hapa juu, lakini taarifa kwamba mimi kweli unaweza kutafuta chochote mimi nataka tu kwa kuelewa URL jinsi kazi. Mimi naweza kufanya paka wavivu, kuingia, na taarifa ya sasa nina kupata sana wavivu - lazima sisi? Najisikia kama inavyopaswa. Mimi kupata cat sana wavivu. Wote haki. Hii ni moja ya mambo stupidest tumefanya. Lakini hiyo ni paka wavivu. Anyhow, nini takeaway muhimu hapa? Sasa sisi ni aina ya kucheza katika ulimwengu wa HTTP. HTML ni tu lugha hii ghafi, wazi tag, karibu tag, kwamba anasema browser jinsi ya kutoa maudhui kwenye ukurasa wa mtandao. Lakini wakati wa kuanza kupeleka data katika mtandao kati ya kivinjari na server, hiyo ambapo hii itifaki inayojulikana kama HyperText Transfer itifaki inachukua zaidi. Hii ni aina ya mkataba wa binadamu, wakati Sam na mimi shook mikono juu ya Jumatatu, kuanzia uhusiano na kisha kufunga uhusiano, sawa wazo hapa. Jinsi ya Google matokeo kurudi kwangu? Jinsi ya kuwasilisha fomu yangu ya kwenda Google? Naam, wanakumbuka kutoka siku nyingine ambayo nini kweli kinachoendelea chini ya Hood wakati wewe kuomba ukurasa wa mtandao ni, browser yako ni kutuma ujumbe fulani-cryptic kama GET / HTTP/1.1 kwa ukurasa wa nyumbani default. Au, katika kesi hii, kwa sababu mimi hasa aliomba mapema search0.html, hii basi itakuwa ujumbe fulani-cryptic kwamba browser yangu mteremshia appliance. Au, katika kesi hii ya Google, nini kweli alimtuma ni ombi / search, na kisha? q = wavivu cat, kwa pamoja huko. Hivyo ujumbe huu, kwamba mimi, binadamu, ni kamwe kuandika, lakini ni kuwa kutumwa na browser yangu, hii ni jinsi HTTP kinachotokea. Hii ni sawa ya mikono yetu baada ya kutikiswa. Hii ni ombi, na seva kuhusu kutuma majibu. Basi hebu tuangalie hii chini ya Hood. Kama kabla, tunaweza kufungua uwanja huu maalum katika browser. View ukurasa, kukagua vipengele. Hivyo chini ya kukagua kipengele, taarifa kwamba nini kilichotokea katika Chrome, na IE na Firefox na taratibu sawa, tuna zana hizo developer kupatikana kwetu. Watu wa kawaida wala kutumia tabo haya. Lakini sisi, sasa, ni nia ya nini kinaendelea chini ya Hood katika ngazi ya mtandao. Hivyo kama mimi kuvuta up ngazi mtandao hapa, napenda kwenda mbele na kupanua hii dirisha, kufungua hii ya kuingia hapa, na kuangalia headers. Hivyo kile kinachotokea wakati mimi kuomba faili kutoka server mtandao ni browser yangu zituma rundo zima ya mambo. Na napenda kuona chanzo. Hivyo chini ya ombi headers, na hii ni tu Chrome kunionyeshea baadhi pato uchunguzi, aina ya kama debugger ya aina fulani, taarifa kwamba kile nimepata yalionyesha hapa ni just nini Chrome ni kutuma kwa seva ili kuomba faili inayoitwa search0.html. Ni ni kuwaambia server nini anadhani jina lake ni, shukrani kwa uwanja huu koloni jeshi, basi kuna baadhi pretty esoteric stuff katika hapa, kama kitu cha kufanya na tarehe na nyakati, kitu cha kufanya na lugha kwamba browser anaelewa, lakini mistari kweli muhimu ni hizi mbili kwanza hapa. Je server kujibu kwa? Naam, kama sisi kitabu chini hapa na mtazamo chanzo cha jambo hili, taarifa kwamba seva ina alijibu na ujumbe fulani cryptic pia, si 304 iliyopita. Hiyo kidogo ajabu; napenda kwa kweli kujaribu kurekebisha hii. Hebu kushikilia chini kuhama na bonyeza Reload hapa kwa nguvu ya browser ya kweli kufanya ombi hili kwa mara ya kwanza. Basi mimi zoom katika, na tutaweza kuona sasa kwamba seva majibu, kwa sababu mimi uliofanyika kuhama, ni 200 OK. Hivyo ve pengine kamwe kuona idadi 200 katika muktadha wa Mtandao, lakini ni namba wewe wakati mwingine kuonekana bila kutarajia kutoka server? 404, saizi ya hakuonekana; 403, haramu; 500, seva. Hivyo kuna hizi codes numeric kwamba dunia anatumia katika Mtandao kwa ishara ya makosa, kama tu kazi C anaweza kurudi makosa na kuu anaweza kurudi codes exit. 200, ingawa, wewe mara chache kuona sababu ina maana yote ni sawa. Na 304 pengine kamwe kuona kwa sababu kile ni akionyesha? Hiyo kitu ina - hebu angalia kama tunaweza kuiga hili tena - Oh, sasa ni kutoshirikiana. 304 alisema si iliyopita, hivyo kwa nini alikuwa server hata kukabiliana? Naam, kwa ufanisi, server mtandao moja kwa moja kwa ajili yenu, kama faili hajabadilika, itakuwa si retransmit nzima HTML faili. Hivyo itabidi tu kuwaambia browser ina si iliyopita. Tu ya matumizi ya nakala tayari. Hivyo kuna wazo hili la Caching kwenye Mtandao kwa ajili ya utendaji, ili wewe wala kupoteza muda na Bandwidth taka kushusha files tena na tena unnecessarily. Lakini ukurasa huu mtandao, sasa, alikuwa super-rahisi, na tu alinionyeshea HTML kwamba alikuja nyuma. Hebu kweli matumizi ya tab mtandao sasa kufanya tafuta Google kama haraka kahawia mbweha. Hebu basi bonyeza CS50 tafuta, na sasa, taarifa katika sehemu ya chini hapa rundo zima la stuff akarudi sababu wakati mimi kutembelea tovuti halisi kama Google.com, wana picha, wana asilia, wana lugha inayoitwa JavaScript huko. Hivyo kila mstari katika meza hii hapa chini inawakilisha kitu ambacho Google mate nje katika kukabiliana na ombi langu moja. moja najali, ingawa, ni hii moja kwanza. Na nikienda na tafuta, ombi, bonyeza hapa kuangalia chanzo, taarifa kwamba, kwa kweli, ujumbe cryptic kwamba browser yangu alimtuma kwa Google alikuwa hizi mistari mbili hapa, ikifuatiwa na baadhi ya habari arcane chini hapa ambayo tutaweza kupuuza kwa sasa. Lakini taarifa, pia, nini Chrome ni pretty Handy na, ni pia kunionyeshea kamba swala ambalo alitumwa in Hivyo badala ya kuonyesha yangu hii, ambayo ilikuwa literally alimtuma, kama mimi kuona ni Decoded, Chrome, tu kwa madhumuni ya debugging, kwa watengenezaji kama sisi, ni tu kunionyeshea version binadamu-kirafiki ya - kwamba si jinsi Spell mbweha, inaonekana. Mimi tu noticing hii sasa - lakini ni kuonyesha wewe nini mimi, inaonekana, typed. Wakati huo huo, jibu kwamba akarudi kutoka server ni tena 200 OK. Lakini pamoja na katika jibu kwamba, bila shaka, kama sisi kweli kuona HTML ukurasa wa - sorry, hii ni kidogo keyboard mkato gone awry leo. Mimi itabidi kukabiliana na hii baadaye. Hivyo kama sisi kweli kuona chanzo ukurasa wa, ambayo naweza kufanya chini hapa kwa kubonyeza majibu, hii ni nini alikuwa kweli mate nyuma, kwa kuongeza katika ujumbe kwamba cryptic 200 OK kutoka kwa seva. cryptic kidogo, lakini ambapo ni haya yote kuja kutoka? Naam, hebu kufanya moja nyingine kitu hapa. Mwingine amri fulani-cryptic, lakini aina hii moja ya nadhifu kwa kuwa inaonyesha kwetu hasa ni nini kinaendelea chini ya Hood. Hivyo mimi nina nyuma Mac yangu hapa, nina kushikamana kupitia programu inayoitwa SSH, Secure Shell, kwa seva nyingine kwa sababu wengi wa kompyuta ya Harvard ya kuzuia amri sisi ni juu ya kukimbia sababu kuna amri hii kwenye seva baadhi kuitwa traceroute kwamba utapata kwa kuwaeleza njia kati ya pointi na b, na hivi sasa tumekuwa kuchukua kabisa kwa nafasi kwamba naweza aina katika Google.com na kwa namna fulani kupata data nyuma kutoka halfway nchi nzima au nusu duniani kote. Kwa traceroute tunaweza kweli kupiga mbizi katika undani kidogo kama jinsi Internet kazi, na kuona nini kinaendelea chini ya Hood. Basi hebu kwenda mbele na kiholela kuwaeleza njia ya, wanasema, Stanford.edu, ambayo ni nchi nzima, na hit kuingia. Amri hii inaweza kuwa super-haraka au super-polepole, lakini kile sisi ni kuona sasa, mstari kwa mstari, ni kila moja ya hatua au humle kati yetu na Palo Alto, au Stanford, ambapo wana mtandao wao server. Hiyo ni nini kila moja ya mistari haya kuwakilisha zaidi concretely, ingawa? kipande cha jargon kutoka mtandao? [Mwanafunzi, unintelligible] >> Gani hiyo? [Mwanafunzi, unintelligible] >> Oh, hivyo kuna nyakati, lakini ni nini kila mstari - nini maana na hop? Naam, kuna mambo haya kwenye mtandao iitwayo ruta. Na ruta, kama jina linavyosema, njia ya habari kutoka kiwango A kwa uhakika b. Lakini kuna pointi kadhaa kupita b na. Kuna c na d na e na f kati ya safu ya 1, ambayo hufanyika kuwa kompyuta yangu anwani ya IP, au anuani yangu numeric, ambayo kipekee kubainisha kompyuta yangu, na hatua 15, ambayo ni kweli sita server mtandao, inaonekana, ambayo nina inferring kutoka hii, au toleo 6 ya mtandao server yao katika Stanford. Lakini nini aina ya nadhifu ni, tunaweza kuona njia kwamba 0 yangu na 1 ya ni kuchukua kutoka kompyuta yangu kwa Stanford. Hivyo hatua ya 1 ni anuani ya kompyuta yangu mwenyewe ya. Kila kompyuta kwenye internet ana kitambulisho kipekee kwamba inaonekana kama hii. Number.number.number.number. Mahali fulani juu ya chuo hiki, pengine katika kituo cha sayansi, ni router kuitwa Core Gateway 2-te83, chochote kwamba njia, hivyo hii ni moja ya ruta Harvard kubwa la dhana kwamba njia mengi ya trafiki yao. Hapa ni mwingine wa ruta Harvard, mmoja hii ni Border Gateway, mpaka maana ni pengine juu ya pembezoni ya chuo mahali fulani. Kisha kuna Nox moja, mstari 4, ambayo ni Kaskazini mwa Crossroads, ambayo ni ISP kubwa, Internet mtoa huduma, kwamba maeneo kama Harvard kuungana juu. Lakini kisha mambo kupata kidogo ya kuvutia katika mstari 6. Ambapo ni bits wangu kwa ghafla? Kansas. dunia ina tabia ya kutumia codes uwanja wa ndege katika mengi ya mambo haya, au vifupisho angalau kwa nchi au miji, hivyo inaonekana kama, katika 60 tu ms, paketi ya habari, 0 na 1 ya kutoka mbali yangu got njia yote ya Kansas, na tena, katika 60 ms. Aidha, baada ya Kansas, walichukua ziara kupitia Houston, pengine, kama unahitajika kwa jina la seva hii. Hivyo tu kama seva kwenye mtandao lazima uwe na anuani numeric, inaweza pia, kwa hiari, na anuani ya kidogo zaidi ya binadamu-kirafiki kwamba binadamu walikuja nayo. Sasa, katika hatua ya 8, hatujui nini hii ni. Wakati mwingine ruta aina tu ya kupuuza wewe, na si tu kujibu maswali, hivyo ndiyo faini. moja baada ya hatua ya 8 ni inaonekana wapi? L.A. Angalia katika tu 78 ms, nini inachukua sisi binadamu kama 6 + masaa ya kufanya kimwili, inachukua pakiti wa habari kwenye mtandao 78 ms kusafiri mbali. Hatua ya 10 ni katika LA pia, na hatua 11 inaonekana kuwa wamekwenda kaskazini, hadi karibu Stanford. Hii ni mpaka wao router, au router mpaka. hatua kadhaa katika Stanford kwamba ni kupuuza kwetu, na mwishowe, sisi kufikia server mtandao katika tu 87 ms. Sasa, wote wa namba hizi, kama kando, tu kukuambia inachukua muda gani kwa ajili ya data na kupata kutoka kwangu kwa kila mmoja wa ruta haya, na si ongezeko. Nini mpango hii haina ni, kwanza inapeleka ujumbe, kimsingi, kwa router kwanza. Kisha mmoja wa router pili; basi moja kwa router ya tatu, kupima kila wakati. Hivyo katika nadharia, katika nyakati hizo itakuwa kuongezeka au angalau pretty karibu na mtu mwingine, na kwa kweli, ndio kwamba ni haki hapa kwenye kampasi ni super-ndogo. Haraka kama wewe kuanza kwenda nchini kote, inachukua data tena kidogo kusafiri, karibu na 100 ms, kutoa au kuchukua. Lakini hebu kwenda upande mwingine sasa. Vipi kuhusu Chuo Kikuu cha Cambridge nchini Uingereza? Hebu badala yake kuendesha traceroute ya www.cam kwa Cambridge, . Ac kwa kitaaluma,. Uingereza, Uingereza, na wimbo wa kuingia hapa. Hiyo ilikuwa pretty damn kufunga. Data zangu literally akaenda Cambridge, Uingereza, katika mgawanyiko kwamba pili ya muda. Basi hebu angalia njia kwamba ilichukua. Harvard, Harvard, Harvard, Kaskazini mwa Crossroads, ambayo ni ISP, na basi hii ni Kaskazini Crossroads, na kisha bam. Je, ni katika kati ya hatua 6 na 7, router 6 na 7? Bahari ya Atlantiki. Na sisi ni inferring hii kutokana na ukweli kwamba sisi kwenda kutoka 20 hadi 80 hapa ms ms hapa. Hivyo kitu alichukua 60 ms, kutoa au kuchukua, ili kupata zaidi. Na kwamba pengine alikuwa mwili kubwa ya maji. Yale yanayoendelea baada ya hayo? Naam, hapa sisi ni katika London, tu 88 ms baadaye. Zaidi London, zaidi London, uhakika ambapo hii ni, lakini tutaweza kudhani ni nje ya London, Cambridge hapa, na hatimaye sisi - literally, Chuo Kikuu cha Cambridge . Something.net, na kisha, mwisho, katika mstari 16, web server yao inaonekana kuitwa Scorpius chini ya Hood, ingawa tunajua kuwa kama www. Aina ya akili-mbiu, nadhani. mara ya kwanza mimi milele alifanya hili, ni kabisa akapiga akili yangu. Kwa bahati mbaya, Harvard vitalu aina hii ya trafiki, kawaida, juu ya mtandao. Hivyo unaweza kufanya hivyo super urahisi. Kutambua, ingawa, hii hapa ni iwezekanavyo. Wote haki. Hebu yetu 5-dakika kuvunja hapa. Tutaweza kurudi na kupiga mbizi katika undani. Hivyo sisi ni nyuma, na tumekuwa aina ya ambled kuhusu katika pande kadhaa tofauti hapa. Basi hebu muhtasari hasa nini imekuwa kinachoendelea hapa. Tulianza kuzungumza juu ya mazungumzo hii lugha inayoitwa HTML. Tena, si lugha ya programu. Ni tu lugha ghafi kwamba ni kwa kiasi kikubwa kuhusu aesthetics na jinsia ya maudhui katika fomu ya tovuti. Lakini HTML, kwa hiyo, inahitaji baadhi ya aina ya utaratibu kwa ajili ya kusafiri kati ya kivinjari na server. HTML hiyo ni namna ya umesimama juu ya lugha hii nyingine, au vizuri zaidi, itifaki, unaojulikana kama HTTP. Na HTTP, kama tumeona ni hivi sasa, ni aina ya sawa na mkataba huu wa binadamu kushikana mikono. Wakati browser anataka kuomba ukurasa kutoka server, inapeleka kwamba "kupata" ombi kutoka kivinjari na server, na kisha server anajibu na idadi kama 200, wote ni sawa, kama vile HTML au baadhi idadi mbaya kama 404, saizi ya halikupatikana. Lakini wakati huo huo, HTTP yenyewe si mtandao, per se. HTTP ni tu huduma, hulka ya Internet kiasi kama G chat ni huduma nyingine, kiasi kama barua pepe ni huduma nyingine. Kuna kila aina ya mambo tunaweza kufanya kwenye mtandao. HTTP ni moja tu ya maombi hayo. Hivyo juu ya - HTTP ni juu ya kitu kingine ambayo sisi hakutaja jina, unaweza kuwa na habari za kwa jina IP, TCP /. Hivyo hadithi sisi tu aliiambia kuna wote kuhusu jinsi data husafiri kutoka kiwango A kwa uhakika b. Na katika kesi hii, tuliona katika ngazi ya chini sana router kwa router kwa router kwa router, jinsi data ni kweli kuwa zinaa. Lakini njiani, ni kwenda kukutana na vikwazo mbalimbali. Mbali ruta hizi, kuna mambo kuitwa mpenyo kwenye mtandao, na hivyo data, kama vile kuwa tulikuwa tu kupeleka kutoka kwangu kwa Stanford, kutoka kwangu kwa Cambridge, ni alimtuma, katika ngazi hii, kitu kinachoitwa anwani ya IP. Tuliona huu iliyopita, na anwani ya IP ni tu anuani ya kinambari wa w.x.y.z fomu, ambapo kila moja ya haya ni kati ya, kutoa au kuchukua, 0 na 255, ingawa huwezi kabisa matumizi yote ya wale idadi. Lakini kila mmoja wa wamiliki wa hizi mahali ni idadi kati ya 0 na 255. Hivyo anwani ya IP siku hizi ni 32 bits. Sasa, kwamba inatupa anwani ya IP jinsi wengi iwezekanavyo katika ulimwengu? Takribani bilioni 4, kwa sababu yoyote wakati tuko kuhesabu katika madaraka ya 2 njia yote hadi 32 ya kitu, kwamba kwa kawaida inatupa bilioni 4. Basi hiyo ni mengi ya anwani ya IP, lakini unaweza kuwa na kusoma, au unaweza sasa taarifa katika vyombo vya habari maarufu, msukumo kuelekea toleo jipya la IP kuitwa IPv6. Hivi sasa sisi ni kutumia version 4. Kuna kweli haijawahi version 5, tuko tu kuruka haki ya 6. Version 6 anaenda kutumia bits 128 kwa anwani ya IP, ambayo ni freaking kubwa. Hatupaswi kukimbia nje kwa muda kabisa sasa, lakini tumeanza kukimbia nje ya toleo anwani ya IP 4, kwa sababu sisi wote kuwa si tu mambo kama Laptops na desktops, mengi ya sisi kuwa na mkononi, mengi ya sisi kuwa na vifaa vingine kama TiVo na kama kwamba kuwa na IP wenyewe. Harvard yenyewe ina maelfu ya kompyuta. Hivyo dunia dhati ya mbio nje ya anwani ya IP, angalau wa fomu hii. Hivyo zaidi ya miaka michache ijayo, wewe ni kwenda kuona anwani kwenye kompyuta yako mwenyewe pengine polepole kubadili kama zaidi na zaidi makampuni na vyuo vikuu kuanza kusaidia toleo karibu zaidi. Lakini anwani ya IP ya kutosha kwa ajili ya kompyuta ya kuomba data kutoka b kompyuta. Kwa sababu kompyuta b inaweza kuwa server, na server, kama nilivyoeleza awali, unaweza kufanya mashada ya mambo. Inaweza mwenyeji kurasa za mtandao, inaweza kuwa server email, inaweza kuwa server Skype, inaweza kuwa mazungumzo G server. Huduma hizi zote mbalimbali ambazo wanaweza kutolewa kwenye server inaweza wote, kimwili, kuwa katika mashine hiyo. Hivyo kwa kuongeza anwani ya IP, dunia ina mambo kuitwa bandari kwenye mtandao. bandari ni idadi tu; hivyo kuna idadi ya kipekee kwa HTTP. Idadi yake ni 80. HTTP pia anatumia namba 443, lakini zaidi hasa, kwa HTTPS uliosimbwa. Mnapoona s, kwa salama, kwamba ni kwa kutumia namba tofauti. Kuna wengine, idadi kama 25, kutumika kwa ajili ya kitu kinachoitwa SMTP, inayojulikana kama barua pepe. Kuna kitu kinachoitwa 22 kwa SSH, na kuna rundo zima la bandari nyingine huko nje. Sasa, sisi wanadamu mara chache kuona namba hizi. Hata hivyo, wakati aina katika anuani kama http://www.facebook.com, Kivinjari siri inserting 80, kwa sababu wewe ni kutumia HTTP. Kama wewe, badala yake, aina ya HTTPS, ni siri inserting 443. Na tunaweza aina ya kuona hii manually kama mimi kuvuta BROWER na kwenda http://www.facebook.com:80. Kwa hiyo waziwazi akiongelea si tu jina la tovuti lakini bandari kuwa nataka kuzungumza, na hit kuingia. Taarifa hiyo kutoweka, kwa sababu kisakuzi akubali, oh, 80, mimi si hata kwenda bother kuonyesha kwamba wewe. Lakini sababu hii ni kwamba kama mimi kwa kweli alitaka kutuma mtu barua pepe, Kweli napenda kuwa na kutuma kwa wao juu ya bandari 25, kwamba kuwa SMTP. kidogo ya kurahisisha, lakini baadhi ya una marafiki ambao kwa kweli kazi katika Facebook, na wao, vile vile, kuwa na seva ambazo kupokea barua pepe. Yoyote wakati kutuma barua pepe, nini gmail ni kufanya kwa ajili yenu au Outlook au chochote mpango wewe kutumia, ni aina ya siri inserting kwamba idadi kama vile, 25, katika kesi hiyo. Ni hii mchanganyiko wa anwani ya IP na idadi ya kipekee kubainisha kompyuta kwenye mtandao na huduma maalum kwenye kompyuta hiyo. Sasa, bila shaka, wengi wetu pengine kamwe typed manually anwani ya IP. Labda una katika appliance, lakini katika ulimwengu wa kweli, si sana. Kwa nini sisi si aina anwani ya IP katika browsers? Itakuwa kazi, kwa kweli, tunaweza kuona hii; napenda kuonyesha nyingine moja amri kwamba wanapaswa kufanya kazi zaidi popote juu ya chuo cha Harvard juu ya Mac au PC. Kuna amri hii inaitwa nslookup, jina la seva Luke. Kama mimi kuangalia juu www.cnn.com, zinageuka kuwa CNN ana - oh, kuvutia. CNN imeanza kutumia Amazon mtandao wa huduma. Unaweza kujua ya wingu kompyuta, moja Amazon ya wachezaji kubwa katika kompyuta wingu. Nini mimi tu hakuwa na ilikuwa, mimi akasema, 'Nipe anwani ya mtandao server CNN,' lakini zinageuka kuwa server mtandao wa CNN ni kusimamiwa na Amazon, Amazon mtandao huduma, hii unaonyesha. Na anuani ya server ambayo ni hii hapa. Hivyo mimi nina uhakika kama hii kazi, kwa sababu hawakuwa kutumika kutumia Amazon. Lakini hebu jaribu hii; http://, IP, kuingia, na - ni kwenda kufanya kazi? Ndiyo. Ni kwenda kufanya kazi. Internet ni super-polepole leo. Lakini, katika wakati huu, utaona baadhi ya mashirika ya habari. Kuna sisi kwenda. Benki Kuu ya Marekani ni kuwa sued. Wote haki. Hii ni kwa sababu hii anwani ya IP hutokea tu kwa sawa na www.cnn.com. Bila shaka, itakuwa ya kutisha masoko ya kusema, kutembelea yetu juu ya Mtandao katika 50.112.94.127. Wewe d kamwe kukumbuka. Hivyo hata siku hizi unaweza kukumbuka mambo kama 1-800-COLLECT au mnemonics dunia kuja na kwa simu namba. Ambayo, kabla ya simu za mkononi, walikuwa badala ngumu kukumbuka mpaka unaweza aina tu katika na kusahau kuhusu hilo. Hivyo Mtandao, pia, ana hili mkataba wa majina na anwani ya IP, na kuna vitu hivi kuna kuitwa DNS server, domain jina mifumo, seva kwamba kutafsiri anwani ya IP katika majina na kinyume chake. Hivyo kwamba ni nini kinaendelea chini ya Hood. Katika mwisho, tuna TCP / IP, ambayo ni hii itifaki ya chini sana ngazi kwamba, kwa kweli, tu anapata 0 na 1 ya katika mtandao, na anafanya hivyo kwa kuweka katika bahasha virtual, kama wewe, na kuandika juu ya nje ya bahasha Anwani ya IP ya marudio, kama vile numeric idadi bandari ya huduma ya kwamba marudio kwamba anataka kuzungumza. Wakati huo huo, juu ya bahasha pia kuna kitu inayojulikana kama anuani kurudi, ambayo ni anwani yako ya IP, hivyo kwamba wakati CNN anapata paketi ya habari kutoka kwenu, kuufungua hii bahasha virtual, anaona kwamba unataka ukurasa wa nyumbani, anajua kutoka sehemu mtumaji wa bahasha hii virtual ambaye kutuma nyuma HTML. Basi hebu tuangalie hili kwa undani zaidi kidogo. Hii ni kutoka kampuni inayoitwa Ericson, kutoka miaka michache nyuma. Wakatwaa baadhi ya uhuru na jinsi Internet kweli kazi, lakini inatengeneza picha zaidi kuliko Visual chaki tu hapa juu. Basi, mimi kukupa "kidogo ya mtandao." [Msimulizi] Kwa mara ya kwanza katika historia, watu na mashine ni kufanya kazi pamoja, kutambua ndoto. nguvu ya kuungana kuwa anajua mipaka ya kijiografia. Bila ya kujali utaifa, rangi imani, au. zama mpya ambapo mawasiliano kweli huleta watu pamoja. Hii ni Dawn ya Net. Unataka kujua jinsi kazi? Bonyeza hapa kwa kuanza safari yako ndani ya Net. Sasa, nini hasa kilichotokea wakati clicked juu ya kiungo kwamba? Wewe ulianza mtiririko wa habari. Hii habari husafiri chini katika mailroom yako binafsi ambapo Mheshimiwa IP paket yake, maandiko yake, na kuwanyeshea ni katika njia yake. Kila pakiti ni mdogo katika ukubwa wake. chumba pepe lazima kuamua jinsi ya kugawa habari na jinsi ya kufunga hiyo. Sasa, mfuko inahitaji studio zenye habari muhimu kama vile anuani mtumaji, anwani receiver, na aina ya pakiti ni. Kwa sababu hii pakiti fulani ni kwenda nje kwenye mtandao, pia anapata anuani kwa kompyuta tumishi, ambayo ina kazi maalum, kama tutaweza kuona baadaye. pakiti sasa ilizindua kwenye mtandao wako wa eneo, au LAN. Mtandao huu ni kutumika kuunganisha kompyuta zote za mitaa ruta, Printers, nakadhalika, kwa kubadilishana habari ndani ya kuta ya kimwili ya jengo. LAN ni mahali pretty ulafi, na, kwa bahati mbaya, ajali inaweza kutokea. barabara kuu ya LAN ni packed na kila aina ya habari. Hizi ni IP pakiti, Novell, pakiti AppleTalk pakiti. Wao wanaenda dhidi trafiki, kama kawaida. router mitaa anayesoma anuani na kama ni lazima, akanyanyua pakiti kwenye mtandao mwingine. Ah, router. ishara ya udhibiti katika dunia inaonekana hakipo kwenye mpangilio. [Router kugugumia na kuzungumza na yenyewe] [Msimulizi] Kuna yeye ni, utaratibu, asiyejali, methodical, kihafidhina, na wakati mwingine sio kabisa juu kwa kasi. Lakini angalau yeye ni halisi, kwa sehemu kubwa. Kama packets kuondoka router, wao kufanya njia zao katika mtandao wa kampuni na kichwa kwa ajili ya kubadili router. kidogo na ufanisi zaidi kuliko router, kubadili router ina haraka na huru kwa pakiti ya IP, deftly routing yao njiani yao. digital 'Pinball mchawi,' kama wewe. [Router kubadili kuzungumza na yenyewe] [Msimulizi] Kama pakiti ya kuwasili katika marudio yao, wao ni ilichukua na interface mtandao, tayari kutumwa kwa ngazi ya pili. Katika kesi hiyo, wakala. wakala kutumiwa na makampuni mengi kama aina ya mtu katikati ili kupunguza mzigo juu ya uhusiano Internet na kwa sababu za usalama, kama vile. Kama unaweza kuona, pakiti yote ni ya ukubwa mbalimbali kutegemeana na maudhui yao. wakala kuufungua pakiti na inaonekana kwa anuani ya mtandao au URL. Kutegemea juu ya iwapo anuani ni kukubalika, pakiti ni alimtuma juu na mtandao. Kuna, hata hivyo, baadhi ya anwani ambayo wala kukutana kwa idhini ya wakala. Hiyo ni kusema, miongozo ya ushirika au usimamizi. Hizi ni summarily kushughulikiwa. Tutaweza kuwa hakuna wa kwamba. Kwa wale ambao kufanya hivyo, ni juu ya barabara tena. Next up, firewall. firewall ushirika mtumishi madhumuni ya mbili. Inazuia mambo baadhi badala nasty kutoka Internet kutoka wanakuja katika Intranet, na inaweza pia kuzuia nyeti taarifa ya kampuni kutoka tumwa kwenye mtandao. Mara kupitia firewall, router inaongea pakiti na maeneo ni kwenye barabara nyembamba sana, au Bandwidth, kama sisi kusema. Ni wazi, barabara ni pana si kutosha kuchukua yao wote. Sasa, unaweza kushangaa nini kinachotokea kwa wale pakiti yote ambayo hatuwezi kufanya hivyo njiani. Naam, wakati Mheshimiwa IP asiyeupokea kukiri kwamba pakiti imekuwa kupokea kutokana na muda, yeye tu hutuma pakiti badala. Sisi ni sasa tayari kuingia ulimwengu wa mtandao. spiderweb wa mitandao ambayo span duniani yetu yote. Hapa, ruta na swichi kuanzisha mahusiano kati ya mitandao. Sasa, Net ni mazingira tofauti kabisa kuliko utapata ndani ya kuta za kinga ya LAN yako. Kati hapa, ni Magharibi Wild. Mengi ya nafasi, fursa mengi, mengi ya mambo ya kuchunguza na mahali pa kwenda. Shukrani kwa kudhibiti kidogo sana na kanuni, mawazo mapya kupata ardhi yenye rutuba kushinikiza ya bahasha ya uwezekano wao. Lakini kwa sababu ya uhuru huu, baadhi ya hatari pia lurk. Hutaweza kujua wakati wewe utakuwa kukutana Ping dreaded ya kifo, toleo maalum la kawaida Ping ombi, ambayo idiot baadhi walidhani hadi fujo up majeshi wanyofu. njia pakiti wetu kuchukua inaweza kuwa via satellite, simu mistari, wireless, au cable hata transoceanic. Hawana daima kuchukua njia ya haraka sana au mfupi iwezekanavyo, lakini wao kupata huko hatimaye. Labda hiyo ndiyo sababu ni wakati mwingine inaitwa "World Wide Kusubiri." Lakini wakati kila kitu ni kazi vizuri, unaweza kukwepa duniani mara tano zaidi ya saa tone ya kofia, literally. Na yote kwa gharama ya simu za mitaa au chini. Karibu na mwisho wa marudio yetu, tutaweza kupata mwingine firewall. Kutegemea juu ya mtazamo wako kama pakiti data, firewall inaweza kuwa ngome ya usalama au adui dreaded. Yote inategemea ambayo upande uko juu na nini nia yako ni. firewall ni iliyoundwa na basi katika pakiti tu wale kwamba kufikia vigezo wake. Firewall Hii ni uendeshaji juu ya bandari 80 na 25. Majaribio yote ya kuingia kupitia bandari nyingine ni kufungwa kwa biashara. Port 25 ni kutumika kwa pakiti pepe, wakati bandari 80 ni mlango kwa pakiti kutoka mtandao wa kompyuta mtandao. Ndani ya firewall, pakiti wanapimwa vizuri zaidi. Baadhi ya pakiti kufanya hivyo kwa urahisi kwa njia desturi, wakati wengine kuangalia tu kidogo dubious. Sasa, afisa firewall kwa urahisi fooled, kama vile wakati huu Ping ya paketi kifo anajaribu kujificha yenyewe kama pakiti ya kawaida Ping. [Firewall afisa kuzungumza na pakiti] [Msimulizi] Kwa wale pakiti bahati ya kutosha kufanya hivyo hii mbali, safari ni karibu zaidi. Ni tu line up juu ya interface kuchukuliwa juu katika server mtandao. Siku hizi, server mtandao unaweza kukimbia kwenye mambo mengi, kutoka mainframe na cam mtandao wa kompyuta dawati yako. Mbona si friji yako? Pamoja na kuanzisha sahihi, unaweza kujua kama una makings Kuku kwa Cacciatore, au kama una kwenda ununuzi. Kumbuka, hii ni asubuhi ya Net. Karibu kila kitu ni iwezekanavyo. Mmoja mmoja, pakiti ni kupokea, kufunguliwa, na unpacked. habari vyenye, kwamba ni maombi yako kwa habari, ni alimtuma juu ya maombi server mtandao. pakiti yenyewe ni recycled, tayari kutumika tena, na kujazwa na habari yako ombi, ufumbuzi, na kupelekwa nje ya njia yake ya nyuma na wewe. Nyuma zamani firewall, ruta, na juu ya njia ya mtandao. Nyuma kupitia firewall yako shirika na kwenye interface yako, tayari kwa usambazaji mtandao yako ya kivinjari na taarifa uliyotaka. Hiyo ni, filamu hii. Radhi na juhudi zao, na kuamini ulimwengu bora, trusty wetu data packets wapanda mbali blissfully ndani ya jua kutua juu ya siku nyingine, kujua kikamilifu wao aliwahi mabwana zao vizuri. Sasa, ni kwamba si mwisho furaha? [Malan] Okay, hiyo inatosha. Tutaweza kuona wewe wiki ijayo. [CS50.TV]