>> 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.