Spreker: Kom ons praat oor 'n ander protocol-- die HyperText Transfer Protokol, of HTTP. Dus het ons gepraat oor IP en TCP in die vorige videos. En dit is protokolle wat dikteer hoe inligting beweeg van masjien masjien en van program tot program of diens tot diens via die internet, via Hierdie netwerk van routers en masjiene. Maar dit is gewoonlik nie die hele prentjie, reg? Gewoonlik wanneer ons stuur inligting, die program itself-- wanneer data is ontvang, sê, byvoorbeeld, in e-pos via TCP-poort 25 of 'n webblad versoek via poort 80, daar is gewoonlik 'n stelsel van reëls daar te verwerk wat ek nou net ontvang het. En HTTP is 'n voorbeeld van net so 'n protokol. HTTP is die enigste aansoek laag protokol dat ons gaan om te praat oor. Maar dit is nog 'n stel reëls dikteer hoe inligting word oorgedra en verwerk via die internet. In die besonder, HTTP spesifiseer presies hoe 'n mens moet 'n versoek om te maak 'n webblad en presies hoe 'n bediener, 'n masjien wat gasheer web bladsye, lewer dat die inligting terug aan kliënte. So hierdie protokol nie eintlik enigiets het te doen met hoe inligting beweeg van punt A punt B. Dit is regtig die stelsel van reëls for-- dit is basies die reëls van betrokkenheid vir die werk met 'n webblad, soortgelyk aan wanneer iemand golwe hulle hand op jou, jy veronderstel is om terug te waai. Dit is soort van 'n konvensionele menslike protokol. HTTP protokol net sê, as jy wil 'n web versoek bladsy, maak seker dat jou formaat lyk soos this-- soort van soos opmaak 'n besigheid brief, byvoorbeeld. En die reaksie sal insgelyks kom volgens hierdie protokol. Daar is ander aansoek laag protokolle dat ons nie gaan praat oor in videos. Maar hierdie dinge insluit soos die File Transfer Protocol, Simple Mail Transfer Protocol vir stuur e-pos, die Data Distribution Diens, Remote Desktop Protokol, RDP, wat gebruik as jy wil om afstand toegang jou rekenaar vanaf 'n ander rekenaar, XMPP, wat dikwels bekend as Jabber of chat, so dit is die protokol vir die gebruik van chat dienste. En daar is baie, baie, baie ander. So elke keer wat jy gebruik 'n diens, die diens verwag inligting 'n versoek om received-- received-- in 'n te wees baie spesifieke formaat en is verplig om terugkeer inligting terug in 'n baie spesifieke formaat as well. So laat ons gaan terug na ons illustrasie ons wil die internet te praat. So ons is gelukkig, en ons wil om te gaan na cats.com, reg? So as ons net praat cats.com, ons kan sê iets soos hey, Ek kan jou tuisblad sien? En cats.com sal waarskynlik reageer, ja, seker nie. Hier gaan jy. So dit is 'n menslike soort van vra-en-antwoord. Wat beteken dit lyk soos in HTTP? Wel, dit is eintlik soort vertaal mooi skoon om iets soos hierdie. Ons kan sê AOO / HTTP / 1.1 van gasheer cats.com. So basies wat ek hier doen, is vra vir die web page www.cats.com/. Ons laat gewoonlik die streep deesdae, maar dit sou net beteken cats.com se tuisblad. O ja, en op die pad, ek gaan word met behulp van HTTP weergawe 1.1 om te kommunikeer met jou. Dit is soort van analoog aan sê, soos, op die pad, Ek gaan praat in Frans, of op die pad, Ek gaan praat in Engels. Dit is net die formaat van die protokol. Dit is ook 1,0, wat meer algemeen gebruik word nie. So ek praat HTTP 1.1, en Ek wil graag www.cats.com/. Asseblief dat vir my. En dan is daar ander inligting, too-- die dot, dot, dot daar wat is inligting oor wie jy is so cats.com sou weet waar om dit te stuur. Maar dit is die twee soort van kritieke dele aan die begin van 'n HTTP request-- net soos wanneer jy begin 'n brief wat jy sê, liewe, leeg. Dit is baie soortgelyk in die gees dat. En as cats.com gaan sê, o, seker, hier gaan. Hulle kan reageer soos this-- ek ook reageer. Ek spreek ook HTTP 1.1. Jou versoek goedgekeur word, 200 OK. Wat jy oor om ontvang is HTML en dan dot, dot, dot paar ekstra inligting. En op die heel onderkant van die versoek is eintlik die HTML, die opmaak taal, die inhoud van cats.com se tuisblad. So HTTP / 1.1-- Ek erken jou versoek via HTTP 1.1 aanvaar. Jou versoek is goedgekeur. Ek kan jou gee wat jy wil hê, 200 OK. Jy is op die punt om HTML te ontvang. En dan hier is die HTML wat jy aangevra. Maar soms ons versoeke nie altyd baie volgens plan. Kan ek jou cats.html bladsy te sien? Wel, wat as hulle sê, ons nie 'n cats.html bladsy nie, wat lyk soort van onrealistiese want hulle is cats.com. Jy sou dink hulle cats.html sou hê. Maar OK. So dit is 'n soort van die konvensionele menslike interaksie ons het nou gehad het met cats.com. Hoe is dit vertaal? Dit kan iets vir jou bekend te wees. Ons versoek het presies dieselfde, behalwe in plaas van om slash ons nou om cats.html. So nou wat basies die hele versoek en gesê is gee my asseblief www.cats.com/cats.html. So het die gasheer en die middel deel van daardie boonste lyn daar aan te dui presies watter bladsy ek vra. Maar cats.com in hierdie geval is nie gaan in staat wees om positief te reageer. Hulle weet nie wat ons praat. En so dit is iets wat jy mag hê gesien before-- HTTP 1.1 404 nie gevind nie. Ek kon nie wat vind jy vra. By the way, ek gaan om jou te gee terug sommige HTML, en gewoonlik dat HTML is die inhoud van 'n paar 404 bladsy. En in die geval van cats.com, is dit waarskynlik 'n paar oulike katte in 'n mandjie met 'n hartseer gesig 404 langs hulle, want jy gaan wees hartseer wanneer jy nie bladsy kry wat jy soek. Dit is soort van die basiese beginsels van wat 'n protokol, die HTTP protokol versoeke lyk soos. Hulle is regtig soortgelyk aan hoe ons sou 'n soortgelyke interaksie te maak in net menslike konvensies vra vir iets en om dit terug te skryf of om 'n letter en verwag 'n reaksie letter in 'n bepaalde formaat. Dit is pretty much wat HTTP is net canonicalizing vir alle toestelle wat wil om toegang webblaaie, hiperteks oordragte. So 'n lyn van die vorm, is hierdie die metode versoek teiken HTTP weergawe, is 'n HTTP-versoek lyn genoem. Dit is gewoonlik die eerste ding wat oorgedra word as deel van 'n HTTP-versoek of as jy vra vir HTTP. Dit is soort van soos, soos ek gesê het, sê liewe, leeg by die top van jou brief. Hulle weet dat jy skryf 'n brief. So, dit is baie soortgelyk om te sê, ek weet wat hulle maak 'n HTTP-versoek en dit is die spesifieke formaat hulle vra. HTTP weergawe is waarskynlik altyd gaan HTTP / 01/01 wees. 1.0 bestaan ​​ook, maar is nie regtig nie meer gebruik word nie. Vir die doeleindes van CS50, GET is waarskynlik altyd wat jy gaan wees gebruik van wanneer jy eintlik is maak direkte HTTP-versoek. Maar POST is 'n ander opsie wat ons gaan nie om te praat oor nou. En dan versoek-teiken is watter bladsy op die bediener die gasheer se jy wil om te kry. Soos ek gesê het, dat die naam gasheer is 'n aparte lyn, gewoonlik die tweede lyn van die algehele versoek. En so saam, die gasheer naam en die versoek teiken spesifiseer 'n spesifieke hulpbron wat gesoek word. In ons 404 byvoorbeeld 'n tweede gelede, het ek is weer vra vir www.cats.com, cats.com synde die gasheer. En in my versoek lyn, Ek het gesê /cats.html. Dit was my versoek teiken. So algehele ek vra vir die inhoud of die hulpbron geleë op www.cats.com/cats.html. En dan gebaseer op of die hulpbron bestaan en of die bediener kan lewer die hulpbron in ooreenstemming met die kliënt se versoek, kan jy verskeie status kodes rug. Sommige van hierdie status kodes wat jy gesien het want hulle is deel van die antwoord. Sommige van hulle, 200 OK, is waarskynlik redelik stil. Jy het waarskynlik nog nooit gesien 'n bladsy te reageer 200 OK. Jy kry net die bladsy. Dit is nie soos 'n 404-fout, wat gewoonlik redelik duidelik. Jy sien gewoonlik dat dit sê 404. So laat ons praat oor wat sommige van daardie staat kodes kan wees. En as die bediener reageer op ons, hulle is gaan HTTP weergawe status reageer. Gewoonlik HTTP / 1.1. Wat is hierdie status kodes gaan wees? Wel, dalk kry ons 'n sukses te maak. So in die kategorie sukses, het ons dalk kode 200 kry met die teks OK. Wat beteken dit? Wel, alles is goed. Jy het 'n geldige versoek. Hier is 'n geldige antwoord. Ek was in staat om te lewer presies wat jy wou. Soms kan jy ander dinge dat jy nie dadelik sal agterkom maar is ietwat mislukkings. Hulle is geroep doorverwijzing. Daar is twee algemene kinders hier. 301 Het Permanently-- wat dit beteken basies is die bladsy is nou op 'n nuwe plek. Dit sal daar vir ewig te lewe. En die meeste blaaiers sal outomaties lei jou. So jy sal nooit regtig sien 'n 301, óf, tensy jy met behulp van 'n baie buite-datum leser, moontlik, omdat die 301 reaksie is deel van die dot, dot, dot van die 301 reaksie. Dit vertel ook waar die nuwe blad is. En so sal die meeste blaaiers net lei jou daar, die veronderstelling dat jy wil om daar te gaan. Soms het jy kry ook 302 gevind. En hierdie een wat jy eintlik dalk nog soms te sien. Soms bladsye skuif tydelik. So dit is nie van plan om gebou in die versoek vertel die leser om enige tyd permanent verander dit sien die versoek dat jy maak om dit te verander na iets anders. So jy kan sien 302 Gevind, wat basies sê hierdie bladsy woon iewers anders. Maar dit is nie van plan om daar woon tot in ewigheid. Dit sal uiteindelik waarskynlik gaan terug na waar jy dink dit is. Dan sal jy dinge soos kliënt foute. So dit is wat jy het waarskynlik gesien, nou. Jy het waarskynlik nie gesien het nie die 200's of die 300s, maar jy waarskynlik vertroud is met die 400s. En dit is wat ons sal praat oor in 'n tweede, 500s as well. Jy kan sien 401 Ongemagtigde. Gewoonlik beteken dit jy probeer om toegang tot 'n bladsy, maar jy het nie geteken nie. So jy probeer en gaan na 'n paar profiel of iets op Facebook of jy probeer en toegang some-- jy by die werk. Jy probeer om toegang tot iets op die internet se jou werk, Maar jy is nie in geteken nie. Jy kan nie sien die bladsy. Jy kan kry 'n 401 ongemagtigde, wat beteken dat ons waarskynlik staat wees om hierdie versoek te voldoen, sal wees nie, Maar eers moet jy nodig het om te teken om dit te doen. Omgekeerd, kan jy 403 Verbode, wat is dit nie regtig saak of jy is aangeteken is of nie. Hierdie versoek is nie toegelaat nie. Die hulpbron bestaan ​​op die bediener. Maar jy word nie toegelaat om dit te bekom. Dit is gewoonlik interne lêers wat lewe op die bediener om verskeie redes maar is nie bedoel om te wees verkry word vanaf die buite wêreld, en so word hulle verbied. Hulle woon daar. Ek sê nie ek kan dit nie vind nie. Maar ek sê: Ek kan dit nie vir jou gee. En dit maak nie saak of jy is aangeteken is of nie. En dan natuurlik die baie algemeen 404 nie gevind nie. Die lêer bestaan ​​nie op die bediener. Ek wil graag om te voldoen aan jou versoek nie, maar ek kan nie. Jy het ook soms sien bediener foute, die mees algemene algemeen om 500 Interne server fout, wat nie jy eintlik niks vertel glad oor wat verkeerd geloop het. Maar dit is nie eintlik wat jy maak 'n fout in jou versoek. Dit is eintlik die bediener versuim te lewer op die een of ander manier versoek. So 500 is die algemene reaksie. Jy sal ook sien iets soos Diens nie beskikbaar nie, wat ek glo is die kode 503. En Gateway Timeout-- as jy al ooit 'n bladsy het net daar sit en laai laai en laai en jy weet nie of dit gaan laai en dan uiteindelik is dit net says-- net gee op. Dit is 'n 504 Gateway Tydverstreke. Die bediener wou jou versoek uit te voer, maar iets het verkeerd gegaan op die bediener side-- nie op jou side-- om veroorsaak dat 'n probleem te wees nie. Nou, kan ons die storie hier eindig, maar wat ek eintlik nou gaan doen is ek gaan om oop te maak my leser en wys jou hoe jy dalk in staat wees om te sien sommige van hierdie status kodes selfs as jy nie oor die algemeen hulle te sien. En ons gaan om dit te doen deur die neem van 'n blik op sommige ontwikkelaar gereedskap. Alle regte So hier is ek nou in my blaaier. En ek wil 'n bietjie te leer meer oor hierdie HTTP-versoek. Hoe kan ek know-- beslis ons weet as 'n bladsy goes-- wanneer iets verkeerd gaan, Ons kry 'n 404. Ons het al gesien dat. Ons hoef nie te illustreer dat. Maar wat is 'n paar ander mense? En hoe sou ons sien hierdie versoeke in aksie? So eerste ding wat ek gaan doen is oop Developer Tools. So Developer Tools gebou in die meeste moderne blaaiers en ons in staat stel om te sien dinge dat ons dit nie doen nie anders see-- paar ekstra inligting soort onder ons web oorgedra versoeke. Ek gebruik Google Chrome hier. En Developer Tools oop in Chrome, jy moet net getref F-12, en dit gaan om oop te maak dit op die kant. Sodra ek die versoek tik, sal ek in zoom sodat ons kan sien wat gaan hier aan. Maar wat ek gaan om te doen in my browser bar is-- en ek sal in zoom oor here-- Ek sal 'n versoek aan www.google.com te maak. Ons het almal waarskynlik gemaak hierdie versoek voor. Ek gaan druk Enter. Nou, hier in my Ontwikkelaars Gereedskap, het ek gekies om die blad Network. En jy sien 'n baie van die dinge hier. Kyk na these-- 200 OK, 200 OK, sommige van hierdie status kodes kom. Ek weet nie hoekom ek kry 302 gevind. Ek het nie besef ek dat een te sien. Maar basies agterkom dat mooi baie, in terme van my Google request-- Ek het 'n baie eenvoudige versoek om Google se bladsy. En in die proses van lewering my versoek, Google het blykbaar 'n baie ander versoeke namens my. Maar ek het 'n get versoek om Google se gemaak page en ek kry 'n klomp 200 OKS. Ek is nie sien 200 OK op my skerm, maar ek kry 'n baie versoeke wat gemaak is. Een wat ek is redelik seker gaan werk is-- vir dié van julle wat regtig ou-skool, julle kan weet dat Facebook was nie altyd op Facebook.com. In die vroeë dae was dit op wwww.thefacebook.com. Hulle kon glo nie toegang kry om vir 'n rukkie Facebook.com. En so wat ek verwag hier is om inligting te kry. En ons sal sien of dit panne uit. Wat ek hier verwag is om inligting te kry dat Facebook permanent verskuif van thefacebook.com om Facebook.com. So ek iewers verwag naby die top van my versoeke oor in my Developer Tools om 'n kennisgewing 301 kry dat Facebook permanent verskuif. Weereens, sal ek nie sien 301 op die skerm my leser. En omdat dit 'n 301, dit is 'n permanente beweeg. My leser, is dat dit is 'n moderne leser, is waarskynlik gaan om te lei my Facebook.com in elk geval. Maar laat ons kyk wat gebeur. En nou gaan ek gaan na thefacebook.com. En yep, daar is dit reg aan die bokant. Dit het gegaan, maar dit was daar. Laat my blaai hier. Hier aan die bokant. Ek het 'n versoek aan thefacebook.com, en ek kry 'n reaksie dat hierdie bladsy permanent verskuif. En dan is hier 307 'n interne aanstuur. En so dit is wat eintlik verskuif my om die baie meer vertroud www.facebook.com. So het hierdie reaksie kodes doen nog steeds gebeur nie, selfs as ons sien hulle nie. Ek is nie van plan om illustreer 401, 403, 404, want jy het waarskynlik gesien diegene by verskeie punte. En 500, sou ek net soort of-- wil ons kry gelukkig As 'n 500 want ons weet nie wat bedieners is oral op die oomblik af. Maar hierdie kodes te doen bestaan ​​nie, en daar is 'n manier om dit te bekom, selfs as ons dit nie doen nie sien eerstehands op ons stelsels. Ek is Doug Lloyd. Dit is CS50.