Parolanto: Ni parolu pri alia protocol-- la Hipertextual Transfer Protokolo, aŭ HTTP. Do ni jam parolis pri IP kaj TCP en antaŭaj videos. Kaj tiuj estas protokoloj kiuj diktas kiel informo movojn laŭ la maŝinoj kaj de programo al programo aŭ servo priservi per interreto, tra tiu reto de routers kaj maŝinoj. Sed tio kutime ne la tutan bildon, dekstran? Kutime kiam ni sendu informoj, la programo itself-- kiam datumoj estas ricevis, diri, ekzemple, en retmesaĝon per TCP haveno 25 aŭ retpaĝo peto tra haveno 80, ekzistas kutime sistemon de reguloj tie procesi kion mi ĵus ricevis. Kaj HTTP estas ekzemplo de nur tia protokolo. HTTP estas la sola apliko tavolo protokolo ke ni tuj paroli. Sed estas alia aro de reguloj diktante kiom informo esti transdonita kaj prilaboritaj tra la interreto. En aparta, HTTP Specifas precize kiel Unu devas fari peton por retpaĝo kaj precize kiel servilo, maŝino kiu gastigas retpaĝojn, liveras tiun informon malantaŭo al klientoj. Do tiu protokolo ne efektive havas ion fari kun kiel informo movoj de punkto A al punkto B. Estas vere la sistemo de reguloj for-- ĝi estas esence la reguloj de engaĝiĝo por labori kun retpaĝon, simila al kiam iu ondoj ilia mano ĉe vi, kiun vi devas uzi skuos reen. Tio estas speco de konvencia homa protokolo. HTTP- protokolon nur diras, se vi volas peti retejo paĝo, certiĝu vian formato rigardoj kiel this-- ia kiel formatado negoco letero, ekzemple. Kaj la respondo estos simile veni laŭ ĉi tiu protokolo. Estas aliaj apliko tavolo protokoloj ke ni ne tuj raportas en filmetoj. Sed tiuj inkludas aĵojn kiel la Arkivo Transfer Protocol, SMTP por sendanta retpoŝtojn, la Datumoj Distribuado Servo, Izolita Surtabla Protokolo, RDP, kiu estas uzata, se vi volas remotamente aliro vian komputilon el alia komputilo, XMPP, kiuj estas ofte konata kiel Jabber aŭ babilejo, jen la protokolo pro uzi babilejo servoj. Kaj estas multaj, multaj, multaj aliaj. Do ĉiufoje vi uzas servo, servado atendas informo esti received-- peton esti received-- en tre aparta formato kaj estas bezonata por redonas informojn reen en tre aparta formato ankaŭ. Do ni revenu al nia ilustraĵo ni volante paroli al la interreto. Do ni estas feliĉaj kaj ni volas iri al cats.com, dekstra? Do se ni nur parolas al cats.com, ni povus diri ion kiel hey, mi povas vidi vian ĉefpaĝon? Kaj cats.com verŝajne respondi, jes, certe. Jen. Do tio estas homa varo de demandi-kaj-respondo. Kion tio similas en HTTP? Nu, ĝi fakte speco de tradukas bela pure al io tiamaniere. Ni povus diri GET / HTTP / 1.1 el gastiganto cats.com. Do esence kion mi faras ĉi tie estas petante la retpaĝo www.cats.com/. Ni kutime preterlasas la oblikvo nuntempe, sed tio estus nur signifi cats.com hejmpaĝo. Ho, kaj laux la vojo, mi tuj esti uzante HTTP versio 1.1 komuniki kun vi. Tio estas speco de analogaj al dirante, kiel, cetere, Mi tuj parolus en la franca, aŭ sur vojo Mi tuj estos parolante angle. Tio estas nur la formato de la protokolo. Ĝi estas ankaŭ 1.0, kiu estas ne komune uzata plu. Do mi parolas HTTP 1.1, kaj Mi ŝatus www.cats.com/. Bonvolu akiri ke por mi. Kaj tiam tie estas alia informo, ankaŭ kontraŭ la dot, punkto, pentras tie, kiu estas informo pri Kiu vi estas tiel cats.com scius kie sendi ĝin. Sed ĉi tiuj estas la du ia kritikaj partoj tuj en la komenco de HTTP request-- samkiel kiam vi komencas letero vi diras, kara, malplenan. Ĉi tio estas tre simila en spirito al tio. Kaj se cats.com tuj diru, ho, certe, ĉi tie vi iras. Ili povus respondi kiel this-- Mi ankaŭ respondas. Mi ankaŭ parolas la HTTP 1.1. Via peto estas aprobita, 200 OK. Kio vi estas estonta ricevas estas HTML kaj tiam dot, punkto, pentras iun ekstran informon. Kaj en la fundo de la peto estas fakte la HTML, la markado lingvo, La enhavo de cats.com hejmpaĝo. Do HTTP / 1.1-- Mi agnoskas vian peto estis akceptita per HTTP 1.1. Via peto estis aprobita. Mi povas doni al vi kion vi volas, 200 OK. Vi estas eble ricevi HTML. Kaj poste jen la HTML kiu vi petis. Sed kelkfoje niaj petoj ne ĉiam iras tre laŭ plano. Ĉu mi povas vidi vian cats.html paĝo? Nu, kio se ili diras, ni ne havas cats.html paĝo, kiu ŝajnas ia nerealisma ĉar ili estas cats.com. Oni kredus ke ili havus cats.html. Sed okej. Do ĉi tiu estas speco de la konvencia homa interago ni nun havis kun cats.com. Kiel tio traduki? Tio povas esti io familiara al vi. Nia peto aspektis ekzakte la sama, krom anstataŭe de iĝi oblikvo ni nun akiranta cats.html. Do nun kion esence tio tutan peto diras estas bonvolu doni al mi www.cats.com/cats.html. Do la gastiganto kaj la meza parto de tiu supran linion tie indiki precize kion paĝon mi petas. Sed cats.com tiukaze ne tuj povi respondi pozitive. Ili ne scias ke ni parolas. Kaj tiel tio estas io vi havu vidita before-- HTTP 1.1 404 Not Found. Mi ne trovis, kion vi petante. Parenteze, mi tuj al vi reen iuj HTML, kaj kutime ke HTML estas la enhavo de iuj 404 paĝoj. Kaj en la kazo de cats.com, ĝi estas verŝajne kelkaj cute katoj en korbon kun malĝoja 404 vizaĝon apud ili, ĉar vi tuj estos malĝoja kiam vi ne ricevas paĝon ke vi serĉis. Tio estas speco de la basics de kia protokolo, la protokolo HTTP petojn aspekti. Ili estas vere simila al kiel ni farus similan interago en nur homaj konvencioj petante ion kaj ekhavi ĝin aŭ skribi leteron kaj atendante respondon leteron en aparta formato. Tio estas sufiĉe multe kio HTTP estas nur canonicalizing por ĉiuj mekanismoj kiuj deziras aliro retpaĝoj, hiperteksta translokigoj. Do linion de la formo, tiu la metodo peto celo HTTP versio, nomata HTTP peto linio. Ĝi estas kutime la unua afero kiu estas transdonitaj kiel parto de HTTP peto aŭ se vi demandas por HTTP. Ĝi estas speco de kiel, kiel mi diris, por diri kara, malplenan supre via letero. Ili scias ke vi estas skribante ilin letero. Do tiu estas tre simila por diri: Mi scias ke ili estas farante HTTP peto kaj tiu estas la aparta formato ili estas petante. HTTP versio estas probable ĉiam tuj estos HTTP / 1/1. 1.0 Ankaŭ ekzistas sed ne vere uzata plu. Por celoj de CS50, GET estas probable ĉiam kion vi estas iranta esti uzante kiam vi estas reale farante rektan HTTP petojn. Sed POST estas alia eblo kiun ni estas Ne tuj parolos pri aktuale. Kaj tiam peto-celo estas kion paĝo sur la gastiganto servilo vi ŝatus akiri. Kiel mi diris, ke gastiga nomo estas aparta linio, kutime la dua linio de la entuta peto. Kaj tial prenita kune, la gastiganto nomo kaj la peto celo specifi specifan rimedo estanta serĉita. En nia 404 ekzemplo dua antaŭe, Mi demandas denove por www.cats.com, cats.com esti la gastiganto. Kaj en mia peto linio, Mi diris /cats.html. Tio estis mia peto celo. Do entute mi estis petanta la Enhavo aŭ la rimedon lokita ĉe www.cats.com/cats.html. Kaj tiam bazita sur ĉu la rimedo ekzistas kaj ĉu la servilo povas liveri la rimedo bazo de la kliento peto, vi eble ricevos diversaj statuso kodoj reen. Iuj de tiuj statuso kodoj vi vidis ĉar ili estas parto de la respondo. Iuj de ili, 200 OK, estas probable bele silenta. Vi verŝajne neniam vidis paĝo respondi 200 OK. Vi elektu la paĝon. Ne estas kiel 404 eraro, kiu estas kutime sufiĉe klara. Vi kutime vidi ke ĝi diras 404. Do ni parolu pri kion iuj de tiuj statuso kodoj povas esti. Denove, kiam la servilo nin respondas, ili estas tuj respondi HTTP versio statuso. Kutime HTTP / 1.1. Kio tio estas statuso kodoj tuj estos? Nu, ni povus akiri sukceson. Do en la sukceso kategorio, ni eble ricevos kodon 200 kun la teksto OK. Kion tio signifas? Nu,? Io estas bona. Vi faris validan peton. Jen validan respondon. Mi povis savi precize kion vi volis. Kelkfoje vi eble akiri aliajn aferojn ke vi ne rimarkas tuj sed estas iome fiaskoj. Ili estas nomitaj Redirecciones. Ekzistas du komunaj tie. 301 Moved Permanently-- kion tio signifas esence estas la paĝo estas nun ĉe nova loko. Vivos eterne. Kaj plej retumiloj aŭtomate redirect vi. Do vi neniam vere vidi a 301, ankaŭ ne, krom se vi estas uzante vere ekstere-de-dato retumilo, eble, ĉar la 301 respondo estas parto de la punkto, ĝi pentras, punkto de la 301 respondo. Ĝi ankaŭ diras vin kie la nova paĝo estas. Kaj tial plej retumiloj nur redirect vin tie, supozante ke vi volas iri tien. Foje vi ankaŭ ricevi 302 trovita. Kaj tiu unu vi reale povus ankoraŭ vidi foje. Kelkfoje paĝoj movi provizore. Do ĝi ne tuj estos konstruita en peto rakontanta la retumilo konstante ŝanĝi ajnan tempon ĝi vidas la peto ke vi fari por ŝanĝi ĝin por io alia. Do vi povus vidi 302 Found, kiu esence diras ĉi paĝon vivas aliloke. Sed gxi ne tuj vivi tie ĉiam. Ĝi eventuale probable iri reen al kie vi pensas ĝin estas. Tiam vi ricevos aferoj kiel kliento eraroj. Do tiuj estas ones vi havas verŝajne vidis, nun. Vi verŝajne ne vidis la 200s aŭ 300s la, sed vi verŝajne familiara kun la 400s. Kaj tio estas kio ni parolos proksimume en sekundo, 500s tiel. Vi povus vidi 401 Rajtigita. Kutime tio signifas ke vi estas provas aliri paĝo, sed vi ne estas ensalutinta. Do vi provis preni iun Profilo aŭ io en Facebook aŭ vi provas kaj aliro some-- vi estas ĉe laboro. Vi provas aliri ion sur via verkaro Interreto, sed vi ne estas ensalutinta. Vi ne povas vidi la paĝon. Vi eble ricevos 401 nerajtigita, kio signifas ke ni verŝajne povos kontentigi tiun peton, sed unue vi devas ensaluti por fari tion. Male, vi eble ricevos 403 Malpermesita, kio ĝi ne vere gravas se vi estas ensalutita aŭ ne. Tiu peto estas malpermesataj. La rimedo ekzistas sur la servilo. Sed vi ne rajtas aliri ĝin. Tiu estas kutime interna dosieroj vivi sur la servilo pro diversaj kialoj sed ne pretendas esti alirita de la ekstera mondo, kaj tiel ili estas malpermesitaj. Ili vivas tie. Mi ne diras mi ne povas trovi ĝin. Sed mi estas diranta Mi ne povas doni al vi. Kaj ne gravas se vi estas ensalutita aŭ ne. Kaj tiam kompreneble, la tre komunaj 404 Not Found. La dosiero ne ekzistas en la servilo. Mi ŝatus kontentigi via peto, sed mi ne povas. Vi ankaŭ iam vidi servilo eraroj, la plej komuna ĝenerale estanta 500 Interna Servilo Eraro, kiu fakte ne povas ion alian diri ajn pri kio eraras. Sed estas ne reale vi faras eraro en via peto. Ĝi estas fakte la servilo malsukcesanta liveri sur la peto iel. Do 500 estas la ĝenerala respondo. Vi ankaux vidos ion kiel Servo Persons, kion mi kredas estas kodo 503. Kaj Gateway Timeout-- se vi iam havis paĝo nur sidi tie loading kaj ŝarĝo kaj ŝarĝo kaj vi neniam scias se ĝi tuj ŝarĝo kaj tiam eventuale ĝi ĵus says-- nur rezignas. Tio estas 504 Gateway Tempolimo. La servilo volis ekzekuti via peto, sed io fuŝiĝis sur la servilo side-- ne sur via side-- al kaŭzi ke estos problemo. Nun, ni povus fini la rakonton tie, sed kion mi fakte tuj faros nun Estas mi tuj malfermu mia retumilo kaj montri vin kiel vi eble povos vidi kelkaj el tiuj statuso kodoj eĉ se vi ne ĝenerale vidas ilin. Kaj ni tuj faru tion per prenante Rigardu kelkajn programisto iloj. Bone Do jen mi nun en mia retumilo fenestro. Kaj mi volas lerni iomete pli pri tiuj HTTP petojn. Kiel mi know-- certe ni scias se paĝo goes-- kiam iu eliras malbone, ni preni 404. Ni ĉiuj vidis ke. Ni ne bezonas cxi. Sed kion estas iuj aliaj aĵoj? Kaj kiel ni vidas tiuj petoj en ago? Do unua afero Mi tuj fari estas malfermi Developer Tools. Do Developer Tools estas konstruitaj en plej modernaj foliumiloj kaj nin permesas vidi aferojn ke ni ne alie Konsideru iuj ekstra informo ian esti transdonita sub nia retejo petoj. Mi uzas Google Chrome tie. Kaj malfermi Ellaboranto Iloj en Chrome, vi nur batis F-12, kaj ĝi tuj malfermu suprentiris al la flanko. Iam mi tajpas la peton, mi zomi en tial ni povas vidi kio okazas tie. Sed kion mi tuj faros en mia retumilo bari is-- kaj Mi zomi en super here-- Mi petegas www.google.com. Ni ĉiuj probable faris tiu peto antaŭe. Mi tuj batis Enter. Nun, ĉi tie en mia Developer Iloj, mi elektis la Reto langeto. Kaj vi rimarkos multajn aferojn ĉi tie. Rigardu these-- 200 OK, 200 OK, iuj de tiuj statuso kodoj venanta supre. Mi ne scias kial mi ricevas 302 Found. Mi ne komprenis ke mi vidus tiu. Sed esence rimarki ke bela da, laŭ mia Google request-- Mi faris tre simplan peto por Google paĝo. Kaj en la procezo de transdonante mian peton, Google ŝajne faris multon de aliaj petoj por mi. Sed Mi faris get peton pri Google paĝo kaj mi ricevas multajn 200 Oks. Mi ne vidante 200 OK sur mia ekrano, sed mi ricevas multajn petojn kiuj estis faritaj. Unu pli ke mi estas bela certas tuj labori is-- por tiuj el vi kiuj Estas vere malnova lernejo, vi sciu ke Facebook estis Ne ĉiam ĉe Facebook.com. En ĝiaj fruaj tagoj ĝi estis ĉe wwww.thefacebook.com. Ili ŝajne ne povis akiri aliron al Facebook.com por multa tempo. Kaj tiel kion mi atendas tie estas akiri informon. Kaj ni vidos se ĉi sukcesos. Kion mi atendas ĉi tie estas akiri informojn ke Facebook movis konstante el thefacebook.com al Facebook.com. Do mi atendas ie proksima al la supro de mia petoj super mia Ellaboranto Iloj akiri 301 sciigo ke Facebook movis konstante. Denove, mi ne volas vidi 301 sur mia retumilo ekrano. Kaj ĉar ĝi estas 301, ĝi estas permanenta movado. Mia retumilo, estante tiu ĝi estas moderna retumilo, estas probable tuj redirect min Facebook.com ĉiuokaze. Sed ni vidu kio okazas. Kaj nun mi tuj iri al thefacebook.com. Kaj Yep, tie ĝi estas ĝuste ĉe la supro. Ĝi foriris, sed estis tie. Lasu min rulumi supren tie. Ĝuste tie supre. Mi petis thefacebook.com, kaj mi ricevas respondon ke ĉi paĝon movis konstante. Kaj tiam tie estas 307 interna alidirektadon. Kaj tiel tio estas kion havas reale movis min al la multe pli familiara www.facebook.com. Tiuj respondo kodoj fari ankoraŭ okazi, eĉ se ni ne komprenas ilin. Mi ne tuj ilustri 401, 403, 404, ĉar vi probable vidis tiuj ĉe diversaj punktoj. Kaj 500, mi nur estus speco of-- ni akirus bonŝanca se akiris 500 ĉar ni ne scias kion serviloj estas nuntempe malsupren ie. Sed tiuj kodoj fari ekzistas, kaj tie estas vojo aliri ilin eĉ se ni ne vidas ilin propraokule sur niaj sistemoj. Mi Doug Lloyd. Jen CS50.