>> 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.