SPEAKER: Le të flasim për një tjetër protocol-- i Hypertext Transfer Protokoll, ose HTTP. Pra, ne kemi biseduar rreth IP dhe TCP në video e mëparshme. Dhe ata janë protokollet që të diktojë se si informacioni lëviz nga makinë në makinë dhe nga programi në program ose shërbim të shërbimit nëpërmjet internetit, nëpërmjet ky rrjet i routers dhe makina. Por që zakonisht nuk tërë foto, apo jo? Zakonisht kur ne kemi dërguar informacion, programi vetvetiu më kur të dhënave është marrë, të themi, për shembull, në email nëpërmjet TCP portin 25 ose një Kërkesa web faqe nëpërmjet portit 80, ka zakonisht një sistem rregullash atje për të përpunuar atë që unë kam marrë vetëm. Dhe HTTP është një shembull e vetëm një protokoll të tillë. HTTP është e vetmja shtresë protokoll aplikimi se ne jemi duke shkuar për të folur rreth. Por kjo është një tjetër grup e rregullave të diktuar si informacionet që do të transmetohet dhe të përpunuara nëpërmjet internetit. Në veçanti, HTTP specifikon saktësisht se si duhet të bëjë një kërkesë për një faqe web dhe saktësisht se si një server, një makinë që pret web pages, jep këtë informacion mbështetur për klientët. Pra, ky protokoll nuk ka në fakt kanë asgjë të bëjë me atë se si informacioni lëviz nga pika A në pikën B. Është me të vërtetë sistemi i rregullave for-- kjo është në thelb rregullat e angazhimi për të punuar me një faqe web, të ngjashme me kur dikush Valët dorën e tyre në ju, ju jeni duke menduar për të valë përsëri. Kjo është lloj i një protokoll konvencionale njerëzor. HTTP protokoll vetëm thotë, në qoftë se ju dëshironi të kërkoni një web faqe, sigurohuni format duket tuaj si this-- lloj si formatimit një letër të biznesit, për shembull. Dhe përgjigja do të në mënyrë të ngjashme vijnë në bazë të këtij protokolli. Ka të tjera Protokollet shtresa e aplikimit se ne nuk jemi duke shkuar për mundësitë për të marrë videos. Por këto përfshijnë gjëra të tilla si File Transfer Protocol, Simple Mail Transfer Protocol për dërguar postë elektronike, shpërndarja e të dhënave Shërbim, Remote Desktop Protokolli, RDP, e cila është përdorur në qoftë se ju doni të remotely qasje kompjuterin tuaj nga një kompjuter tjetër, XMPP, e cila është shpesh i njohur si Jabber ose chat, kështu që kjo është protokoll për përdorimin e shërbimeve chat. Dhe ka shumë, shumë, shumë të tjerë. Pra, çdo herë që ju jeni duke përdorur një shërbim, shërbimi pret informacione të received-- një kërkesë të jetë received-- në një format shumë i veçantë dhe është e nevojshme për informacione të kthehet prapa në një format shumë të veçantë si. Pra, le të kthehemi në ilustrimin tonë prej nesh duan për të biseduar në internet. Pra, ne jemi të lumtur, dhe ne duam për të shkuar në cats.com, e drejtë? Pra, nëse ne jemi vetëm duke folur për cats.com, mund të themi diçka si hey, mund të shoh faqen tuaj? Dhe cats.com ndoshta do të përgjigjet, po, i sigurt. Këtu ju shkoni. Pra, kjo është një lloj i njeriut të kërkojë-dhe-përgjigje. Çfarë do që të duket si në HTTP? E pra, ai në fakt lloj i përkthehet mjaft pastër për diçka si kjo. Ne mund të themi GET / HTTP / 1.1 nga cats.com pritës. Pra, në thelb ajo që unë jam duke bërë këtu është kërkuar për web faqes www.cats.com/~~pobj. Ne zakonisht heq plagë në ditët e sotme, por që do të vetëm thotë Faqen cats.com së. Oh, dhe nga mënyra, unë jam duke shkuar të jetë duke përdorur HTTP version 1.1 për të komunikuar me ju. Kjo është lloj i ngjashëm me duke thënë, si, nga rruga, Unë jam duke shkuar për të folur në frëngjisht, ose nga rruga, Unë jam do të jetë duke folur në gjuhën angleze. Kjo është vetëm format e protokollit. Është gjithashtu 1.0, i cili është jo i zakonshëm që përdoret më. Kështu që unë jam duke folur HTTP 1.1, dhe Unë do të doja www.cats.com/~~dobj. Ju lutem merrni atë për mua. Dhe pastaj nuk ka informacione të tjera, too-- dot, dot, dot atje, e cila është informacion në lidhje kush jeni kaq cats.com do të dinë se ku të dërgoni atë. Por këto janë dy lloj i pjesëve kritike në fillim e një HTTP request-- ashtu si kur ju filloni një Letra ju thoni, i dashur, bosh. Kjo është shumë e ngjashme në frymë me atë. Dhe në qoftë se cats.com do të thonë, oh, i sigurt, këtu ju shkoni. Ata mund të përgjigjet si this-- Unë jam gjithashtu duke iu përgjigjur. Unë gjithashtu flas HTTP 1.1. Kërkesa juaj është aprovuar, 200 OK. Çfarë ju jeni gati për marrin është HTML dhe pastaj dot, dot, dot disa informacione shtesë. Dhe në fund shumë e Kërkesa është në të vërtetë HTML, gjuha markup, The Përmbajtja e homepage cats.com së. Pra, HTTP / 1.1-- unë pranoj tuaj Kërkesa u pranua nëpërmjet HTTP 1.1. Kërkesa juaj është aprovuar. Unë mund të ju jap atë që ju dëshironi, 200 OK. Ju jeni gati për të marrë HTML. Dhe pastaj këtu është HTML që keni kërkuar. Por ndonjëherë kërkesat tona nuk e bëjnë gjithmonë shkojnë krejt sipas planit. Mund të shoh faqen tuaj cats.html? E pra, çfarë nëse ata thonë, ne nuk kanë një faqe cats.html, e cila duket lloj i joreale sepse ata janë cats.com. Ju do të mendoni se ata do të kenë cats.html. Por OK. Pra, kjo është lloj i ndërveprim konvencionale njeriut ne kemi pasur tani me cats.com. Si bën që përkthehet? Kjo mund të jetë diçka e njohur për ju. Kërkesa jonë dukej njëjtë, përveç në vend të gjetjes slash ne jemi tani duke marrë cats.html. Deri tani ajo që në thelb kjo tërë kërkesë është thënë se është, ju lutem më jepni www.cats.com/cats.html. Pra, të presë dhe të mesme pjesë e kësaj linjë të lartë atje tregojnë saktësisht ajo faqe unë jam duke kërkuar për. Por cats.com në këtë rast nuk është duke shkuar të jetë në gjendje të përgjigjet pozitivisht. Ata nuk e dinë që ne jemi duke folur për. Dhe kështu që kjo është diçka që ju mund të keni shihet HTTP herët, 1.1 404 Not Found. Unë nuk mund të gjeni se çfarë ju jeni duke kërkuar për. Nga rruga, unë jam duke shkuar për të ju jap prapa disa HTML, dhe zakonisht kjo HTML është përmbajtja e disa 404 faqe. Dhe në rastin e cats.com, është ndoshta disa macet bukur në një shportë me një i trishtuar 404 fytyrë pranë tyre, për shkak se ju jeni do të jetë trishtuar kur ju nuk e merrni faqe që ju po kërkoni. Kjo është lloj i bazat e asaj që një protokolli, kërkesat protokollin HTTP duket si. Ata janë me të vërtetë e ngjashme me mënyrën se si ne do të bëjë një ndërveprim të ngjashme në konventat vetëm njeriut duke kërkuar për diçka dhe për të gjetur atë përsëri apo të shkruarit e një letër dhe në pritje të një përgjigje letër në një format të veçantë. Kjo është shumë e shumë ajo që HTTP është vetëm canonicalizing për të gjitha pajisjet që dëshirojnë të qasjes web pages, transfertat HyperText. Pra, një linjë e formës, kjo Metoda kërkesë objektiv HTTP version, është quajtur një linjë HTTP kërkesë. Kjo është zakonisht gjëja e parë që është transmetohet si pjesë e një kërkese HTTP ose në qoftë se ju jeni duke kërkuar për HTTP. Kjo është lloj i pëlqen, siç thashë, duke thënë: i dashur, bosh në krye letrën tuaj. Ata e dinë se ju jeni shkruar atyre një letër. Pra, kjo është shumë e ngjashme për të thënë, unë e di se ata janë duke bërë një kërkesë HTTP dhe kjo është format i veçantë ata janë duke kërkuar për. HTTP version është ndoshta gjithmonë do të jetë HTTP / 1/1. 1.0 gjithashtu ekziston, por nuk është përdorur me të vërtetë më. Për qëllime të CS50, GET është ndoshta gjithmonë çfarë ju jeni do të jetë përdorur kur ju jeni në të vërtetë duke e bërë HTTP kërkesa të drejtpërdrejta. Por POST është një tjetër opsion që ne jemi nuk do të flasim për tani. Dhe pastaj kërkesë-objektiv është çfarë faqe në serverin e presë ju do të donte për të marrë. Siç e thashë, se emri i host është një linjë të veçantë, zakonisht vija e dytë e kërkesës përgjithshme. Dhe kanë marrë kështu së bashku, të presë Emri dhe objektiv kërkesa të përcaktojë një të veçantë burim duke u kërkuar. Në shembullin tonë 404 një të dytë më parë, unë ishte duke i kërkuar përsëri për www.cats.com, cats.com qenë nikoqir. Dhe në linjë tim të kërkesës, Unë i thashë /cats.html. Ky ishte objektivi im kërkesë. Pra, në përgjithësi unë isha duke kërkuar për Përmbajtja ose burimi vendosur në www.cats.com/cats.html~~pobj. Dhe pastaj në bazë të a ekziston burimi dhe nëse serveri mund të dorëzojë burimi në bazë të klientit kërkesë, ju mund të merrni Kodet e ndryshme statusit mbrapa. Disa prej këtyre kodeve për statusin e keni parë sepse ata janë pjesë e përgjigjes. Disa prej tyre, 200 OK, janë ndoshta goxha të heshtur. Ju keni kurrë ndoshta parë një faqe përgjigjur 200 OK. Ju vetëm merrni faqe. Ajo nuk është si një gabim 404, e cila është zakonisht shumë e qartë. Ju zakonisht të shihni se ajo thotë 404. Pra, le të flasim për atë që disa e këtyre kodeve të statusit mund të jetë. Përsëri, kur serveri përgjigjet për ne, ata janë do të përgjigjet HTTP statusin version. Zakonisht HTTP / 1.1. Cilat janë këto kodet statusit do të jetë? E pra, ne mund të merrni një sukses. Pra, në kategorinë e suksesit, ne mund të merrni kodin 200 me tekstin OK. Ç'do të thotë kjo? E pra, çdo gjë është e mirë. Keni bërë një kërkesë të vlefshme. Këtu është një përgjigje të vlefshme. Unë kam qenë në gjendje të japë pikërisht atë që keni kërkuar. Ndonjëherë ju mund të merrni gjëra të tjera që ju nuk do të vini re menjëherë por janë disi dështimet. Ata janë quajtur redirections. Ka dy ato të zakonshme këtu. 301 Permanently-- Moved çfarë do të thotë kjo në thelb është faqe është tashmë në një vend të ri. Ajo do të jetojnë aty përgjithmonë. Dhe shumica e shfletuesit do të automatikisht ju përcjellim. Kështu që ju kurrë nuk do të shoh me të vërtetë një 301, ose, nëse ju jeni duke përdorur një të vërtetë nga-e-date shfletuesi, ndoshta, sepse reagimi 301 është pjesë e dot, dot, dot e përgjigjes 301. Ajo gjithashtu ju tregon se ku faqja e re është. Dhe kështu që shumica e shfletuesit do të vetëm ju përcjellim atje, duke supozuar se ju doni të shkoni atje. Ndonjëherë ju do të merrni 302 Found. Dhe kjo në të vërtetë mund të shohin ende herë pas here. Ndonjëherë faqet lëvizin përkohësisht. Pra, kjo nuk do të jetë ndërtuar në kërkesa thënë browser të përhershme ndryshojë në çdo kohë ajo e sheh kërkesën që ju të bëjë për të ndryshuar atë për diçka tjetër. Kështu që ju mund të shihni 302 Gjetur, e cila në thelb thotë se kjo faqe jeton diku tjetër. Por kjo nuk do të jetojnë atje përgjithmonë. Kjo përfundimisht do të ndoshta të shkojnë prapa aty ku ju mendoni se është. Pastaj ju do të merrni gjërat e si gabime të klientit. Pra, këto janë ato që ju keni parë ndoshta, tani. Ju ndoshta nuk e keni parë të 200s apo 300s, por ju jeni me siguri njohur me 400s. Dhe kjo është ajo që ne do të flasim për në një të dytë, Vitet 500, si edhe. Ju mund të shihni 401 paautorizuar. Zakonisht kjo do të thotë që ju jeni duke u përpjekur për të hyrë në një faqe, por ju nuk e keni regjistruar. Kështu që ju provoni dhe shkoni në disa profilin apo diçka në Facebook ose ju provoni dhe qasja some-- ju jeni në punë. Ju jeni duke u përpjekur për të hyrë në diçka në internet Puna juaj së, por ju nuk jeni regjistruar. Ju nuk mund të shihni faqen. Ju mund të merrni një 401 paautorizuar, që do të thotë ne ndoshta do të jetë në gjendje për të kënaqur këtë kërkesë, por së pari ju duhet të identifikohesh për të bërë këtë. Në anën tjetër, ju mund të merrni 403 Ndaluar, e cila është ajo nuk ka të vërtetë rëndësi nëse ju jeni regjistruar ose jo. Kjo kërkesë nuk është e lejuar. Burimi ekziston në server. Por ju nuk jeni i lejuar për të hyrë në të. Kjo fotografi zakonisht të brendshme që jetojnë në server për arsye të ndryshme por nuk kanë për qëllim të jenë të arrihen nga bota e jashtme, dhe kështu që ata janë të ndaluara. Ata jetojnë atje. Unë nuk jam duke thënë se unë nuk mund ta gjeni atë. Por unë jam duke thënë se unë nuk mund të jap atë për ju. Dhe kjo nuk ka rëndësi nëse ju jeni regjistruar ose jo. Dhe pastaj sigurisht, shumë e zakonshme 404 Not Found. Skedari nuk ekziston në server. Unë do të doja të kënaqur kërkesa juaj, por unë nuk mund të. Ju gjithashtu nganjëherë shihni server gabime, më të zakonshme në përgjithësi qenë 500 Gabim i brendshëm Server, i cili nuk ka të vërtetë ju them asgjë në të gjitha për atë që ka shkuar keq. Por kjo nuk është në të vërtetë ju duke e bërë një gabim në kërkesën tuaj. Është në fakt server dështuar për të ofruar për kërkesën disi. Pra, 500 është përgjigje e përgjithshme. Ju gjithashtu do të shihni diçka si Shërbimi i padisponueshëm, që unë besoj se është kodi 503. Dhe Gateway Timeout-- nëse keni pasur ndonjëherë një faqe vetëm ulur atje ngarkimin dhe ngarkimit dhe ngarkimit dhe ju kurrë nuk e di nëse ajo do të ngarkesës dhe pastaj në fund ajo vetëm says-- vetëm të heq dorë. Kjo është një 504 Gateway Timeout. Serveri donte të ekzekutojë kërkesën tuaj, por diçka shkoi keq në side-- server jo në side-- tuaj në të bëjë që të jetë një problem. Tani, ne mund të përfundojë histori këtu, por ajo që unë jam në të vërtetë do të bëjë tani po unë jam duke shkuar për të hapur shfletuesin tim dhe të ju tregojnë si ju mund të jetë në gjendje për të parë disa prej këtyre kodeve statusit edhe në qoftë se ju në përgjithësi nuk e shohin ata. Dhe ne jemi duke shkuar për të bërë këtë duke marrë një vështrim në disa mjete të zhvilluesi i saj. Të gjithë të drejtë Kështu që këtu unë jam tani në dritaren time të shfletuesit. Dhe unë dua të mësoj pak më shumë rreth këtyre kërkesave HTTP. Si mund të vet e dini, sigurisht që ne e dimë nëse një faqe goes-- kur diçka shkon keq, ne kemi marrë një 404. Ne kemi parë të gjithë se. Ne nuk kemi nevojë për të ilustruar atë. Por cilat janë disa nga ato të tjera? Dhe si do të shohim këto kërkesa në veprim? Gjëja e parë kështu që unë jam duke shkuar për bëni është hapur deri Mjete Zhvilluesish. Pra Mjete Zhvilluesi janë ndërtuar në shfletuesit më moderne dhe të na lejojë të shohim gjërat që ne nuk e bëjmë ndryshe see-- një lloj shtesë e informacionit të po transmetohet nën faqen tonë Kërkesat. Unë jam duke përdorur Google Chrome këtu. Dhe për të hapur Mjete Zhvilluesish në Chrome, ju vetëm goditi F-12, dhe ajo do të hapë ajo në anën. Pasi unë lloji kërkesën, unë do të zoom në kështu që ne mund të shohim se çfarë po ndodh këtu. Por ajo që unë jam duke shkuar për të bërë në shfletuesin tim bar is-- dhe unë do të zoom në mbi here-- Unë do të bëjë një kërkesë për www.google.com. Ne kemi bërë të gjitha ndoshta kjo kërkesë para. Unë jam duke shkuar për të goditur Enter. Tani, këtu në Developer tim Tools, unë kam zgjedhur tab rrjetit. Dhe ju të vini re shumë gjëra këtu. Shikoni në these-- 200 OK, OK, disa 200 e këtyre kodeve statusit vjen deri. Unë nuk e di pse unë jam marrë 302 Found. Unë nuk e kuptojnë unë do të shoh se një. Por në thelb vëreni se goxha shumë, në aspektin e Google request-- tim Unë bëra një shumë të thjeshtë Kërkesa për faqen Google. Dhe në procesin e dërgimin kërkesën time, Google ka bërë me sa duket shumë i kërkesave të tjera në emrin tim. Por unë kam bërë një kërkesë për të marrë për Google faqe dhe unë jam duke marrë një shumë prej 200 miraton. Unë nuk jam duke parë 200 OK në ekranin tim, por unë jam marrë një shumë prej kërkesave që janë bërë. Një më shumë se unë jam goxha i sigurt do të punojë is-- për ato prej jush që janë me të vërtetë e vjetër-shkollën, ju mund ta dini se Facebook ishte jo gjithmonë në Facebook.com. Në ditët e para ajo ishte në wwww.thefacebook.com. Ata me sa duket nuk mund të merrni qasje për Facebook.com për mjaft kohë. Dhe kështu ajo që unë jam duke pritur këtu është për të marrë informacion. Dhe ne do të shohim nëse kjo pans jashtë. Çfarë unë jam duke pritur këtu është për të marrë informacion se Facebook ka lëvizur përgjithmonë nga thefacebook.com në Facebook.com. Kështu që unë jam duke pritur diku pranë krye të kërkesave të mia mbi Mjetet e mia Zhvilluesish për të marrë një njoftim 301 se Facebook ka lëvizur përgjithmonë. Përsëri, unë nuk do të shoh 301 në ekranin tim shfletuesit. Dhe për shkak se ajo është një 301, kjo është një lëvizje e përhershme. Shfletuesi ime, duke qenë se kjo është një shfletues modern, është ndoshta do të përcjellim më të Facebook.com gjithsesi. Por le të shohim se çfarë ndodh. Dhe tani unë jam duke shkuar për shkojnë në thefacebook.com. Dhe yep, nuk është e drejtë në krye. Ai u largua, por ajo ishte aty. Më lejoni të lëvizni lart këtu. Të drejtë këtu në krye. Kam bërë një kërkesë për thefacebook.com, dhe unë jam duke marrë një përgjigje se kjo faqe ka lëvizur përgjithmonë. Dhe pastaj 307 këtu është një përcjellim brendshëm. Dhe kështu kjo është ajo që ka aktualisht më lëvizi me më shumë www.facebook.com njohur. Pra, këto kode përgjigje të bëjë ende të ndodhë, edhe në qoftë se ne nuk i shohim ato. Unë nuk jam duke shkuar për të ilustruar 401, 403, 404, sepse ju ndoshta keni parë ato në pika të ndryshme. Dhe 500, unë do të jetë vetëm lloj of-- ne do të merrni me fat në qoftë se mori një 500, sepse ne nuk e dimë se çfarë servers janë aktualisht poshtë kudo. Por këto kode të bëjë ekzistojnë, dhe ka një mënyrë për të hyrë në ato edhe nëse ne nuk e bëjmë shohin ato të dorës së parë në sistemet tona. Unë jam Doug Lloyd. Kjo është CS50.