SPEAKER: Parunāsim par otru protocol-- hiperteksta pārneses Protokols, vai HTTP. Tātad mēs esam runājuši par IP un TCP iepriekšējos video. Un tie ir protokoli kas nosaka to, kā informācija pārceļas no mašīnas uz mašīnu un no programmas uz programmu vai pakalpojumu pakalpojumu, izmantojot internetu, izmantojot šis tīkls maršrutētājiem un mašīnas. Bet tas parasti nav visa aina, vai ne? Parasti, kad mēs sūtīt informācija, programma itself-- ja dati ir saņemta, teiksim, piemēram, e-pastu caur TCP portu 25 vai mājas lapa pieprasījums caur 80 portu, tur parasti noteikumu sistēma tur apstrādāt to, ko es esmu tikko saņēmis. Un HTTP ir piemērs par tieši šādu protokolu. HTTP ir vienīgais lietojumslānis protokols ka mēs ejam runāt. Bet tas ir vēl viens komplekts Noteikumu diktofonus kā informācija ir jānosūta un apstrādāti, izmantojot internetu. Jo īpaši, HTTP precizē, kā tieši viens ir izteikt lūgumu veikt mājas lapa un tieši tā, kā serveris, mašīna kas uzņem web lapas, sniedz šo informāciju atpakaļ uz klientiem. Tātad šis protokols nav tiešām ir kaut kas ko darīt ar to, kā informācija pārvietojas no punkta A uz punktu B. Tas ir patiešām sistēma noteikumu for-- tas būtībā noteikumi iesaiste darbam ar mājas lapu, līdzīgi, kad kāds viļņi to rokas pie jums, jūs vajadzēja vilnis atpakaļ. Tas ir sava veida parasto cilvēka protokols. HTTP protokols vienkārši saka, ja Jūs vēlaties, lai pieprasītu web lapa, pārliecinieties, ka jūsu formāta izskatu tāpat this-- veida, piemēram, formatējumu biznesa vēstules, piemēram. Un atbilde būs līdzīgi nākt saskaņā ar šo protokolu. Ir citi lietojumslānis protokoli ka mēs nebrauksim runāt par video. Bet tie ietver lietas, piemēram, File Transfer Protocol, Simple Mail Transfer Protocol par sūtīt e-pastus, datu izplatīšana Serviss, Remote Desktop Protokols, RDP, kas tiek izmantots, ja vēlaties attālināti piekļūt jūsu datoru no cita datora, XMPP, kas bieži vien ir pazīstams kā Jabber vai tērzēšana, tāpēc tas ir protokols izmantojot tērzēšanas pakalpojumu. Un tur ir daudzi, daudzi, daudzi citi. Tātad, katru reizi, kad jūs izmantojat pakalpojums, pakalpojums sagaida informāciju kas received-- pieprasījumu būt received-- no A ļoti īpaši formāts un ir nepieciešams, lai atgriešanās informāciju atpakaļ ļoti īpašā veidā, kā arī. So iesim atpakaļ uz mūsu ilustrācijas no mums vēlas runāt ar internetu. Tātad mēs esam laimīgi, un mēs vēlamies, doties uz cats.com, vai ne? Tātad, ja mēs esam tikai runā ar cats.com, mēs varētu teikt kaut ko līdzīgu hey, es varu redzēt jūsu mājas lapā? Un būs cats.com iespējams atbildēt, jā, protams. Šeit jums iet. Tātad tas ir cilvēka kārtošanas ASK-un-atbilde. Ko tas izskatīsies HTTP? Nu, tas tiešām veida pārveido diezgan tīri, lai kaut kas līdzīgs šim. Mēs varētu teikt GET / HTTP / 1.1 no uzņēmējas cats.com. Vārdu sakot, tas, ko es daru šeit ir lūdzot mājas lapas www.cats.com/~~pobj. Mēs parasti izlaist slīpsvītru mūsdienās, bet tas būtu vienkārši nozīmēt cats.com mājas lapu. Ak, un starp citu, es esmu gatavojas būt izmantojot HTTP versiju 1.1, lai sazinātos ar jums. Tas ir sava veida analogs sakot, tāpat kā, starp citu, Es esmu būs runājot franču, vai ko citu, Es esmu būs runā angļu valodā. Tas ir tikai formātu protokolu. Tas ir arī 1,0, kas ir nav parasti izmanto vairs. Tāpēc es runāju HTTP 1.1, un Es gribētu www.cats.com/~~dobj. Lūdzam ka par mani. Un tad tur ir cita informācija, too-- to dot, dot, dot tur, kas ir informācija par kas jūs esat tik cats.com zinātu, kur, lai to nosūtītu. Bet tie ir divi veida kritisko daļu pašā sākumā no HTTP request-- tāpat kā tad, kad sākat vēstule jums saku, mīļā, tukšs. Tas ir ļoti līdzīgs garā uz to. Un, ja cats.com gatavojas teikt, ak, protams, šeit jums iet. Tās var reaģēt, piemēram, this-- Es esmu arī reaģēt. Es arī runāju HTTP 1.1. Jūsu pieprasījums ir apstiprināts, 200 OK. Ko jūs gatavojaties saņemt ir HTML un pēc tam dot, dot, dot kādu papildus informāciju. Un pašā apakšā no pieprasījums ir faktiski HTML, iezīmēšanas valoda, saturs cats.com mājaslapā. Tātad HTTP / 1.1-- es atzīstu jūsu pieprasījums tika pieņemts, izmantojot HTTP 1.1. Jūsu pieprasījums tika apstiprināts. Es varu dot jums to, ko vēlaties, 200 OK. Jūs gatavojaties saņemt HTML. Un tad šeit ir HTML, ka jūs pieprasīts. Bet dažreiz mūsu pieprasījumi nav vienmēr iet diezgan saskaņā ar plānu. Vai es varu redzēt jūsu cats.html lapu? Nu, ko tad, ja viņi saka, mēs nav cats.html lapu, kas šķiet veida nereāls jo viņi cats.com. Jūs domājat, ka viņi būtu cats.html. Bet OK. Tātad šis ir sava veida parasto cilvēku mijiedarbība mēs esam tagad bija ar cats.com. Kā tas tulkot? Tas varētu būt kaut kas pazīstams ar jums. Mūsu lūgums izskatījās tieši tāds pats, izņemot vietā kļūst slīpsvītra Mēs tagad kļūst cats.html. Tāpēc tagad, ko būtībā tas viss pieprasījums ir teiciens ir, lūdzu, sniedziet man www.cats.com/cats.html. Tātad uzņēmēju un vidu daļa no šīs rindā tur precīzi norāda, ko lapa es lūdzu. Bet cats.com šajā gadījumā nav dodas lai varētu atbildēt pozitīvi. Viņi nezina, mēs runājam. Un tā tas ir kaut kas jums varētu būt redzējis before-- HTTP 1.1 404 Not Found. Es nevarēju atrast to, ko tu lūdz. Starp citu, es esmu gatavojas sniegt jums atpakaļ dažus HTML, un parasti tas HTML ir saturs kādu 404 lpp. Un gadījumā, ja cats.com, tas ir iespējams, daži cute kaķi grozā ar skumjš 404 seja blakus tiem, jo jūs esat būs skumji, ja jūs nesaņemat lapu ka jūs meklējat. Tas ir sava veida pamati, ko protokols, HTTP protokols pieprasījumi izskatās ka. Viņi tiešām līdzīgi kā mēs būtu līdzīga mijiedarbība tikai cilvēku konvencijās lūdzot kaut ko un saņemt to atpakaļ, vai rakstot burtu un gaida atbildi burts konkrētā formātā. Tas ir diezgan daudz, ko HTTP ir tikai canonicalizing visām ierīcēm, kas vēlas piekļūt web lapas, hiperteksta pārvedumi. Tātad līnija veidā, šis metode pieprasījums mērķa HTTP versija, sauc HTTP pieprasījuma līniju. Tas parasti ir pirmā lieta, kas ir pārraida kā daļa no HTTP pieprasījumu vai, ja jūs esat jautā par HTTP. Tas ir veida, piemēram, kā es teicu, sakot dārgais, tukšs augšpusē jūsu vēstules. Viņi zina, ka tu esi rakstot viņiem vēstuli. Tātad tas ir ļoti līdzīgs to sakot, es zinu ka viņi veicot HTTP pieprasījumu un tas ir īpaši formāts viņi jautā. HTTP versija ir iespējams vienmēr būs HTTP / 1/1. 1.0 arī eksistē, bet nav tiešām izmantot vairs. Nolūkā CS50, GET ir iespējams, vienmēr ko jūs esat būs izmantojot kad jūs faktiski padarot tiešos HTTP pieprasījumus. Bet POST ir vēl viena iespēja, ka mēs esam netaisos runāt par tieši tagad. Un tad pieprasījums-mērķis ir kāda lapa par uzņēmējas serveri Jūs vēlētos saņemt. Kā jau teicu, ka uzņēmēja nosaukums ir atsevišķs līnija, parasti otrajā rindā no kopējā pieprasījuma. Un tā kopā, uzņēmēja nosaukums un pieprasījums mērķa norādīt konkrētu resurss tiek lūgta. Mūsu 404. Piemēram, otrs atpakaļ, es tika lūdzot vēlreiz www.cats.com, cats.com ir uzņēmēja. Un manā pieprasījuma līniju, Es teicu /cats.html. Tas bija mans lūgums mērķa. Tātad kopumā es biju lūdzot saturs vai resurss, kas atrodas at www.cats.com/cats.html~~pobj. Un tad, pamatojoties uz to, vai resurss eksistē un vai serveris var piegādāt resursa saskaņā ar klienta pieprasījums, jūs varētu saņemt dažāda statusa kodi atpakaļ. Daži no šiem statusa kodu esat redzējuši jo tie ir daļa no atbildes. Dažas no tām, 200 OK, ir iespējams, ir diezgan kluss. Jūs, iespējams, nekad nav redzējis lapa atbildēt 200 OK. Jūs tikai iegūt lapu. Tas nav kā 404 kļūda, kas parasti ir diezgan skaidrs. Jūs parasti redzēt, ka tā saka 404. Tātad parunāsim par to, ko daži Šo statusa kodu varētu būt. Atkal, kad serveris reaģē uz mums, viņi gatavojas reaģēt HTTP versija statusu. Parasti HTTP / 1.1. Kas ir šie statusa kodi būs? Nu, mēs varētu iegūt panākumus. Tātad veiksmes kategorijā, mēs varētu saņemt kodu 200 ar tekstu OK. Ko tas nozīmē? Nu, viss ir labi. Jūs, kas derīgu pieprasījumu. Lūk derīga atbilde. Man bija iespēja piegādāt tieši to, ko jūs vēlējāties. Reizēm jūs varētu saņemt citas lietas ka jūs nepamanīs uzreiz bet ir nedaudz neveiksmes. Viņi sauc redirections. Tur ir divas kopīgas ones šeit. 301 Moved Permanently-- ko tas būtībā nozīmē ir lapa tagad atrodas jaunā vietā. Tā dzīvos tur mūžīgi. Un Lielākā daļa pārlūkprogrammu automātiski novirzīt jūs. Tātad, jūs nekad īsti redzēt 301, nu, ja vien jūs esat izmantojot patiešām out-of-dienas pārlūku, iespējams, jo 301 atbilde ir daļa no Transporta departaments, dot, dot no 301 atbildi. Tā arī stāsta jums, kur jaunā lapa. Un tā Lielākā daļa pārlūkprogrammu vienkārši novirzīt jūs tur, pieņemot, ka jūs vēlaties, lai iet uz turieni. Dažreiz jūs arī saņemsiet 302 atrasts. Un tas viens jūs faktiski vēl varētu redzēt neregulāri. Dažreiz lapas īslaicīgi kustēties. Tātad tas nav būs iebūvēts lūgums stāsta pārlūku neatgriezeniski mainīt jebkurā laikā tā redz pieprasām, lai jūs darīt, lai mainītu to uz kaut ko citu. Lai jūs varētu redzēt 302 Atrasts, kas būtībā saka šo lapu dzīvo kaut kur citur. Bet tas nav gatavojas tur dzīvo mūžīgi. Tas galu galā, iespējams, iet atpakaļ, ja jūs domājat, ka tas ir. Tad jūs saņemsiet lietas tāpat klientu kļūdas. Tātad šie ir tie, ko esat iespējams, redzējuši, tagad. Jūs, iespējams, neesmu redzējis tad 200S vai 300S, bet jūs, iespējams, iepazinušies ar 400S. Un tas, ko mēs runājam par sekundē, 500S, kā arī. Jūs varētu redzēt 401 Neatļauta. Parasti tas nozīmē, ka jūs esat mēģināt piekļūt lapu, bet jums nav pieteicies. Tātad jūs mēģināt un doties uz kādu profils vai kaut Facebook vai jūs mēģināt un piekļuve some-- jūs esat darbā. Jūs cenšaties piekļūt kaut ko uz savu darbu interneta, bet jūs neesat pieteicies. Jūs nevarat redzēt lapu. Jūs varētu saņemt 401 nesankcionētu, kas nozīmē, ka mēs, iespējams, spēs apmierināt šo pieprasījumu, bet vispirms jums ir nepieciešams, lai pieteiktos to darīt. Un otrādi, jūs varētu saņemt 403 Forbidden, kas tas nav īsti svarīgi, ja esat pieteicies vai ne. Šis pieprasījums nav atļauta. Resurss eksistē uz servera. Bet jums nav atļauts tai piekļūt. Tas parasti ir iekšējās failus, kas dzīvo uz servera dažādu iemeslu dēļ bet nav paredzēts piekļūt no ārpasaules, un tāpēc tie ir aizliegta. Viņi dzīvo tur. Es nesaku, ka es nevaru atrast to. Bet es saku, es nevaru dot to jums. Un tas nav svarīgi, ja Jūs esat pieteicies vai ne. Un tad, protams, ļoti bieži 404 Not Found. Fails neeksistē uz servera. Es gribētu, lai apmierinātu Jūsu pieprasījums, bet es nevaru. Jūs arī dažreiz redzēt serveris kļūdas, visbiežāk parasti ir 500 Internal Server Error, kas tas tiešām nav pateikt jums kaut ko vispār par to, kas ir nogājis greizi. Bet tas nav reāli jums padarīt kļūda jūsu pieprasījumu. Tas ir faktiski serveris nedarot izpildīt lūgumu kaut kā. Tātad 500 ir vispārējā reakcija. Jūs arī redzēt kaut ko tāpat Pakalpojums nav pieejams, kas, manuprāt, ir kodu 503. Un Gateway Timeout-- ja Jums kādreiz ir bijusi lapu tikko sēdēt tur iekraušanas un iekraušanas un iekraušana un jūs nekad zināt, ja tas notiek, lai slodzi un tad galu galā tas tikai says-- vienkārši nepadodas. Tas ir 504 Gateway Noildze. Serveris vēlējās izpildīt jūsu pieprasījumu, bet kaut kas nogāja greizi uz servera side-- nav jūsu side-- uz izraisa, ka tā ir problēma. Tagad mēs varētu beigties stāsts šeit, bet tas, ko es esmu patiešām gatavojas darīt tagad ir es esmu gatavojas atvērt mans pārlūks un parādīs, kā jūs varētu redzēt daži no šiem statusa kodu pat tad, ja jums nav vispār redzēt. Un mēs esam gatavojas darīt, ka, ņemot apskatīt dažas izstrādātāju rīki. Visas tiesības Tātad, šeit es esmu Tagad manā pārlūkprogrammas logā. Un es gribu, lai uzzinātu mazliet vairāk par šo HTTP pieprasījumus. Kā es varu know--, protams, mēs zinām, ja lapa goes-- kad kaut kas noiet greizi, mēs iegūtu 404. Mēs visi esam redzējuši, ka. Mums nevajag, lai ilustrētu to. Bet kādi ir daži citi tiem? Un kā mēs redzam šie lūgumi darbībā? Tātad pirmais, ko es esmu gatavojas darīt, ir atvērt izstrādātāja rīki. Tātad izstrādātāju rīki tiek būvētas lielākajā daļā mūsdienu pārlūkprogrammām un ļauj mums redzēt lietas ka mums nav citādi see-- dažas papildu informācija veida tiek nosūtīti zem mūsu mājas pieprasījumi. Es esmu, izmantojot Google Chrome šeit. Un, lai atvērtu Developer Tools Chrome, jūs vienkārši hit F-12, un tas notiek, lai atvērtu tā izveidota uz pusi. Pēc tam, kad es rakstīt šo lūgumu, es ņemšu tuvinātu lai mēs varētu redzēt, kas notiek šeit. Bet ko es esmu gatavojas darīt manā pārlūkprogrammā bārs is-- un es ņemšu tuvinātu vairāk here-- Es darīšu pieprasījumu www.google.com. Mēs visi esam, iespējams, veikti šis pieprasījums pirms. Es esmu gatavojas hit Enter. Tagad, vairāk nekā šeit manā Developer Instrumenti, es esmu izvēlējies cilni Network. Un jūs ievērosiet daudz lietas šeit. Paskaties these-- 200 Labi, 200 Labi, daži Šo statusa kodu nāk uz augšu. Es nezinu, kāpēc es saņemu 302 atrasts. Es nesapratu, es gribētu redzēt, ka viens. Bet būtībā ievērosiet, ka diezgan daudz, runājot par manu Google request-- Es ļoti vienkāršs pieprasījums Google lapā. Un procesā nogādāt manu pieprasījumu, Google acīmredzot veikusi daudz Citu pieprasījumu manā vārdā. Bet es esmu veicis get pieprasījumu Google lapa un es saņemu daudz 200 OKS. Es neesmu redzēt 200 OK mans ekrāns, bet es saņemu Vairāki lūgumiem daudz kas ir veikti. Viens vairāk, ka es esmu diezgan Noteikti iet uz darbu is-- tiem no jums, kas ir tiešām old-school, jūs varat zināt, ka Facebook ir ne vienmēr Facebook.com. Savos pirmsākumos tas bija at wwww.thefacebook.com. Viņi acīmredzot nevarēja piekļūt uz Facebook.com diezgan ilgi. Un tā, ko es esmu gaidījis šeit ir, lai saņemtu informāciju. Un mēs redzēsim, vai tas pannas out. Ko es esmu gaidījis šeit ir iegūt informāciju ka Facebook ir pārvietots neatgriezeniski no thefacebook.com uz Facebook.com. Tāpēc es esmu gaidījis kaut kur augšpusē manu pieprasījumu vairāk manā Developer Tools lai iegūtu 301 paziņojumu ka Facebook ir pārvietots pastāvīgi. Atkal, es neredzu 301 uz mana pārlūka ekrānā. Un tāpēc, ka tas ir 301, tas ir pastāvīgs gājiens. Mans pārlūks, ir tas, ka tā ir mūsdienu pārlūku, ir iespējams, gatavojas novirzīt man Facebook.com anyway. Bet pieņemsim redzēt, kas notiek. Un tagad es esmu gatavojas iet uz thefacebook.com. Un Yep, tur tas ir pašā augšā. Tā gāja prom, bet tas bija tur. Ļaujiet man ritiniet uz augšu šeit. Tepat augšpusē. Es iesniegusi attiecīgu pieprasījumu thefacebook.com, un es saņemu atbildi ka šī lapa ir pārvietots pastāvīgi. Un tad 307 šeit ir iekšēja novirzīt. Un tā tas ir tas, kas ir reāli mani aizkustināja ar daudz vairāk pazīstams www.facebook.com. Tātad šie atbildes kodi darīt vēl notiktu, pat ja mēs neredzam viņus. Es neesmu gatavojas ilustrēt 401, 403, 404, jo jūs droši vien esat redzējuši tos dažādās vietās. Un 500, es būtu vienkārši kind of-- mēs gribētu saņemt laimīgs ja saņēmu 500, jo mēs nezinām, kas serveri pašlaik leju jebkur. Bet šie kodi darīt pastāv, un ir veids, tiem piekļūt pat tad, ja mums nav redzēt firsthand uz mūsu sistēmu. Es esmu Doug Lloyd. Tas ir CS50.