Vorbitor: Să vorbim despre un alt protocol-- Transfer Hypertext Protocol, sau HTTP. Deci am vorbit despre IP și TCP in videoclipuri anterioare. Iar acestea sunt protocoale care dicta modul în care informațiile se mută la mașină la mașină și la program la program sau serviciu la serviciul prin internet, prin intermediul această rețea de routere si masini. Dar asta nu e, de obicei, întreaga imagine, nu? De obicei, atunci când ne trimite informații, programul itself-- atunci când datele sunt primit, să zicem, de exemplu, în e-mail prin intermediul portului TCP 25 sau o cerere pagină web prin portul 80, există, de obicei, un sistem de reguli acolo pentru a procesa ceea ce tocmai am primit. Și HTTP este un exemplu de doar un astfel de protocol. HTTP este singurul protocolului stratului de aplicație că vom vorbi despre. Dar este un alt set a normelor dicteze cum informații care trebuie transmise și prelucrate prin intermediul internetului. În special, HTTP specifica exact cum o trebuie să facă o cerere de o pagină web și exact cum un server, o mașină care găzduiește pagini web, ofera aceste informații înapoi la clienti. Deci, acest protocol nu de fapt, au nimic de a face cu modul în care informațiile se mută de la punctul A la punctul B. Este într-adevăr sistemul de norme for-- este practic regulile de angajament pentru a lucra cu o pagina web, similar cu atunci când cineva valuri mâna lor la tine, tu ar trebui să val înapoi. Asta e un fel de protocol uman convențional. Protocolul HTTP doar spune, în cazul în care doriți să solicitați un web pagină, asigurați-vă că aspectul dvs. de format ca asta: un fel de formatare cum ar fi o scrisoare de afaceri, de exemplu. Și răspunsul va în mod similar vin în conformitate cu acest protocol. Există alte protocoale strat de aplicare că nu suntem de gând să vorbesc despre în video. Dar acestea includ lucruri cum ar fi File Transfer Protocol, Simple Mail Transfer Protocol pentru trimiterea de emailuri, distribuirea de date Service, Remote Desktop Protocol, RDP, care este utilizat în cazul în care doriți să acces de la distanță computerul de la un alt calculator, XMPP, care este în mod frecvent cunoscut sub numele de Jabber sau chat-ul, astfel încât acesta este protocolul pentru utilizarea serviciilor de chat. Și acolo sunt multe, multe, multe altele. Deci de fiecare dată când utilizați un serviciu, serviciul așteaptă informații să fie received-- o cerere să fie într-o received-- format special foarte și i se cere să reveni informații înapoi într-o foarte special format, de asemenea. Deci, să ne întoarcem la ilustrația noastră dintre noi care doresc să vorbească la internet. Deci suntem fericiți, și ne-o dorim pentru a merge la cats.com, nu? Deci, dacă suntem doar vorbesc cu cats.com, am putea spune ceva de genul hei, pot vedea pagina de start? Și, probabil, va cats.com răspunde, da, sigur. Poftim. Așa că e un fel uman de cer-și-răspuns. Ce înseamnă acest arata ca in HTTP? Ei bine, de fapt un fel de traduce destul de curat la ceva de genul asta. Am putea spune GET / HTTP / 1.1 din cats.com gazdă. Deci, practic ceea ce fac aici este cere pagina web www.cats.com/~~state=definite. De obicei omite slash în zilele noastre, dar care ar tocmai Adică pagină cats.com lui. Oh, și apropo, am de gând pentru a fi utilizați versiunea HTTP 1.1 pentru a comunica cu tine. Asta e un fel de analog spunând, cum ar fi, de altfel, Am de gând să fie vorbind în franceză, sau de altfel, Am de gând să fie vorbind în limba engleză. Asta e doar formatul protocolului. Este, de asemenea, 1,0, care este nu mai frecvent utilizate. Deci Vorbesc HTTP 1.1, și Aș dori www.cats.com/. Vă rugăm să luați asta pentru mine. Și apoi există alte informații, too-- dot, punct, punct acolo, care este o informație despre cine ești atât de cats.com ar ști unde să-l trimită. Dar acestea sunt cele două un fel de piese critice de la bun început unui HTTP request-- la fel ca atunci când începe o scrisoare spui, dragă, gol. Acest lucru este foarte similară în spirit la asta. Și dacă cats.com va spune, oh, sigur, aici te duci. Ei ar putea raspunde ca astea-- Sunt, de asemenea răspunde. Eu vorbesc, de asemenea, HTTP 1.1. Cererea dvs. este aprobată, 200 OK. Ce ești pe cale să primesc este HTML și apoi dot, dot, dot unele informații suplimentare. Și chiar la partea de jos a Cererea este, de fapt HTML, limbajul de markup, The Conținutul homepage cats.com lui. Deci, HTTP / 1.1-- recunosc dvs. Cererea a fost acceptată prin HTTP 1.1. Cererea dvs. a fost aprobată. Vă pot da ceea ce vrei, 200 OK. Ești pe cale să primească HTML. Și apoi aici e HTML pe care ați solicitat. Dar, uneori, cererile noastre nu întotdeauna merge destul conform planului. Pot să văd pagina ta cats.html? Ei bine, ce se întâmplă dacă spun ei, ne-am nu au o pagină cats.html, care pare un fel de nerealistă pentru că sunt cats.com. Ai crede că ar avea cats.html. Dar OK. Deci, aceasta este un fel de interacțiunea umană convențional am avut acum cu cats.com. Cum se traduce? Acest lucru ar putea fi ceva familiar pentru tine. Solicitarea noastră se uită exact la fel, cu excepția în loc de a obține slash ne apropiem acum cats.html. Deci, acum ce practic toată această Cererea spune este va rugam sa ne www.cats.com/cats.html. Deci gazdă și mijloc parte din acea linie de sus acolo indica precis ce pagina Eu cer pentru. Dar cats.com în acest caz nu se va pentru a fi în măsură să răspundă pozitiv. Ei nu știu vorbim despre. Și astfel încât acesta este ceva ce ar putea avea văzut HTTP before-- 1.1 404 Not Found. Nu am putut găsi ceea ce ai cere. Apropo, am de gând să vă dau înapoi o parte HTML, și, de obicei, care HTML este conținutul unora 404 pagini. Și în cazul cats.com, este, probabil, unele pisici drăguț într-un coș cu un trist 404 față lângă ei, pentru că ai de gând să fie trist atunci când nu te pagină pe care le căutați. Asta e un fel de elementele de bază ale ce protocol, cererile protocolul HTTP arată ca. Sunt foarte similar cu modul în care ne ar face o interacțiune similară în convențiile doar umane cere ceva și de asistent spate sau scrie un scrisoare și așteaptă un răspuns scrisoare într-un anumit format. Asta e destul de mult ceea ce HTTP este doar canonicalizing pentru toate dispozitivele care doresc să accesul pagini web, transferuri hypertext. Deci, o linie de forma, aceasta Metoda versiune cerere țintă HTTP, se numeste o linie cerere HTTP. Este, de obicei, primul lucru care este transmise ca parte a o cerere HTTP sau dacă ceri pentru HTTP. E un fel de, cum am spus, spunând dragă, gol în partea de sus scrisoarea dumneavoastră. Ei știu că ești scriindu-le o scrisoare. Deci, acest lucru este foarte asemănătoare a spune, știu pe care le faci o cerere HTTP iar acest lucru este formatul special ei cer. Versiunea HTTP este, probabil, întotdeauna va fi HTTP / 1/1. 1.0 De asemenea, există, dar nu este într-adevăr mai folosit. Pentru scopurile CS50, GET este, probabil, întotdeauna ce ai de gând să fie folosind atunci când sunteți de fapt face cereri HTTP directe. Dar POST este o altă opțiune pe care suntem Nu vorbi despre acum. Și apoi cerere-țintă este ce pagina pe serverul gazdă v-ar dori să obțină. Așa cum am spus, că numele de gazdă este o linie separată, de obicei, a doua linie a cererii globale. Și astfel luate împreună, gazda numele și ținta cerere specifica o anumită resursă căutate. În exemplul nostru 404 în urmă cu o secundă, am cerea din nou pentru www.cats.com, cats.com fiind gazda. Și în linia mea cerere, I-am spus /cats.html. Asta a fost ținta mea cerere. Deci, în general am fost solicitând conținut sau resursa situat la www.cats.com/cats.html. Apoi pe baza faptului dacă există resursa și dacă serverul poate livra resursa în conformitate cu clientului cerere, ar putea obține diverse coduri de stare înapoi. Unele dintre aceste coduri de stare le-ați văzut pentru că sunt o parte a răspunsului. Unii dintre ei, 200 OK, sunt probabil destul de tăcut. Ați văzut, probabil nu o pagină răspunde 200 OK. Trebuie doar a lua pagina. Nu e ca o eroare de 404, care este de obicei destul de clar. De obicei vezi că se spune 404. Deci, hai sa vorbim despre ceea ce unii acestor coduri de stare ar putea fi. Din nou, atunci când serverul răspunde pentru noi, ei sunt O să răspundă statutul versiunea HTTP. De obicei HTTP / 1.1. Ce sunt aceste coduri de stare va fi? Ei bine, am putea obține un succes. Deci în categoria succes, am s-ar putea obține codul 200 cu textul OK. Ce înseamnă acest lucru? Ei bine, totul este bine. Ai făcut o cerere validă. Iată un răspuns valid. Am fost în măsură să livreze exact ceea ce ai vrut. Uneori s-ar putea obține alte lucruri că nu veți observa imediat dar sunt oarecum eșecuri. Sunt numite redirectionari. Există două cele comune aici. 301 Permanently-- Mutat Ce înseamnă acest lucru de fapt este pagina este acum într-o locație nouă. Acesta va trăi acolo pentru totdeauna. Și cele mai multe browsere va te redirecționa automat. Deci tu nu va vedea cu adevărat un 301, fie, daca nu esti folosind un foarte out-of-data browser-ul, eventual, deoarece răspunsul 301 face parte din punctul, punctul, punctul de răspuns 301. De asemenea, vă spune în cazul în care noua pagină este. Și așa cele mai multe browsere va doar redirecționa acolo, presupunând că vrei să mergi acolo. Uneori, veți obține, de asemenea, 302 găsite. Și asta de fapt s-ar putea vedea în continuare ocazional. Uneori paginile muta temporar. Deci, nu va fi construit în cererea spune browser-ului pentru a schimba permanent orice moment vede cererea pe care le face să-l schimbe la altceva. Deci s-ar putea vedea 302 Găsit, care, practic, spune aceasta pagina trăiește în altă parte. Dar nu se va locuiesc acolo pentru totdeauna. În cele din urmă, probabil, va merge înapoi de unde credeți că este. Apoi, veți obține lucruri ca erorile client. Deci, acestea sunt cele pe care le-ați probabil văzut, acum. Tu, probabil, nu s-au văzut de 200S sau 300S, dar tu ești, probabil, familiarizat cu jurul anului 400. Și asta e ceea ce vom vorbi despre un al doilea, de asemenea 500S. S-ar putea vedea 401 neautorizat. De obicei, acest lucru înseamnă că ești încearcă să acceseze o pagină, dar nu v-ați logat. Deci să încercați și du-te la unele profil sau ceva pe Facebook sau să încercați și acces some-- sunteți la locul de muncă. Încerci să acceseze ceva pe internet munca ta, dar nu esti logat. Nu puteți vedea pagina. S-ar putea obține un 401 neautorizat, ceea ce înseamnă că, probabil, va fi în măsură să satisfacă această cerere, dar mai întâi trebuie să vă conectați în a face acest lucru. În schimb, s-ar putea obține 403 Interzis, care este nu reprezintă cu adevărat contează dacă sunteți conectat sau nu. Această cerere nu este permis. Există resurse de pe server. Dar nu vi se permite să-l acces. Acest lucru este, de obicei, fișierele interne care trăiesc pe server din diferite motive dar nu sunt destinate să fie accesat din lumea exterioară, și astfel încât acestea sunt interzise. Ei trăiesc acolo. Nu spun că nu pot găsi. Dar vreau să spun că nu pot da la tine. Și nu contează dacă esti logat sau nu. Și apoi desigur, foarte frecvente 404 Nu a fost găsit. Fișierul nu există pe server. Aș dori pentru a satisface cerere, dar nu pot. De asemenea, veți vedea uneori serverul erori, cele mai frecvente, în general, fiind 500 Eroare internă de server, care nu-ti spun de fapt nimic deloc despre ceea ce a mers prost. Dar nu e de fapt faci o greșeală în cerere. Este de fapt serverul lipsa de a livra la cererea cumva. Deci 500 este răspunsul generală. Veți vedea, de asemenea, ceva ca Serviciu indisponibil, care cred că este cod 503. Și Gateway Timeout-- dacă Ai avut vreodată o pagină doar stai acolo și încărcare încărcare și încărcarea și nu știi niciodată dacă o să sarcină și apoi în cele din urmă doar says-- doar renunță. Asta e un 504 Gateway Timeout. Serverul a vrut să executa cerere, dar ceva a mers prost pe side-- serverul nu pe side-- la cauza care să fie o problemă. Acum, am putea încheia povestea aici, dar ceea ce am de fapt de gând să facă acum este am de gând să deschidă browser-ul meu și vă arată cum s-ar putea fi capabil de a vedea unele dintre aceste coduri de stare chiar dacă nu în general, le văd. Și am de gând să fac asta prin luarea o privire la unele instrumente de dezvoltare. Bine Deci, iată-mă aici acum în fereastra browser-ul meu. Și vreau să învețe un pic mai multe despre aceste cereri HTTP. Cum pot know-- cu siguranță știm dacă o Pagina goes-- când ceva nu merge bine, avem un 404. Am văzut toate astea. Nu avem nevoie pentru a ilustra acest lucru. Dar ce sunt câteva altele? Și cum s-ar vedem aceste cereri în acțiune? Deci, primul lucru pe care am de gând să faci este deschide Instrumente de dezvoltare. Deci, Instrumente de dezvoltare sunt construite în cele mai multe browsere moderne și ne permit să vedem lucrurile că nu face altfel see-- unele informații fel suplimentar de fiind transmise sub-ul nostru solicitări. Sunt folosind Google Chrome aici. Și pentru a deschide Instrumente de dezvoltare în Chrome, doar te-a lovit F-12, și se va deschide l pe partea. După ce am tastați cererea, voi mări astfel încât să putem vedea ce se întâmplă aici. Dar ceea ce am de gând să fac în browser-ul meu bar este-- și voi mări peste here-- Voi face o cerere la www.google.com. Am făcut toate, probabil, această cerere înainte. Am de gând să lovi Enter. Acum, aici, în Developer mea Instrumente, am ales pe fila Rețea. Și observați o mulțime de lucruri aici. Uită-te la these-- 200 OK, OK 200, unele aceste coduri de stare vine. Nu știu de ce Primesc 302 S-au găsit. Nu am realizat aș vedea că unul. Dar, practic observați că destul de mult, în ceea ce privește request-- meu Google Am făcut o foarte simplu Cererea pentru pagina Google. Și în procesul de livrarea cererea mea, Google a făcut o mulțime aparent de alte cereri în numele meu. Dar am făcut o cerere get pentru Google pagină și Primesc o mulțime de 200 OKS. Nu văd 200 OK pe ecranul meu, dar eu sunt obtinerea o mulțime de cereri care au fost făcute. Unul mai mult că eu sunt destul de sigur o să meargă este-- pentru cei dintre voi care sunt într-adevăr vechi-școală, să știi că Facebook a fost nu întotdeauna la Facebook.com. La începuturile sale a fost la wwww.thefacebook.com. Ei se pare că nu a putut obține acces a Facebook.com pentru ceva timp. Și ce mă aștept aici este de a obține informații. Și vom vedea dacă această bucătărie afară. Ce mă aștept aici este de a obține informații că Facebook a mutat definitiv de la thefacebook.com la Facebook.com. Deci, mă aștept undeva în partea de sus a cererilor mele peste în Instrumentele mele dezvoltatori pentru a obține o notificare 301 că Facebook a mutat definitiv. Din nou, nu voi vedea 301 pe ecran browser-ul meu. Și pentru că este un 301, este o mișcare permanentă. Browser-ul meu, fiind că este un browser modern, este, probabil, va redirecționa mi să Facebook.com oricum. Dar să vedem ce se întâmplă. Iar acum am de gând să du-te la thefacebook.com. Și da, acolo este chiar în partea de sus. Acesta a plecat, dar a fost acolo. Lasă-mă să derulați în sus aici. Chiar aici în partea de sus. Am făcut o cerere de thefacebook.com, și Primesc un răspuns că aceasta pagina sa mutat definitiv. Și apoi 307 aici este o redirecționare internă. Și așa mai departe aceasta este ceea ce are de fapt mi sa mutat la mult mai mult www.facebook.com familiar. Deci, aceste coduri de răspuns face în continuare întâmpla, chiar dacă nu le vezi. Eu nu am de gând să ilustra 401, 403, 404, pentru că le-ați văzut, probabil, cei în diferite puncte. Și 500, mi-ar fi doar fel de-- am noroc în cazul în care a primit-o de 500, deoarece nu știm ce Serverele sunt în prezent în jos oriunde. Dar aceste coduri fac Există, și există o cale pentru a le accesa, chiar dacă nu o facem a le vedea prima mana pe sistemele noastre. Sunt Doug Lloyd. Acest lucru este CS50.