>> SPEAKER: Razgovarajmo o drugo protocol-- HyperText Transfer
Protokol, ili HTTP.
Tako smo razgovarali o IP i TCP prethodnih videa.
A oni su protokoli koji diktiraju kako informacije
kreće od stroja do stroja i od programa do programa ili usluge
za uslugu putem interneta, preko Ova mreža usmjerivač i strojeva.
>> Ali to obično nisu cijela slika, zar ne?
Obično kada smo poslali informacije, program
itself-- kada podaci primili, recimo, na primjer,
u e-mail preko TCP port 25 ili njegove Zahtjev web stranice preko porta 80,
obično postoji sustav pravila postoji obraditi ono što sam upravo primio.
I HTTP je primjer od samo takve protokola.
>> HTTP jedini protokol aplikacijski sloj
da ćemo razgovarati o tome.
Ali, to je još jedan skup pravila diktiraju kako
informacije koje se prenose i obrađuju putem interneta.
Konkretno, HTTP navodi kako je točno
mora podnijeti zahtjev za web-stranica i točno kako
poslužitelja, stroj koje domaćini web stranice,
donosi tu informaciju natrag klijentima.
>> Dakle, ovaj protokol ne zapravo ništa
učiniti s koliko informacija kreće od točke A
do točke B. To je stvarno sustav pravila
for-- to je u osnovi pravila angažman za rad s web stranice,
slično kad netko Valovi svoje ruke na vas,
ti si trebao uzvratio.
To je neka vrsta konvencionalna ljudski protokol.
HTTP protokol jednostavno kaže, ako Želite li zatražiti web
stranica, provjerite je li vaš format izgleda kao this-- Nešto poput oblikovanja
poslovno pismo, npr.
A odgovor će na sličan način dolaze prema ovom protokolu.
Postoje i druge aplikacijski sloj protokola
da mi se ne ide na razgovarati o u spotovima.
No, to uključuje stvari kao što su File Transfer Protocol,
Simple Mail Transfer Protokol slanje e-pošte, Distribucija podataka
Usluga, Remote Desktop Protokol, RDP, koji
koristi ako želite daljinski pristup računalo s drugog računala,
XMPP, što je često poznat kao Jabber ili chata,
pa to je protokol za korištenje chat usluge.
A tu su i mnogi, mnogi, mnogi drugi.
>> Zato svaki put kada koristite usluga, usluga
očekuje podatke biti received-- zahtjev
biti received-- u vrlo posebno formatu
te je potrebno da vratiti podatke natrag
na poseban oblik i.
>> Tako ćemo se vratiti na našem crtežu od nas želi razgovarati s interneta.
Tako smo sretni i želimo ići na cats.com, zar ne?
Dakle, ako mi samo govorimo da cats.com, mogli bismo reći nešto poput hej,
mogu vidjeti vašu početnu stranicu?
I cats.com vjerojatno će odgovoriti, da, sigurno.
Izvoli.
Tako da je ljudsko vrsta ASK-a-odgovor.
>> Što to izgledati u HTTP?
Pa, to je zapravo vrsta prevodi prilično čisto ovako nešto.
Mogli bismo reći GET / HTTP / 1.1 od domaćina cats.com.
Tako je u osnovi ono što ja radim ovdje traži web stranice www.cats.com/~~pobj.
Mi obično izostaviti udarac samo danas, ali to bi
znači cats.com početnu stranicu.
>> Oh, i usput, idem da se pomoću HTTP verziju
1.1 komunicirati s vama.
To je vrsta analogne govoreći, kao što je, usput,
Idem se govori na francuskom, ili na putu,
Ja ću biti govori na engleskom jeziku.
To je samo oblik protokola.
Također je 1,0, što je ne obično koriste više.
Tako sam govorio HTTP 1.1, a Želim www.cats.com/~~dobj.
Molimo dobili da je za mene.
>> A tu je i druge podatke, too-- točka, točka, točka postoji,
što je podatak o tko si tako cats.com
bi znati gdje poslati ga.
No, to su dva vrsta kritičnih dijelova
na samom početku HTTP request--
baš kao kada pokrenete Pismo koje kažu, draga, prazno.
To je vrlo slično u duhu na to.
>> A ako cats.com će kažu, oh, jeste, ovdje te ići.
Oni mogu odgovoriti kao this-- ja sam reagirati.
Također govorim HTTP 1.1.
Vaš zahtjev odobren, 200 OK.
Što ste o dobivaju je HTML, a zatim
točka, točka, točka neke dodatne podatke.
A na samom dnu Zahtjev je zapravo HTML,
označni jezik je Sadržaj cats.com početnu stranicu.
>> Dakle HTTP / 1.1-- sam potvrđujete da Zahtjev je prihvaćen preko HTTP 1.1.
Vaš zahtjev je odobren.
Mogu vam dati ono što želite, 200 OK.
Vi ste o dobiti HTML.
I onda ovdje je HTML koji ste tražili.
>> Ali ponekad naši zahtjevi ne uvijek ići baš po planu.
Mogu li vidjeti vašu cats.html stranicu?
Pa, što ako oni kažu, mi nemaju stranicu cats.html,
što se čini vrsta nerealno jer oni cats.com.
Čovjek bi pomislio da bi cats.html.
Ali OK.
Dakle, to je vrsta od konvencionalni ljudske interakcije
sada smo imali s cats.com.
Kako to prevesti?
>> To bi moglo biti nešto upoznat s tobom.
Naš zahtjev je izgledao isti, osim umjesto uzimajući slash
sada dobivamo cats.html.
I što sada zapravo to cijelo Zahtjev govori se molim vas dajte mi
www.cats.com/cats.html.
Dakle domaćina i sredine dio tog gornjem retku
Postoji pokazuju upravo ono stranica tražim.
No cats.com u ovom slučaju ne ide biti u mogućnosti odgovoriti pozitivno.
Oni ne znaju što pričaju.
I tako je to nešto što bi moglo imati Vidio before-- HTTP 1.1 404 nije pronađen.
Nisam mogao naći ono što što su tražili.
Usput, ja ću vam dati natrag neke HTML, i obično to HTML
je sadržaj nekih 404 stranica.
A u slučaju cats.com, to je vjerojatno
neke slatka mačke u košari s tužno 404 lice pored njih,
jer ti ćeš biti tužna kada ne dobijete stranicu
da ste bili u potrazi za.
>> To je vrsta osnovama što protokol, zahtjevi HTTP protokol
izgledati.
Oni su jako slični kako smo bi sličan interakciju
u samo ljudskim konvencijama tražeći nešto
i uzimajući ga natrag ili pisanje pismo i očekuju odgovor
pismo u određenom formatu.
To je ljepušan velik dio onoga što HTTP je samo canonicalizing
za sve uređaje koje žele pristupiti web stranice, hipertekst transferi.
>> Dakle linija obliku, to Metoda zahtjev meta HTTP verziju,
zove HTTP zahtjev liniju.
To je obično prva stvar koja je prenosi kao dio HTTP zahtjev
ili ako tražimo za HTTP.
To je vrsta kao što, kao što sam rekao, govoreći draga, prazno na vrhu vaše pismo.
Oni znaju da si pisanje im pismo.
Dakle, to je vrlo sličan kako kaže, ja znam
da oni što HTTP zahtjev i to je posebno oblik
oni traže.
>> HTTP verziju je vjerojatno Uvijek će biti HTTP / 1/1.
1,0 također postoji, ali se ne stvarno koristi više.
Za potrebe CS50, GET je vjerojatno uvijek
ono što će biti koristite kad ste zapravo
obavljanje izravne HTTP zahtjeve.
Ali POST je još jedna mogućnost da smo ne ide razgovarati o sada.
A onda je zahtjev-meta ono stranicu na domaćina poslužitelj
želite dobiti.
Kao što sam rekao, da je ime računala je zasebna linija, najčešće
U drugom redu od ukupnog zahtjeva.
I tako uzeti zajedno, domaćin ime i meta zahtjev
odrediti specifična resurs se traži.
U našem primjeru 404 sekunde prije, sam ponovno traži www.cats.com,
cats.com biti domaćin.
I u mom zahtjev liniji, Rekao sam /cats.html.
To je moja ciljna zahtjev.
Dakle, sveukupno sam pitao za sadržaj ili resurs
na www.cats.com/cats.html~~pobj.
>> I onda na temelju bilo resurs postoji
i da li poslužitelj može isporučiti resurs temelju klijenta
Zahtjev, možda ćete dobiti različite šifre statusa natrag.
Neke od ovih šifri statusa koje ste vidjeli jer oni su dio odgovora.
Neki od njih, 200 je u redu, su vjerojatno prilično tiha.
Vjerojatno ste nikada nije vidio stranica 200 odgovorite OK.
Vi samo dobiti stranicu.
To nije kao pogrešku 404, što je obično prilično jasno.
Obično se vidi da ona kaže 404.
>> Dakle, pričajmo o tome što su neki tih statusnih kodova moglo biti.
Opet, kada server odgovara na nas, oni su
će odgovoriti HTTP statusa verzije.
Obično HTTP / 1.1.
Koje su to šifre statusa će biti?
Pa, mogli bismo dobiti uspjeh.
Tako je u kategoriji uspjeh, mi može dobiti kod 200 s tekstom OK.
Što to znači?
Pa, sve je dobro.
Ti su valjani zahtjev.
Evo valjan odgovor.
Bio sam u mogućnosti da dostavi točno ono što ste htjeli.
>> Ponekad možda ćete dobiti druge stvari da nećete primijetiti odmah
ali su nešto neuspjesi.
Oni se nazivaju preusmjeravanja.
Postoje dvije zajedničke one ovdje.
301 premjeĹĄteni Permanently-- Što to zapravo znači
je stranica sada na novoj lokaciji.
Ona će tamo živjeti zauvijek.
I većina preglednici vas automatski preusmjeriti.
Tako da nikada nećete zaista vidjeti 301, ili, ako nisi
koristite stvarno out-of-date preglednik, eventualno,
jer je 301 odgovor dio točka, točka, točka od 301 odgovora.
To vam također govori gdje je nova stranica je.
I tako Većina preglednika Samo vas preusmjeriti tamo,
uz pretpostavku da želite ići tamo.
>> Ponekad ćete također dobiti 302 pronađeno.
A ovaj što zapravo Možda još vidjeti povremeno.
Ponekad stranice premjestiti privremeno.
Dakle, to neće biti izgrađen u zahtjev reći preglednik
trajno promijeniti u bilo koje vrijeme vidi zahtjev da vas
čine ga promijeniti u nešto drugo.
Tako možete vidjeti 302 Pronađeno, koji u osnovi
kaže ovu stranicu živi negdje drugdje.
Ali to neće tamo živjeti vječno.
To će na kraju vjerojatno ići tamo gdje misliš da je.
>> Tada ćete dobiti stvari kao klijent pogreške.
Dakle, to su oni koje ste vjerojatno vidjeli, sada.
Vjerojatno niste vidjeli su 200s ili 300S,
ali vjerojatno ste upoznati s 400s.
I to je ono što ćemo govoriti o u sekundi, 500S, kao dobro.
>> Možda ćete vidjeti 401 Neovlaštena.
Obično to znači da ste Pokušavam pristupiti stranici,
ali niste prijavljeni.
Dakle, probati i ići na neke profil ili nešto na Facebooku
ili ste probati i pristup some-- ste na poslu.
Pokušavate pristupiti nešto na posao je internet,
ali niste prijavljeni.
Ne možete vidjeti stranicu.
Možda ćete dobiti 401 neovlašteno, što znači da je vjerojatno
će biti u stanju zadovoljiti ovaj zahtjev, ali prvo trebate prijaviti za to.
>> Isto tako, možda ćete dobiti 403 Zabranjeni, što je to zapravo ne
bitno ako ste prijavljeni ili ne.
Ovaj zahtjev nije dopušteno.
Resurs postoji na poslužitelju.
Ali ne smiju pristupiti.
To je obično interni datoteke koje živjeti na poslužitelju raznih razloga
ali nisu namijenjeni da budu pristupiti iz vanjskog svijeta,
pa im je zabranjeno.
Oni tamo žive.
Ne kažem ja ne mogu ga naći.
Ali ja govorim da ne mogu dati.
I nije važno ako ste prijavljeni ili ne.
I onda naravno, vrlo čest 404 nije pronađen.
Datoteka ne postoji na poslužitelju.
Želio bih zadovoljio Vaš zahtjev, ali ne mogu.
>> Također se ponekad vidjeti poslužitelj pogreške, najčešći općenito
se 500 Interna pogreška poslužitelja, koji ne zapravo vam reći ništa
uopće o tome što je pošlo po zlu.
Ali to nije zapravo radite pogreška u vašem zahtjevu.
To je zapravo server nije dostaviti na zahtjev nekako.
Dakle 500 je opći odgovor.
>> Također ćete vidjeti nešto kao i usluge nedostupan,
što vjerujem da je broj 503.
I Gateway Timeout-- ako ste ikada imali stranicu samo
sjediti utovar i utovar i utovar
i nikad ne znate ako će se opterećenja i onda na kraju to samo says--
Samo odustaje.
To je 504 Gateway Timeout.
Poslužitelj htjela izvršiti vaš zahtjev,
ali nešto je pošlo po krivu na poslužitelju side--
nije na side-- na uzrokovati da se problem.
Sada smo mogli završiti priču ovdje, ali ono što sam zapravo ću učiniti sada
je ću otvoriti moj preglednik i pokazati
kako biste mogli vidjeti neki od tih kodova statusa
čak i ako ne općenito ih vidjeli.
A što ćemo učiniti da se Pogledajte neke razvojne alate.
>> Dobro Dakle, ovdje sam Sada je u mom prozoru preglednika.
I ja želim naučiti malo više o tim HTTP zahtjeva.
Kako know-- sigurno znamo je li Stranica goes-- kada nešto pođe po zlu,
smo dobili 404.
Svi smo vidjeli da je.
Mi ne treba da ilustriraju da.
No, ono što su neke druge one?
A kako bi smo vidjeli ti zahtjevi u akciji?
>> Dakle, prva stvar koju ću učiniti je otvoriti razvojne alate.
Dakle, Razvojni alati su izgradili u većini modernih preglednika
i omogućiti nam da vidimo stvari da mi nije drugačije
see-- neke dodatne informacije vrsta prenosi ispod naše web
zahtjevi.
Ja sam koristeći Google Chrome ovdje.
I otvoriti razvojne alate u Chrome, samo pritisnite F-12,
i to će otvoriti to se na strani.
Jednom sam upišite zahtjev, ja ću uvećanje tako da možemo vidjeti što se ovdje događa.
Ali što ću raditi u svom pregledniku bar is-- i ja ću zumiranje tijekom here--
Ja ću napraviti zahtjev www.google.com.
Svi smo vjerojatno napravili ovaj zahtjev prije.
Idem pritisnite Enter.
>> Sada, ovdje u mom razvijanja Alati, ja sam izabrao karticu Network.
I primijetite puno stvari ovdje.
Pogledajte these-- 200 OK, OK, neka 200 tih kodova statusa dolaze.
Ne znam zašto sam uzimajući 302 Pronađeno.
Nisam znala da ću vidjeti tu jednu.
Ali zapravo primijetiti da lijepa mnogo, u smislu mog Google request--
Napravila sam vrlo jednostavan Zahtjev za Googleovu stranicu.
I u procesu isporukom moj zahtjev,
Google navodno je napravio puno drugih zahtjeva u moje ime.
>> Ali ja sam napravio GET zahtjev za Googlea stranica i ja sam uzimajući puno 200 Oks.
Ne vidim 200 OK na moj zaslon, ali ja sam sve
puno zahtjeva koje su napravljene.
Jedan više da sam lijepa sigurno ide na posao
is-- za one od vas koji su stvarno stare škole,
znate da je Facebook ne uvijek na Facebook.com.
U svojim ranim danima bilo je na wwww.thefacebook.com.
Oni očito nisu mogli dobiti pristup na Facebook.com dosta za neko vrijeme.
>> I tako ono što sam očekivao Ovdje je dobiti informacije.
Pa ćemo vidjeti je li to tave van.
Što sam očekivao ovdje je dobiti podatke
da je Facebook je trajno preseljena od thefacebook.com na Facebook.com.
Dakle, ja sam očekivao negdje pri vrhu moje zahtjeve
više u mojim Razvojni alati dobiti 301 obavijest
da je Facebook je preselio trajno.
Opet, neću vidjeti 301 na mom preglednika zaslonu.
I zato što je 301, to je stalni potez.
Moj preglednik, kao da je To je moderan preglednik,
vjerojatno će preusmjeriti mi Facebook.com svejedno.
Ali da vidimo što se događa.
>> A sada ću ići thefacebook.com.
I Yep, tu je pravo na vrhu.
Ona ode, ali bilo je tamo.
Dopustite mi dođite ovdje.
Upravo ovdje na vrhu.
Napravila sam zahtjev thefacebook.com, i ja dobijam odgovor
da je ova stranica je trajno preseljena.
A onda 307 ovdje interni preusmjeravanje.
I tako to je ono što je zapravo me preselio u mnogo više
upoznati www.facebook.com.
>> Tako su ti kodovi odgovora učiniti još dogoditi, čak i ako ih ne vidim.
Neću se ilustriraju 401, 403, 404,
jer ste vjerojatno vidjeli one na raznim mjestima.
A 500, ja bi samo biti vrsta of-- bismo se posreći
ako je dobio 500, jer mi ne znamo što je poslužitelji su trenutačno dolje gdje.
Ali ovi kodovi napraviti postoje, a tu je i način
kako im pristupiti, čak i ako to ne učinimo ih iz prve ruke vidjeti u našim sustavima.
Ja sam Doug Lloyd.
Ovo je CS50.