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