>> Pranešėjas: Pakalbėkime apie kitą protocol-- hiperteksto perdavimo
Protokolą arba HTTP.
Taigi mes kalbėjome apie TL ir TCP ankstesniais video.
Ir tie, kurie protokolai kad diktuoja, kaip informacija
juda iš kompiuterio į kompiuterį ir iš programos programą arba paslaugą
aptarnauti internetu, per Šis maršrutizatorius ir mašinų tinklą.
>> Bet tai paprastai nėra visas vaizdas, tiesa?
Paprastai, kai mes išsiųsti informacija, programa
itself-- kai duomenys yra gauta, tarkim, pavyzdžiui,
Email per TCP 25 prievado arba interneto puslapis prašymas per 80 prievadą,
ten paprastai taisyklių sistema yra apdoroti, ką aš ką tik gavo.
Ir HTTP yra pavyzdys tiesiog tokio protokolo.
>> HTTP yra vienintelis Taikomojo lygmens protokolo
kad mes ketiname kalbėti apie.
Bet tai yra dar vienas komplektas taisyklių diktuoja, kaip
informacija turi būti perduodami ir apdorojami per internetą.
Visų pirma, HTTP nurodoma, kaip tiksliai
vienas turi padaryti už prašymą interneto puslapis ir tiksliai, kaip
serveris, mašina kad šeimininkai tinklalapius,
pristato šią informaciją atgal į klientų.
>> Taigi, šis protokolas neturi iš tikrųjų nieko
daryti su tuo, kaip informacija juda iš taško A
į tašką B. Tai tikrai taisyklių sistema
for-- tai iš esmės taisyklių Vestuvinis dirbti su tinklalapio,
panašus į kai kas nors bangos savo jėgas jums,
jums turėtų mojuoti atgal.
Štai tarsi įprastinis žmogaus protokolas.
HTTP protokolo tiesiog sako, jei norite prašyti internete
Įsitikinkite, kad puslapyje formato atrodo savo kaip this-- taikoma panašaus pobūdžio formatavimą
verslo raidžių, pavyzdžiui.
Ir atsakymas bus panašiai ateina pagal šį protokolą.
Yra ir kitų Taikomojo lygmens protokolai
kad mes neketiname kalbėti apie video.
Tačiau tai apima tokius dalykus kaip File Transfer Protocol,
Simple Mail Transfer Protocol už siųsti laiškus, duomenų pasiskirstymas
Paslaugos, Remote Desktop Protokolas, KPP, kuris
naudojamas, jei norite nuotoliniu prieiga kompiuteris iš kito kompiuterio,
XMPP, kuris yra dažnai žinomas kaip Jabber ar pokalbiai,
todėl tai yra protokolas naudojant pokalbių paslaugas.
Ir yra daug, daug, daug kitų.
>> Taigi kiekvieną kartą, kai jūs naudojate paslauga, paslaugos
laukiasi informacija būti received-- prašymą
būti received-- A labai ypač formatas
ir privalo grįžti atgal informacija
labai ypač formatu, taip pat.
>> Taigi grįžkime prie mūsų iliustracija iš mūsų nori pasikalbėti su internetu.
Taigi mes džiaugiamės, ir mes norime eiti į cats.com, tiesa?
Taigi, jei mes tik kalbame, kad cats.com, mes galime pasakyti kažką panašaus ei,
galiu pamatyti jūsų pagrindinį puslapį?
Ir cats.com tikriausiai atsakyti, taip, tikrai.
Čia jūs einate.
Taigi, kad žmogus tarsi ASK-ir-atsakymas.
>> Ką tai atrodys HTTP?
Na, ji iš tikrųjų rūšies verčia gana švariai, kad kažką panašaus į tai.
Galėtume sakyti, GET / HTTP / 1.1 iš priimančiosios cats.com.
Taigi, iš esmės, ką aš darau čia prašydama interneto puslapio www.cats.com/~~pobj.
Mes paprastai praleisti velniop Šiandien, tačiau, kad būtų tiesiog
reiškia cats.com tinklapyje.
>> Oh, ir, beje, aš ruošiuosi būti naudojant HTTP versiją
1.1 bendrauti su jumis.
Tai tarsi analogiškas sakydamas, kaip, beje,
Aš ruošiuosi kalbėti prancūzų arba beje,
Aš ruošiuosi būti kalbėti anglų kalba.
Tai tik protokolo formatas.
Tai taip pat 1,0, kuris yra nėra visuotinai naudojamas nebėra.
Taigi, aš kalbu HTTP 1.1 ir Norėčiau www.cats.com/~~dobj.
Prašome gauti, kad už mane.
>> Ir tada ten kita informacija, too-- dot, DOT, dot ten,
kuris yra informacijos apie kas esate taip cats.com
žinotų, kur jį išsiųsti.
Tačiau tai yra du Rūšiuoti kritinių dalių
pačioje pradžioje HTTP request--
kaip Paleidus laiškas jums pasakyti, brangusis, tuščias.
Tai yra labai panašus į dvasią, kad.
>> Ir jei cats.com ketina sako, oi, tikrai, čia jūs einate.
Jie gali reaguoti kaip this-- Aš taip pat reaguoti.
Aš taip pat kalbėti HTTP 1.1.
Jūsų prašymas bus patvirtintas, 200 OK.
Ką jūs ketinate gauti yra HTML ir tada
taškas, taškas, taškas nors papildomos informacijos.
Ir tuo pačioje apačioje prašymas yra iš tikrųjų HTML,
Pažymėta kalba, turinys cats.com tinklalapyje.
>> Taigi HTTP / 1.1-- Aš pripažįstu tavo prašymas buvo priimtas per HTTP 1.1.
Jūsų prašymas buvo patvirtintas.
Aš galiu duoti jums tai, ką norite, 200 OK.
Jūs ruošiatės gauti HTML.
Ir tada čia yra HTML, kad jūs paprašė.
>> Tačiau kartais mūsų prašymai nėra visada eiti gana pagal planą.
Ar galiu pamatyti savo cats.html puslapį?
Na, ką daryti, jei jie sako, mes neturiu cats.html puslapį,
kuri, atrodo rūšies nerealu nes jie cats.com.
Jūs manote, kad jie būtų cats.html.
Bet Gerai.
Taigi tai yra tarsi iš įprastinis žmogaus sąveika
dabar mes turėjome su cats.com.
Kaip tai išversti?
>> Tai gali būti kažkas pažįstamas.
Mūsų prašymas atrodė lygiai tas pats, išskyrus užuot velniop
mes dabar gauti cats.html.
Taigi, ką iš esmės visas šis prašymas pasakyti, nurodykite mane
www.cats.com/cats.html.
Taigi priimančiosios ir viduryje dalis, kad viršutinėje eilutėje
ten rodo tiksliai kokį puslapį prašau.
Bet cats.com šiuo atveju nesiruošia kad būtų galima reaguoti teigiamai.
Jie nežino, mes kalbame apie.
Ir todėl tai yra kažkas, ką gali turėti matyti before-- HTTP 1.1 404 Not Found.
Aš negalėjo rasti ką Jums buvo prašydama.
Beje, aš norėčiau duoti jums atgal kai HTML, ir paprastai, kad HTML
yra tam tikru 404 puslapio turinys.
Ir jei tai yra cats.com, tai tikriausiai
kai Mielos katės į pintinę su liūdnas 404 veidas šalia jų,
nes jūs ketinate būti liūdna, kai jūs negaunate puslapį
kad jūs ieškote.
>> Tai tipo iš ką pagrindai protokolą, HTTP protokolą prašymai
atrodyti kaip.
Jie tikrai panašus į tai, kaip mes būtų panaši sąveika
vos žmogaus konvencijų klausia kažko
ir gauti jį atgal arba raštu laišką ir tikisi atsakymą
raidžių tam tikra forma.
Tai gana daug, ką HTTP tik canonicalizing
visiems prietaisams, kurie nori susipažinti tinklalapius, hiperteksto pervedimai.
>> Taigi formos linija, ši metodas prašymas tikslinė HTTP versija
vadinamas HTTP užklausos eilutę.
Tai paprastai yra pirmasis dalykas, kad yra perduodama kaip dalis HTTP užklausa
arba jei esate klausia HTTP.
Tai tarsi kaip, kaip sakiau, sakydamas Gerbiamieji, tuščias viršuje savo laiške.
Jie žino, kad esate rašyti jiems laišką.
Taigi tai yra labai panašūs sakydamas, aš žinau,
kad jie padaryti HTTP užklausą ir tai yra ypač formatas
jie prašo.
>> HTTP versija tikriausiai visada bus HTTP / 1/1.
1.0 taip pat egzistuoja, bet nėra tikrai naudojama daugiau.
Taikant CS50, GET tikriausiai visada
ką jūs ketinate būti naudojant, kai jūs iš tikrųjų
tiesioginiu HTTP užklausas.
Tačiau postas yra dar vienas variantas, kad mes nesiruošia kalbėti apie dabar.
Ir tada prašymas-taikinys yra kas puslapis apie šeimininko serverį
norėtumėte gauti.
Kaip jau sakiau, kad kompiuterio vardas yra atskira linija, paprastai
antroji linija bendrą pageidavimą.
Ir taip kartu, priimančioji pavadinimas ir prašymas tikslas
nurodyti konkretus išteklių ieškoma.
Mūsų 404 Pavyzdžiui antras prieš, aš klausia vėl www.cats.com,
cats.com yra priimančioji.
Ir mano prašymas linija, Aš pasakiau /cats.html.
Tai buvo mano prašymas taikiniu.
Taigi apskritai aš klausiau už turinį arba išteklių yra
ne www.cats.com/cats.html~~pobj.
>> Ir tada grindžiamas tuo, ar resursas egzistuoja
ir ar serveris gali pristatyti resursas pagal kliento
Paprašius, jums gali gauti įvairias statuso kodai atgal.
Kai kurie iš šių kodų statuso jums mačiau nes jie yra dalis atsakymo.
Kai kurios iš jų, 200 Gerai, yra tikriausiai gana tylus.
Jūs tikriausiai niekada puslapis reaguoti 200 OK.
Jūs tiesiog gauti iš šio puslapio.
Tai ne kaip 404 klaidą, kuris paprastai yra gana aiškus.
Jūs paprastai matyti, kad ji sako 404.
>> Taigi pakalbėkime apie tai, ką kai kurie tų būsenos kodai gali būti.
Vėl, kai serveris reaguoja į mus, jie
ketina reaguoti HTTP versijos statusą.
Paprastai HTTP / 1.1.
Kas tai yra būsena kodai bus?
Na, mes galime gauti sėkmę.
Taigi sėkmės kategorijos, mes gali gauti kodą 200 su tekstu OK.
Ką tai reiškia?
Na, viskas yra gerai.
Jūs padarė teisingą prašymą.
Štai tinkamas atsakas.
Galėjau pristatyti ką jūs norėjote.
>> Kartais jūs galite gauti kitus dalykus kad jūs nepastebėsite karto
bet yra šiek tiek nesėkmių.
Jie vadinami peradresavimus.
Yra dvi paplitusios čia.
301 Moved Permanently-- ką tai iš esmės reiškia,
yra puslapis šiuo metu naują vietą.
Jis bus ten gyventi amžinai.
Ir dauguma naršyklių automatiškai nukreipti jus.
Taigi jūs niekada tikrai pamatyti 301, arba, jei esate
naudojant tikrai out-of-data naršyklė, galbūt,
nes 301 atsakas yra dalis dot, dot, dot iš 301 atsakymo.
Jis taip pat pasakys, kur naujas puslapis.
Ir taip dauguma naršyklių tiesiog nukreipti jus ten,
darant prielaidą, kad norite eiti ten.
>> Kartais jūs taip pat gausite 302 rasta.
Ir tai viena, jūs iš tikrųjų vis dar gali pamatyti retkarčiais.
Kartais puslapiai perkelti laikinai.
Taigi ji nesiruošia būti pastatytas į prašymas pasakoja naršyklę
nuolat keisti bet kada jis mato prašymą, kad jums
padaryti jį pakeisti kažkuo kitu.
Taigi jūs galite pamatyti 302 Surasta, kuri iš esmės
sako šį puslapį gyvena kažkur kitur.
Bet tai nesiruošia ten gyventi amžinai.
Tai ilgainiui tikriausiai eiti atgal, iš kur jūs manote tai.
>> Tada jums gauti dalykų kaip kliento klaidų.
Taigi tai yra tie, jūs tikriausiai matė, dabar.
Jūs tikriausiai nemačiau Į 200S arba 300s,
bet jūs tikriausiai susipažinę su 400S.
Ir tai, ką mes kalbame apie per sekundę, 500S, taip pat.
>> Jūs galite pamatyti 401 Neleistinai.
Paprastai tai reiškia, kad jūs esate bando prieiti prie puslapio,
bet jūs nesate prisijungęs.
Taigi bandote ir eiti į kai profilis ar kažkas dėl "Facebook"
ar jums išbandyti ir prieiga some-- esate darbe.
Jūs bandote prieiti prie kažką apie savo darbą anketa internete,
Bet jūs nesate prisijungęs.
Jūs negalite matyti šio puslapio.
Jūs galite gauti 401 neatpažintą, o tai reiškia, mes tikriausiai
galės patenkinti šį prašymą, bet pirmiausia reikia prisijungti padaryti.
>> Priešingai, galite gauti 403 Draudžiama, kuri yra tai tikrai ne
Nesvarbu, jei esate prisijungęs, ar ne.
Šis prašymas yra neleidžiama.
Išteklius egzistuoja serveryje.
Tačiau Jums neleidžiama prieiti prie jo.
Tai paprastai vidaus failai, gyventi dėl įvairių priežasčių serverį
bet nėra skirtos būti atvertas nuo išorinio pasaulio,
ir todėl jie yra draudžiami.
Jie gyvena ten.
Aš nesakau, aš negaliu rasti.
Bet aš noriu pasakyti, aš negaliu duoti jį jums.
Ir nesvarbu, jei esate prisijungęs, ar ne.
Ir tada, žinoma, Labai dažni 404 Not Found.
Failas neegzistuoja serveryje.
Norėčiau patenkinti Jūsų prašymas, bet aš negaliu.
>> Taip pat kartais matau serverį klaidų, dažniausiai apskritai
yra 500 Vidinė serverio klaida, kuri iš tikrųjų nėra pasakys viską
ne visi apie tai, kas negerai.
Tačiau iš tikrųjų tai ne jums padaryti tavo prašymu klaida.
Tai tikrai serveris nesugeba pristatyti dėl prašymo kažkaip.
Taigi 500 yra bendrasis atsakas.
>> Taip pat matysite kažką kaip Paslauga neteikiama,
kuri manau yra kodas 503.
Ir vartai Timeout-- jei Ar kada nors teko puslapį tiesiog
sėdėti ten krovimo ir pakrovimo ir pakrovimo
ir jūs niekada nežinote, jei ji ketina apkrova ir tada galiausiai jis tiesiog says--
tiesiog pasiduoda.
Kad tai 504 Vartai timeout.
Serverio norėjau vykdyti savo prašymą,
bet kažkas negerai serverio side--
ne savo side-- į sukelti, kad būtų problema.
Dabar, mes galime baigti pasakojimą čia bet ką aš iš tikrųjų ketinate daryti dabar
yra aš ruošiuosi atverti mano naršyklė ir parodyti jums,
kaip jums gali būti galėtų pamatyti kai kurie iš šių kodų statuso
net jei jūs neturite paprastai juos matyti.
Ir mes ketiname daryti, kad atsižvelgiant Žvilgsnis kai kurių Kūrėjo įrankiai.
>> Visos teisės Taigi čia aš esu dabar mano naršyklės lange.
Ir aš noriu išmokti truputį daugiau apie šiuos HTTP užklausas.
Kaip man know-- tikrai žinome, jei puslapis goes-- kai kažkas negerai,
mes gauname 404.
Mes visi matėme, kad.
Mums nereikia, kad parodyti, kad.
Bet kas yra keletas kitų kokių?
Ir kaip matome Šie prašymai veiksmų?
>> Taigi pirmas dalykas, aš ruošiuosi padaryti, tai atverti Kūrėjo įrankiai.
Taigi Developer Tools yra pastatytas į daugelį šiuolaikinių naršyklių
ir leidžia mums pamatyti dalykus kad mes ne kitaip
see-- papildoma informacija rūšiuoti perduodami po mūsų interneto
prašymai.
Aš naudoju Google Chrome čia.
Ir atverti Kūrėjo įrankiai Chrome, jums tiesiog paspauskite F-12,
ir jis ketina atidaryti ji iki pusėje.
Kai aš įrašykite prašymą, aš priartinti todėl mes galime pamatyti, kas čia vyksta.
Bet ką aš ruošiuosi daryti savo naršyklėje bar is-- ir aš priartinti per here--
Aš padarysiu prašymą www.google.com.
Mes visi tikriausiai padarė šis prašymas anksčiau.
Aš ruošiuosi paspauskite Enter.
>> Dabar, per čia mano Kūrėjas Įrankiai, aš pasirinko skirtuką Network.
Ir jūs pastebėjote, daug dalykų čia.
Pažvelkite these-- 200 OK, 200 Gerai, kai Šių kodų statuso artėja.
Aš nežinau, kodėl aš gaunu 302 rasta.
Aš nesupratau, aš pamatyti tą vieną.
Bet iš esmės pastebėti, kad gana daug, kalbant apie mano "Google" request--
Aš padariau labai paprasta prašymas "Google" puslapyje.
Ir atsižvelgiant į proceso pateiksiu savo prašymą,
"Google", matyt, padarė daug Kitų prašymų mano vardu.
>> Bet aš atlikau GET prašymą Google puslapis ir aš gaunu 200 OKS daug.
Nematau 200 OK mano ekranas, bet aš gaunu
įvairius prašymus daug, kad buvo atlikti.
Dar vienas, kad aš esu gana tikrai ketina dirbti
is-- tiems iš jūsų, kurie tikrai senosios mokyklos,
žinotumėte, jog "Facebook" buvo ne visada Facebook.com.
Savo pirmųjų dienų ji buvo ne wwww.thefacebook.com.
Jie, matyt, negalėjo gauti prieigą į Facebook.com gana kurį laiką.
>> Ir taip, ką aš laukiu Čia yra gauti informaciją.
Ir mes pamatyti, jei tai keptuvės iš.
Ką aš tikėjosi čia yra gauti informaciją,
kad "Facebook" persikėlė nuolat nuo thefacebook.com į Facebook.com.
Taigi, aš laukiu kažkur netoli mano prašymus viršuje
per mano Developer Tools gauti 301 pranešimą
kad "Facebook" persikėlė visam laikui.
Vėlgi, aš nematau 301 mano naršyklės ekrane.
Ir todėl, kad tai yra 301, tai nuolatinis judėjimas.
Mano naršyklė, yra ta, kad tai moderni naršyklė,
tikriausiai ketina nukreipti man Facebook.com vistiek.
Bet pažiūrėkime, kas vyksta.
>> Ir dabar aš ruošiuosi eiti į thefacebook.com.
Ir yep, ten jis yra teisinga viršuje.
Jis nuėjo, bet jis ten buvo.
Leiskite man pereiti čia.
Štai čia viršuje.
Aš pateikė prašymą thefacebook.com, ir gaunu atsakymą
kad šis puslapis persikėlė visam laikui.
Ir tada 307 čia vidinis peradresavimas.
Ir todėl tai, kas iš tiesų persikėlė mane į daug daugiau
susipažinęs www.facebook.com.
>> Taigi šie atsakymo kodai padaryti dar atsitikti, net jei mes nematome jų.
Aš nesiruošia iliustruoja 401, 403, 404,
nes jūs tikriausiai matė tie įvairiose vietose.
500, aš norėčiau tiesiog būti rūšies of-- mes norime gauti pasisekė
jei gavo 500, nes mes nežinome, kas serveriai šiuo metu yra žemyn visur.
Tačiau šie kodai padaryti egzistuoja, ir, kad yra būdas
juos pasiekti, net jei mes ne matyti iš pirmų rankų mūsų sistemos.
Aš Doug Lloyd.
Tai CS50.