SPEAKER: Räägime teise protocol-- Hypertext Transfer Protokolli või HTTP. Nii me rääkisime IP ja TCP eelmisel videos. Ja need on protokollid dikteerida info liigub masin masin ja programmide puhul või teenus teenindada interneti kaudu Selle võrgu ruuterid ja seadmed. Aga see ei ole tavaliselt tervet pilti, eks? Tavaliselt, kui me saata informatsiooni, programmi itself-- kui andmed on sai, ütleme, näiteks, e-posti teel TCP port 25 või veebilehe taotluse läbi sadama 80, seal on tavaliselt süsteemi reeglitega töödelda, mida ma olen just saanud. Ja HTTP on näide just selline protokoll. HTTP on ainus Rakenduse kiht protokoll et me ei kavatse rääkida. Aga see on teine ​​komplekt eeskirjade diktofonid kuidas teave tuleb edastada ja töödeldud Interneti kaudu. Eelkõige HTTP määrab, kuidas täpselt tuleb esitada taotluse veebilehe ja kuidas täpselt serveris, masin mis korraldab veebilehti, annab see teave tagasi klientidele. Nii et see protokoll ei tegelikult midagi see, kuidas info liigub punktist A punkti B. See on tõesti süsteemi reeglid for-- see on põhimõtteliselt reeglite engagement tööks veebilehe, sarnane, kui keegi lained kätt sa, sa peaksid laine tagasi. See on omamoodi tavalise inimese protokoll. HTTP protokolli lihtsalt ütleb, kui soovite taotleda web lehele, veenduge, et teie formaadis välja nagu see-- omamoodi nagu vormingu ärikirja näiteks. Ja vastus sarnaselt tule selle eeskirja järgi. On ka teisi Rakenduse kiht protokollid et me ei kavatse rääkida ka videos. Aga need sisaldavad asjad FTP protokoll, Simple Mail Transfer Protocol for E-kirjade saatmine, Data Distribution Service, Remote Desktop Protokolli, MAK, mis kasutatakse, kui soovite kaugjuurdepääs arvuti ühest arvutist teise, XMPP, mis on sageli tuntud Jabber või chat, nii on see protokoll kasutades chat teenuseid. Ja seal on palju, palju, palju muud. Nii et iga kord, kui te kasutate teenus, teenuse ootab infot tuleb received-- taotluse olema received-- on väga kindlas vormingus ja on kohustatud tagasi informatsiooni tagasi väga kindlas vormingus samuti. Nii lähme tagasi meie illustratsioon meist tahavad rääkida internetis. Nii et me oleme õnnelikud, ja me tahame minna cats.com, eks? Nii et kui me lihtsalt rääkida cats.com, võib öelda midagi hei, ma näen oma kodulehekülg? Ja cats.com hakkab ilmselt vastata, jah, kindlasti. Palun. Nii et inimene omamoodi ask-ja-vastus. Mida see välja näeb HTTP? Noh, see tegelikult omamoodi tõlgib päris puhtalt, et midagi sellist. Me võime öelda, GET / HTTP / 1.1 peremehe cats.com. Ühesõnaga, mida ma teen siin küsib veebilehe www.cats.com/. Me tavaliselt jätta kaldkriipsuga Tänapäeval aga, et oleks lihtsalt tähenda cats.com kodulehte. Oh, ja muide, ma lähen olema HTTP versioon 1.1 sinuga suhelda. See on omamoodi analoogne öeldes, nagu, muide, Ma lähen rääkima prantsuse või teed, Ma lähen räägin inglise keeles. See on lihtsalt vormi protokoll. Samuti 1,0, mis on tavaliselt ei kasutata enam. Nii et ma räägin HTTP 1.1 ja Tahaksin www.cats.com/. Palun saada see mulle. Ja siis on muud teavet, too-- dot, dot, dot seal, mis on infot kes sa oled nii cats.com oleks teada, kust saada seda. Aga need on kaks Sorteeri kriitiliste osade alguses HTTP request-- nagu siis, kui sa alustada täht, mida öelda, kallis, tühi. See on väga sarnase sisuga, et. Ja kui cats.com läheb öelda, oh, kindlasti, siin sa lähed. Nad võivad vastata nagu see-- ma ka vastates. Räägin ka HTTP 1.1. Teie taotlus on heaks kiidetud, 200 OK. Mis sa parasjagu saada on HTML ja seejärel dot, dot, dot täiendav teave. Ja väga põhjas taotluse on tegelikult HTML, märgistuskeel on sisu cats.com kodulehte. Nii HTTP / 1.1-- ma sain oma Taotlus kiideti heaks HTTP 1.1. Teie taotlus rahuldati. Võin sulle, mida sa tahad, 200 OK. Oled saanud HTML. Ja siis siin on HTML, et sa soovisid. Aga mõnikord meie taotlusi ei alati minna päris plaanipäraselt. Kas ma näen oma cats.html lehele? Noh, mis siis, kui nad ütlevad, me ei ole cats.html lehel mis tundub selline ebareaalne sest nad cats.com. Sa arvad, et neil oleks cats.html. Aga OK. Nii et see on omamoodi tavaliste inimeste suhtlemist me oleme nüüd olnud koos cats.com. Kuidas see tõlkida? See võiks olla midagi sulle tuttav. Meie taotlus tundus täpselt sama, va asemel saada kaldkriipsuga me nüüd saan cats.html. Nüüd, mida põhimõtteliselt kogu see Taotluse öeldes on mulle anda www.cats.com/cats.html. Nii vastuvõtva ja Lähis- osa, et ülemisel real seal täpselt näidata Mis leheküljel ma palun. Aga cats.com sel juhul ei kavatse suutma vastata positiivselt. Nad ei tea me räägime. Ja nii see on midagi, mida oleks võinud näinud before-- HTTP 1.1 404 ei leitud. Ma ei suutnud leida, mida sa küsisid. Muide, ma annan teile tagasi mõned HTML, ja tavaliselt see HTML on sisu mõned 404 lk. Ja kui tegemist on cats.com, see on ilmselt mõned armsad kassid korvi kurb 404 nägu nende kõrval, sest sa lähed olema kurb, kui sa ei saa lehele et sa olid otsivad. See on omamoodi põhitõdesid, mida protokolli HTTP protokolli taotlusi nägema. Nad on tõesti sarnane sellele, kuidas me teeks sama koostoimet vaid inimese konventsioonid midagi paluma ja saada see tagasi või kirjalikult kirja ja ootan vastust kirja mingis kindlas vormingus. See on päris palju, mida HTTP on lihtsalt canonicalizing kõik seadmed, mis soovivad juurdepääsu veebilehti, hüperteksti ülekandeid. Nii rida kujul, sellele meetod taotluse eesmärk HTTP versioon, nimetatakse HTTP taotluse line. See on tavaliselt esimene asi, mis on edastatakse osana HTTP taotlus või kui te küsite HTTP. See on omamoodi nagu, nagu ma ütlesin, öeldes kallis, tühi ülaosas oma kirja. Nad teavad, et sa oled kirjalikult neid kirja. Nii et see on väga sarnane et öelda, ma tean et nad üritad HTTP taotluse ja see on kindlas vormingus nad küsivad. HTTP versioon on ilmselt alati saab olema HTTP / 1/1. 1,0 ka olemas, aga ei ole tõesti enam kasutada. Eesmärgil CS50, GET on ilmselt alati mida sa lähed olema kasutades, kui sa oled tegelikult tegemist otsese HTTP päringuid. Aga postitus on teine ​​võimalus, et me oleme ei hakka rääkima praegu. Ja siis taotlusel-eesmärk on Mis lehe serverisse soovid saada. Nagu ma ütlesin, et serveri nimi on eraldi rida, tavaliselt teine ​​rida kogu taotluse. Ja nii koos, vastuvõtva nimi ja taotluse eesmärk täpsustada konkreetse ressurss otsitakse. Meie 404 Näiteks hetk tagasi, ma küsisin uuesti www.cats.com, cats.com on peremees. Ja minu palve line, Ma ütlesin /cats.html. See oli minu taotluse eesmärk. Nii üldiselt ma küsisin, et sisu või ressurss asub kell www.cats.com/cats.html. Ja siis selle põhjal, kas ressurss olemas ja kas server suudab ressurssi vastavalt kliendi taotluse, võite saada erinevate olekud tagasi. Mõned neist olekud olete näinud sest nad on osa vastusest. Mõned neist, 200 OK, on ilmselt päris vaikne. Te olete ilmselt kunagi näinud lehekülje vastata 200 OK. Sa lihtsalt saada lehel. See ei meeldi 404 viga, mis on tavaliselt üsna selge. Sa tavaliselt näha, et ta ütleb 404. Nii räägime sellest, mida mõned need olekud olla. Jällegi, kui server vastab meile, et nad läheb vastata HTTP versioon staatus. Tavaliselt HTTP / 1.1. Mis need olekud saab olema? Noh, me võiksime saada edu. Nii et edu kategooriasse, me võib saada kood 200 tekstiga OK. Mida see tähendab? Noh, kõik on hea. Sa tegid nõuetekohase avalduse. Siin on tõene vastus. Mul oli võimalus anda täpselt, mida sa tahad. Mõnikord võib saada muid asju et sa ei märka kohe kuid on mõnevõrra ebaõnnestumisi. Nad nimetatakse redirections. Seal on kaks levinud siin. 301 Liigutatud Permanently-- mida see tähendab põhimõtteliselt on leht on nüüd uues kohas. See elavad seal igavesti. Ja Enamik brausereid automaatselt suunata sind. Nii saad kunagi tõesti näha 301, kas, kui sa oled kasutades tõesti out-of-date brauser, võib-olla, sest 301 vastus on osa dot, dot, dot on 301 vastust. See näitab ka, kui uus leht on. Ja nii Enamik brausereid lihtsalt suunata sind seal, eeldades, et sa tahad sinna minna. Vahel võite ka saada 302 leitud. Ja see sulle tegelikult võib veel näha aeg-ajalt. Mõnikord lehekülge ajutiselt liikuda. Nii et see ei kavatse olla integreeritud taotluse räägib brauser jäädavalt muuta igal ajal ta näeb paluda, et te teha, et muuta see midagi muud. Nii võite näha 302 Leitud, mis põhimõtteliselt ütleb see leht elab kusagil mujal. Aga see ei lähe elavad seal igavesti. Lõpuks toimub ilmselt minna tagasi sinna, kus see on teie arvates. Siis saad asju nagu klient vigu. Nii et need on need, mida olen ilmselt näinud, nüüd. Sa ilmselt ei ole näinud 200s või 300s, aga sa oled ilmselt tuttav 400s. Ja see, mida me räägime umbes teise, 500s samuti. Sa võid näha 401 Loata. Tavaliselt tähendab see seda, et sa oled üritab pääseda lehel aga sa ei ole sisse loginud. Nii et sa proovida ja minna mõnda profiil või midagi Facebook või sa püüad ja juurdepääs some-- oled tööl. Sa üritad pääseda midagi Teie töö on internet, aga sa ei ole sisse logitud. Sa ei näe lehel. Sa võid saada 401 lubamatu, mis tähendab, et me ilmselt suudab rahuldada seda taotlust, kuid kõigepealt pead sisse logima teha. Samas võid saada 403 Keelatud, mis on see ei ole tegelikult oluline, kui sa oled sisse loginud või mitte. See taotlus ei ole lubatud. Ressurss serveris olemas. Aga sa ei tohi seda kasutada. See on tavaliselt sisemine faile live server erinevatel põhjustel kuid ei ole mõeldud olema külastatud muust maailmast, ja nii nad on keelatud. Nad elavad seal. Ma ei ütle, et ma ei suuda seda leida. Aga ma väidan ma ei saa sulle anda. Ja see ei ole oluline, kui sa oled sisse logitud või mitte. Ja siis muidugi väga sage 404 ei leitud. Faili ei eksisteeri serveris. Tahaksin, et rahuldada Teie soovi, kuid ma ei saa. Sul on ka mõnikord näha server vigadest, kõige levinum üldiselt on 500 Internal Server Error, mis tegelikult ei öelda teile midagi üldse sellest, mis on valesti läinud. Aga see ei ole tegelikult teete viga oma taotluse. See on tegelikult server ei suuda täita taotlus kuidagi. Nii 500 on üldine vastus. Näete ka midagi nagu ei ole kättesaadavad, mis minu arvates on kood 503. Ja Gateway Timeout-- kui Teil on kunagi olnud lehele lihtsalt istuvad seal peale- ja laadimist ja laadimise ja sa ei tea kunagi, kui see läheb koormuse ja siis lõpuks see lihtsalt says-- lihtsalt loobub. See on 504 Gateway Aegumine. Server tahtis täita oma taotluse kuid midagi läks valesti serveris side-- ei oma side-- kuni põhjustada sellise olevat probleem. Nüüd võiks lõpuks lugu siin, aga mida ma tegelikult nüüd teeme on Ma lähen avama minu brauser ja näitan sulle kuidas sa võiksid näha Mõned neist olekud isegi kui sa ei ole üldjuhul neid näha. Ja me ei kavatse seda teha, võttes mõningaid arendaja tööriistad. Olgu Nii et siin ma olen nüüd minu akna. Ja ma tahan õppida natuke rohkem neid HTTP päringuid. Kuidas sead ühendit väljakirjutada kindlasti me teame, kui lk goes-- kui midagi läheb valesti, saame 404. Me kõik oleme näinud seda. Meil ei ole vaja, et illustreerida seda. Aga milline on mõned teised ones? Ja kuidas me näeme Nende taotluste tegevus? Nii esimene asi, mida ma lähen teha, on avada Developer Tools. Nii Developer Tools on ehitatud enamikesse kaasaegsete brauseritega ja võimaldavad meil näha asju et me ei näe see-- täiendav teave omamoodi edastatakse all meie veebis nõuab. Ma kasutan Google Chrome siin. Ja avada Developer Tools Chrome, sa lihtsalt vajuta F-12, ja see läheb avama it up küljel. Kui ma kirjutada taotlus, ma suumida nii et me näeme, mis siin toimub. Aga mida ma lähen tegema oma brauseri baari on-- ja ma suumida üle siin-- Ma teen taotluse www.google.com. Me kõik oleme ilmselt teinud Selle taotluse enne. Ma lähen Enter. Nüüd, siin on minu Developer Tööriistad, olen valinud vahekaarti Network. Ja te märkate palju asju siin. Vaata these-- 200 OK, 200 OK, mõned Nende olekud tulemas. Ma ei tea, miks ma saan 302 Leitud. Ma ei teadnud, et ma näen, et üks. Aga põhimõtteliselt märgata, et päris palju, nii minu Google request-- Tegin väga lihtsa taotluse Google'i lehel. Ja protsessis esitan taotluse, Google on ilmselt teinud palju Teiste taotluste minu nimel. Aga ma olen teinud get taotluse Google'i lehele ja ma saan palju 200 Oks. Ma ei näe 200 OK minu ekraanil, kuid ma saan palju taotlusi, mis on tehtud. Üks, et ma olen päris Kindlasti läheb tööle on-- neile, kes on tõesti vana-kooli, te teaksite, et Facebook oli mitte alati on Facebook.com. Oma algusaegadel oli kell wwww.thefacebook.com. Nad ilmselt ei pääse et Facebook.com üsna mõnda aega. Ja nii ma ootan siin on saada informatsiooni. Ja me näeme, kui see pannid välja. Mida ma ootan siin on saada teavet et Facebook on liikunud pidevalt alates thefacebook.com et Facebook.com. Nii et ma ootan kuskil ülaosas oma taotlusi Üle minu Developer Tools saada 301 teadet et Facebook on liikunud pidevalt. Jällegi, ma ei näe 301 minu brauseri ekraanil. Ja kuna see on 301, see on püsiv liikuda. Minu brauser, on see, et see on kaasaegne brauser, Ilmselt läheb suunata minu Facebook.com niikuinii. Aga vaatame, mis juhtub. Ja nüüd ma lähen minna thefacebook.com. Ja eks, seal on õigus ülaosas. See läks ära, kuid see oli seal. Lubage mul keri üles siin. Siinsamas tipus. Tegin taotluse thefacebook.com, ja ma saan vastuse et see lehekülg on liikunud pidevalt. Ja siis 307 siin sisemine suunata. Ja nii see on, mida on tegelikult kolis mulle palju rohkem tuttav www.facebook.com. Nii et need vastusekoodidele teha veel juhtuda, isegi kui me ei näe neid. Ma ei kavatse illustreerivad 401, 403, 404, sest olete ilmselt näinud need erinevates punktides. Ja 500, ma oleks lihtsalt selline of-- me tahaks saada õnnelik kui sain 500, sest me ei tea, mis serverid on praegu alla kuhugi. Aga need koodid teha olemas, ja on olemas võimalus neile juurde pääseda, isegi kui me seda ei tee neid näha oma silmaga meie süsteemid. Ma olen Doug Lloyd. See on CS50.