SPEAKER: Pojďme se bavit o další protocol-- Hypertext Transfer Protokol, nebo HTTP. Takže jsme mluvili o IP a TCP v předešlých videí. A to jsou protokoly že diktovat, jak informace se pohybuje od stroje ke stroji a program od programu nebo služby do provozu přes internet, prostřednictvím Tato síť routerů a strojů. Ale to obvykle není celý snímek, je to tak? Obvykle, když jsme se poslat informace, program itself-- když data obdržel, řekněme, například, v e-mailu přes TCP port 25 nebo jeho webové stránky žádost přes port 80, tam je obvykle systém pravidel existuje zpracovat to, co jsem právě dostal. A HTTP je příklad právě takové protokolu. HTTP je jediný protokol aplikační vrstvy že budeme mluvit. Ale to je další sada pravidel diktovat, jak informace mají být předávány a zpracovávány prostřednictvím internetu. Zejména, HTTP určuje, jak přesně jeden musí požádat o webové stránky a přesně, jak server, stroj který je hostitelem webové stránky, dodává, že informace zpět ke klientům. Takže tento protokol není vlastně nic dělat s tím, jak informace se pohybuje z bodu A do bodu B. Je to opravdu systém pravidel for-- je to v podstatě pravidla angažovanost pro práci s webovou stránku, podobně jako když někdo vlny svou ruku na vás, jste měl zamávat zpět. To je něco jako konvenční člověk protokol. HTTP protokol jen říká, pokud Chcete-li požádat o web stránky, ujistěte se, že je formát vzhled jako tohle-- Něco jako formátování obchodní dopis, například. A odpověď bude podobně přicházejí podle tohoto protokolu. K dispozici jsou další aplikační vrstvy protokoly že my nebudeme mluvit o tom, v videí. Ale tito zahrnují věci jako File Transfer Protocol, Simple Mail Transfer Protocol pro odesílání e-mailů, distribuce dat Servis, Remote Desktop Protokol, RDP, který se používá, pokud chcete vzdálený přístup váš počítač z jiného počítače, XMPP, což je často známý jako Jabber, nebo chatu, tak toto je protokol pro používání služeb chatu. A existuje mnoho, mnoho, mnoho dalších. Takže pokaždé, když používáte služba, služba očekává informace , které mají být received-- žádost být received-- v velmi zvláštní formát a je povinen vrátí informace zpět ve velmi konkrétním formátu stejně. Takže pojďme zpět k našemu ilustrace z nás chtěl promluvit k internetu. Takže jsme šťastní, a chceme jít do cats.com, že jo? Takže když jsme si povídali na cats.com, mohli bychom říci něco jako hej, Vidím svou domovskou stránku? A cats.com bude pravděpodobně reagovat, jo, jistě. Tady máš. Tak to je člověk druh z ask-a-odpověď. Co to vypadat v HTTP? No, je to vlastně druh překládá docela čistě na něco takového. Mohli bychom říci, GET / HTTP / 1.1 z hostitelského cats.com. Takže v podstatě to, co dělám, je tady žádá webové stránky www.cats.com/~~pobj. Obvykle jsme vynechat lomítko v dnešní době, že by ale stejně znamenat cats.com domovskou stránku. Jo, a mimochodem, já jdu že používáte verzi protokolu HTTP 1.1 s vámi komunikovat. To je druh analogické říkat, stejně jako, mimochodem, Budu mluvit ve francouzštině, nebo jen tak mimochodem, Já budu mluvit v angličtině. To je jen formát protokolu. Je to také 1,0, což je ne běžně používat. Takže jsem mluvil protokolu HTTP 1.1, a Rád bych www.cats.com/~~dobj. Prosím, že pro mě. A pak je tu další informace, too-- tečka, tečka, tečka tam, což je informace o kdo jste tak cats.com by vědět, kam poslat. Ale to jsou dva druh kritických částí na samém začátku z HTTP request-- stejně jako když zahájíte písmeno říkáš, drahá, prázdný. To je velmi podobný v duchu na to. A pokud cats.com bude říkají, oh, jistě, tady to máte. Mohou reagovat jako tohle-- Jsem také reagovat. Také mluvím protokolu HTTP 1.1. Vaše žádost schválena, 200 OK. Co jste asi přijímat je HTML a pak dot, dot, dot nějaké další informace. A na samém dně požadavek je vlastně HTML, značkovací jazyk se Obsah cats.com domovské stránky. Takže HTTP / 1.1-- Beru na vědomí Váš žádost byla přijata prostřednictvím protokolu HTTP 1.1. Váš požadavek byl schválen. Můžu vám to, co chcete, 200 OK. Chystáte se přijímat HTML. A pak tady je HTML, které jste požadovali. Ale někdy naše požadavky nemají vždy jít zcela podle plánu. Mohu vidět váš cats.html stránku? No, co když říkají, my nemají stránky cats.html, což se zdá být trochu nereálné proto, že jsou cats.com. Člověk by si myslel, že bude mít cats.html. Ale na tlačítko OK. Tak tohle je trochu z konvenční lidské interakce Nyní jsme měli s cats.com. Jak to, že přeložit? To by mohlo být něco, co znáte. Náš požadavek vypadal přesně stejný, s výjimkou toho, jak se dostat lomítka jsme nyní dostává cats.html. Takže co teď v podstatě celý tento Požadavek říká se, prosím dej mi www.cats.com/cats.html. Takže hostitelem a středu součástí tohoto horním řádku tam přesně uvedeno, co strana žádám. Cats.com v tomto případě, ale nebude aby byl schopen reagovat pozitivně. Nevědí, že mluvíme o. A tak to je něco, co může mít Viděl before-- HTTP 1.1 404 Not Found. Nemohl jsem najít to, co ses ptal na. Mimochodem, budu vám zpět část HTML, a obvykle, že HTML je obsah některých 404 stránky. A v případě cats.com, je to asi některé roztomilé kočky v koši s smutná 404 tvář vedle nich, protože jste bude smutné, když se nechcete dostat stránku které jste hledali. Je to něco jako základy, co je to protokol, požadavky protokolu HTTP vypadá jako. Jsou to opravdu podobné, jak by podobné interakce v pouhých lidských úmluvách žádat o něco a dostat ji zpět nebo zápisu písmeno a očekává odpověď Dopis v určitém formátu. To je docela hodně, co HTTP je jen canonicalizing pro všechna zařízení, která chtějí přístup webové stránky, hypertextové převody. Tak řada formě, toho metoda požadavku cílové HTTP verze, se nazývá požadavku HTTP linku. Je to obvykle první věc, která je přenášené jako součást požadavku HTTP nebo pokud se ptáte pro HTTP. Je to něco jako, jak jsem řekl, řekl milý, prázdný nahoře Vašeho dopisu. Vědí, že jsi psaní jim dopis. Tak to je velmi podobné se říká, já vím, že děláte požadavek HTTP a to je zvláštní formát oni žádají. Verze HTTP je pravděpodobně vždycky bude HTTP / 1/1. 1,0 také existuje, ale není opravdu používat. Pro účely CS50, GET je pravděpodobně vždy co jste bude použití, když jste vlastně předkládání žádostí o přímé HTTP. Ale POST je další možnost, že jsme nebude mluvit o právě teď. A pak request-cíl co stránky na serveru hostitele chcete se dostat. Jak jsem řekl, že název hostitele je samostatný řádek, obvykle druhý řádek celkového požadavku. A tak dohromady, hostitele jméno a cílová žádost specifikovat konkrétní zdroj žádá. V našem příkladu 404 před druhým, I ptal znovu www.cats.com, cats.com bytí hostitel. A v mém řádku požadavku, Řekl jsem /cats.html. To byl můj cíl žádost. Takže celkově jsem se ptal pro obsah nebo zdroj umístěný na www.cats.com/cats.html~~pobj. A pak se na základě toho, zda prostředek existuje a zda server může přinést zdroj na základě klienta Požadavek, můžete dostat Různé Stavové kódy zpět. Některé z těchto stavových kódů, které jste viděli protože jsou součástí odpovědi. Některé z nich, 200 OK, jsou asi dost tichý. Vy jste pravděpodobně nikdy neviděl stránka reagovat 200 OK. Prostě si stránku. Není to jako chybu 404, což je obvykle docela jasné. Ty obvykle vidět, že se říká, že 404. Tak pojďme mluvit o tom, co někteří z těchto stavových kódů by mohl být. Opět platí, že když server reaguje na nás, že jsou bude reagovat HTTP stav verze. Obvykle HTTP / 1.1. Jaké jsou tyto kódy stavu bude? No, mohli bychom získat úspěch. Takže v kategorii úspěchu, my mohl dostat kód 200 s textem OK. Co to znamená? No, všechno je dobré. Udělal jsi platnou žádost. Tady je platná odpověď. Byl jsem schopen dodat přesně to, co jste chtěli. Někdy se můžete dostat jiné věci že nebudete všimnete hned ale jsou poněkud selhání. Jsou to tzv přesměrování. Tam jsou dva obyčejné zde. 301 Moved Permanently-- co to v podstatě znamená, je stránka je nyní na novém místě. To bude žít navždy. A většina prohlížečů automaticky přesměruje. Takže jste nikdy opravdu vidět 301, a to buď, pokud nejste s použitím skutečně out-of-date prohlížeč, případně protože odpověď 301 je součástí tečka, tečka, tečka odpovědi 301. Také vám řekne, kde je nová stránka je. A tak většina prohlížečů Jen přesměrovat vás tam, za předpokladu, že chcete jít tam. Někdy budete také získat 302 Found. A to ten, který vlastně Možná ještě vidět občas. Někdy stránek dočasně přesunout. Takže to nebude být postaven do žádost říká prohlížeč Pro trvalou změnu kdykoliv to vidí požadavek, aby vám aby ji změnit na něco jiného. Takže můžete vidět 302 Nalezeno, který v podstatě říká, že tato strana bydlí někde jinde. Ale je to nebude žít tam navždy. To bude nakonec asi jít zpátky tam, kde si myslíte, že to je. Pak budete dělat věci jako chyby klienta. Tak to jsou ty, které jste pravděpodobně viděli, teď. Pravděpodobně jste ještě neviděli 200S nebo jejich 300S, ale budete pravděpodobně obeznámený s 400s. A to je to, co budeme mluvit asi v druhé, 500s stejně. Ty by mohly vidět 401 neoprávněný. Obvykle to znamená, že jste pokusu o přístup na stránku, ale ještě není přihlášen. Tak si vyzkoušet a jít do nějaké profilu nebo něco na Facebooku nebo při pokusu a přístup some-- jste v práci. Snažíte se něco přístup na svou práci v internetu, ale nejste přihlášeni. Nemůžeš vidět stránky. Ty by mohly získat 401 neautorizovaný, což znamená, že jsme pravděpodobně bude schopen uspokojit tento požadavek, ale nejprve se musíte přihlásit, aby tak učinily. Naopak, můžete dostat 403 Forbidden, což je to opravdu není jedno, jestli jste přihlášeni či nikoli. Tento požadavek není povoleno. Prostředek na serveru existuje. Ale nejste oprávněni k přístupu k nim. To je obvykle vnitřní soubory, které žít na serveru z různých důvodů ale nejsou zamýšleny jako přístupné od vnějšího světa, a tak oni jsou zakázány. Žijí tam. Neříkám, že nemohu najít. Ale já říkám, nemůžu ho dát. A to v případě, nevadí jste přihlášeni či nikoli. A pak samozřejmě, velmi časté 404 Not Found. Soubor neexistuje na serveru. Rád bych, aby splňovaly vaše žádost, ale nejde to. Můžete také někdy vidět serveru Chyby, nejčastější obecně je 500 Internal Server Error, který není ve skutečnosti ti něco vůbec o tom, co se pokazilo. Ale není to vlastně děláš chyba ve vaší žádosti. Je to vlastně server selhání dodat na vyžádání nějak. Takže 500 je obecná odpověď. Uvidíte také něco jako Služba není k dispozici, které podle mého názoru, je kód 503. A brána Timeout-- pokud jste někdy měli stránku právě sedět a načítání načítání a načítání a nikdy nevíte, jestli to bude zatížení a nakonec to prostě says-- prostě vzdá. To je 504 brány Časový limit. Server chtěl vykonat svou žádost, ale něco pokazilo na side-- serveru ne na vaší side-- do způsobit, že být problém. Teď, mohli bychom skončit příběh tady, ale to, co jsem vlastně dělat teď Je Jdu otevřít můj prohlížeč a ukázat vám, jak byste měli být schopni vidět některé z těchto stavových kódů i když nemáte obvykle vidět. A budeme dělat, že tím, že Podívejte se na některé vývojářských nástrojů. Dobře Tak jsem tady nyní v mém okně prohlížeče. A chci se naučit trochu Více informací o těchto HTTP požadavků. Jak mohu víš-- určitě víme, v případě, že strana goes-- když se něco pokazí, dostaneme 404. Všichni jsme viděli, že. Nepotřebujeme, aby ukazují, že. Ale to, co jsou některé ty ostatní? A jak bychom vidět Tyto požadavky v akci? Takže první věc, kterou budu udělat, je otevřít nástroje pro vývojáře. Takže Vývojářské nástroje jsou postaveny do většiny moderních prohlížečů a umožní nám vidět věci že děláme jinak see-- nějaké extra informace druh přenášené pod našem webu Žádosti. Já používám zde Google Chrome. A k otevření nástroje pro vývojáře v Chrome, stačí hit F-12, a bude to otevřít it up na boku. Jednou jsem zadejte požadavek, budu přiblížit takže můžete vidět, co se tady děje. Ale to, co budu dělat ve svém prohlížeči bar je-- a já přiblížit více než here-- Učiním požadavek na www.google.com. Všichni jsme pravděpodobně vyrobený tato žádost předtím. Budu stiskněte klávesu Enter. A teď, tady v mém Developer Nástroje, jsem zvolil na kartu Síť. A zjistíte, spoustu věcí zde. Podívejte se na these-- 200 OK, OK 200, někteří z těchto stavových kódů blíží. Nevím, proč jsem stále 302 Found. Neuvědomil jsem si, že bych vidět, že jeden. Ale v podstatě si všimnout, že docela hodně, pokud jde o mé request-- Google Udělal jsem velmi jednoduchý Žádost o stránku Google. A v procesu dodávání mou žádost, Google zřejmě udělal hodně dalších žádostí mým jménem. Ale já jsem podal žádost get s Googlem strana a já jsem stále hodně 200 OKS. Nevidím 200 OK na displej, ale já začínám mnoho požadavků, které byly provedeny. Ještě jeden, že jsem docela jisti, že bude fungovat je-- pro ty z vás, kteří jsou opravdu staré školy, abyste věděli, že Facebook byl ne vždy na Facebook.com. Ve svých počátcích bylo na wwww.thefacebook.com. Oni zřejmě nemohli získat přístup na Facebook.com za pěknou chvíli trvat. A tak to, co jsem očekával, Zde je získat informace. A uvidíme, jestli to pánve ven. Co čekám zde je získat informace že Facebook se přestěhovala natrvalo od thefacebook.com na Facebook.com. Takže jsem očekával někde blízko vrcholu svých požadavků více než v mých Developer Tools dostávat upozornění 301 že Facebook se přestěhoval natrvalo. Opět platí, že nebudu vidět 301 Na obrazovce prohlížeče. A protože je to o 301, je to trvalý tah. Můj prohlížeč, je, že je to moderní prohlížeče, se pravděpodobně bude přesměrování abych Facebook.com tak jako tak. Ale uvidíme, co se stane. A teď budu přejít na thefacebook.com. A jo, tady to je přímo na vrcholu. Šlo to pryč, ale bylo to tam. Dovolte mi, abych přejděte sem. Právě tady nahoře. Udělal jsem žádost thefacebook.com, a já začínám odpověď že tato stránka byla natrvalo přestěhoval. A pak je zde 307 interní přesměrování. A tak to je to, co má vlastně stěhoval mě k mnohem povědomý www.facebook.com. Takže tyto kódy odezvy udělat ještě se stalo, i když je nevidíme. Nebudu se ilustrují 401, 403, 404, protože jste pravděpodobně viděli ty, na různých místech. A 500, já bych prostě být druh of-- bychom mít štěstí pokud dostal 500, protože nevíme, co servery jsou kdekoliv v současné době dolů. Ale tyto kódy dělat existují, a tam je cesta přístup k nim, i když to neuděláme vidět na vlastní oči v našich systémech. Jsem Doug Lloyd. To je CS50.