>> Слухаць: Давайце пагаворым пра іншае protocol-- на перадачы гіпертэксту
Пратакол, або HTTP.
Такім чынам, мы ўжо казалі аб IP і TCP ў папярэдніх відэа.
І тыя пратаколы што дыктаваць, якім чынам інфармацыя
рухаецца ад машыны да машыны і ад праграмы да праграме або службе
абслугоўваць праз Інтэрнэт, з дапамогай гэтая сетка маршрутызатараў і машын.
>> Але гэта, як правіла, не ўся карціна, ці не так?
Звычайна, калі мы адпраўляем Інфармацыя, праграма
у тым: калі дадзеныя атрыманыя, напрыклад, напрыклад,
па электроннай пошце праз TCP-порт 25 або яго запыт старонкі вэб праз порт 80,
звычайна ёсць сістэма правіл ёсць апрацоўваць тое, што я толькі што атрымаў.
І HTTP з'яўляецца прыкладам менавіта такі пратакол.
>> HTTP з'яўляецца адзіным пратакол прыкладнога ўзроўню,
што мы збіраемся пагаварыць.
Але гэта іншы набор дыктавалых правілаў, як
Інфармацыя павінна быць перададзена і апрацоўваюцца з дапамогай сеткі Інтэрнэт.
У прыватнасці, HTTP вызначае, як менавіта
трэба зрабіць запыт для вэб-старонкі і як менавіта
сервер, машына што прымае вэб-старонак,
пастаўляе гэтую інфармацыю вярнуцца да кліентам.
>> Так гэты пратакол не на самай справе ёсць што-небудзь
з тым, як інфармацыя перамяшчаецца з кропкі А
ў кропку B. Гэта сапраўды сістэма правілаў
for-- гэта ў асноўным правілы Удзел для працы з вэб-старонкі,
падобна на калі хто-то хвалі свае сілы ў вас,
вы павінны махнуць назад.
Гэта свайго роду звычайны чалавек пратакол.
Пратакол HTTP проста кажа, калі Вы хочаце, каб запытаць сетку
старонка, пераканайцеся, што вашыя погляды фармат як this-- накшталт як фарматаванне
дзелавое пісьмо, напрыклад.
І адказ будзе аналагічным прыйшоў у адпаведнасці з гэтым пратаколам.
Ёсць іншы пратаколы ўзроўню прыкладанняў
што мы не збіраемся пагаварыць ў відэа.
Але гэта ставяцца рэчы, як Пратакол перадачы файлаў,
Просты пратакол перадачы пошты для адпраўка электроннай пошты, размеркавання дадзеных
Паслугі аддаленага працоўнага стала Пратакол, RDP, які
выкарыстоўваецца, калі вы хочаце, каб аддалены доступ кампутар з іншага кампутара,
XMPP, які часта вядомы як Jabber або ў чаце,
такім чынам, гэта пратакол для выкарыстання чата паслугі.
І шмат, шмат, шмат іншых.
>> Такім чынам, кожны раз, калі вы карыстаецеся служба, служба
чакае інфармацыю каб быць received-- запыт
быць received-- ў вельмі канкрэтны фармат
і патрабуецца для вярнуцца назад інфармацыю
ў вельмі пэўным фармаце, а таксама.
>> Такім чынам, давайце вернемся да нашай ілюстрацыі з нас хоча, каб пагаварыць з Інтэрнэт.
Такім чынам, мы рады, і мы хочам, каб перайсці да cats.com, праўда?
Так што, калі мы толькі што казалі, каб cats.com, мы маглі б сказаць што-то, як эй,
я магу ўбачыць вашу хатнюю старонку?
І, верагодна, cats.com адказаць, ды, вядома.
Тут вы ідзяце.
Так што гэта свайго роду чалавек АСК-адказ.
>> Што гэта выглядае ў HTTP?
Ну, гэта на самай справе выгляд перакладае даволі чыста, каб нешта накшталт гэтага.
Мы маглі б сказаць, GET / HTTP / 1.1 ад гаспадара cats.com.
Таму ў асноўным тое, што я раблю тут прасіць вэб-старонкі www.cats.com/~~pobj.
Мы звычайна апускаем рысу у цяперашні час, але, што б проста
значыць хатнюю cats.com ст.
>> Аб, і дарэчы, я збіраюся каб выкарыстоўваць HTTP версіі
1.1 для сувязі з вамі.
Гэта свайго роду аналагам кажучы, як, дарэчы,
Я збіраюся казаць па-французску, або па шляху,
Я збіраюся гаварыць на англійскай мове.
Вось толькі фармат пратаколу.
Гэта таксама 1,0, які звычайна не выкарыстоўваецца больш.
Так што я кажу HTTP 1.1, і Я хацеў бы www.cats.com/~~dobj.
Калі ласка, атрымліваем, што для мяне.
>> А тут яшчэ іншая інфармацыя, too-- кропкавы, кропка, кропка ёсць,
якая ўяўляе сабой інфармацыю аб якія вы так cats.com
будзе ведаць, дзе для яго адпраўкі.
Але гэта два Сартаваць крытычных частак
у самым пачатку з HTTP-request--
гэтак жа, як калі вы пачынаеце Ліст скажаш, дарагі, пусты.
Гэта вельмі падобна па духу на гэта.
>> І калі cats.com збіраецца кажуць, о, вядома, тут вы ідзяце.
Яны маглі б адказаць, як this-- Я таксама адказваць на запыты.
Я таксама кажу HTTP 1.1.
Ваш запыт будзе ўхвалены, 200 OK.
Тое, што вы збіраецеся атрымліваеце HTML, а затым
кропка, кропка, кропка некаторую дадатковую інфармацыю.
І на самай ніжняй частцы Запыт на самай справе HTML,
мова разметкі, то Змест хатнюю старонку cats.com ст.
>> Так HTTP / 1.1-- я прызнаць сваю Запыт быў прыняты з дапамогай HTTP 1.1.
Ваш запыт быў зацверджаны.
Я магу даць вам тое, што вы хочаце, 200 OK.
Вы збіраецеся атрымаць HTML.
А потым вось HTML, што вы прасілі.
>> Але часам нашы просьбы не заўсёды ідуць зусім па плане.
Ці магу я ўбачыць сваю старонку cats.html?
Ну, што, калі яны кажуць, мы ня ёсьць старонка cats.html,
які, здаецца, свайго роду нерэальна таму што яны cats.com.
Можна падумаць, што яны будуць мець cats.html.
Але ОК.
Такім чынам, гэта з'яўляецца свайго роду звычайны чалавек ўзаемадзеянне
цяпер мы мелі з cats.com.
Як гэта перавесці?
>> Гэта можа быць што-то вам знаёма.
Наша просьба выглядала сапраўды гэтак жа, акрамя замест таго, каб слэш
мы цяпер атрымліваць cats.html.
Так што цяпер у асноўным уся гэтая запыт кажу, калі ласка, дайце мне
www.cats.com/cats.html.
Так гаспадара і сярэдзіне частка гэтай верхняй радку
ёсць дакладна ўказаць на якой старонцы я прашу.
Але cats.com ў гэтым выпадку не будзе каб быць у стане адказаць станоўча.
Яны не ведаюць, што мы гаворым пра.
І так гэта тое, што вам, магчыма, прыйдзецца бачыў before-- HTTP 1.1 404 Not Found.
Я не мог знайсці тое, што вы прасілі.
Дарэчы, я збіраюся даць вам таму некаторыя HTML, і, як правіла, што HTML-
з'яўляецца ўтрыманне якога-небудзь 404 стар.
І ў выпадку cats.com, гэта, верагодна,
некаторыя мілыя кошкі у кошыку з сумны 404 твар побач з імі,
таму што вы будзеце сумна, калі вы не атрымаеце старонку
што вы шукаеце.
>> Гэта свайго роду асновах якой пратаколаў, запыты пратаколу HTTP
выглядае як.
Яны сапраўды падобныя, як мы б падобны ўзаемадзеянне
ўсяго чалавека канвенцый з просьбай нешта
і атрымаць яго назад або напісання лісты і чакаючы адказу
літара ў вызначаным фармаце.
Гэта даволі шмат, што HTTP толькі кананізацыі
для ўсіх прылад, якія жадаюць атрымаць доступ вэб-старонкі, гіпертэкставыя пераклады.
>> Такім чынам, лінія выглядзе, гэтага метад запыту HTTP мэтавай версія,
называецца HTTP-запыту лініі.
Гэта, як правіла, першае, што перадаецца як частка запыту HTTP
або калі вы просіце HTTP.
Гэта накшталт як, як я ўжо сказаў, кажучы дарагая, пусты ў верхняй Ваш ліст.
Яны ведаюць, што вы пісаць ім ліст.
Такім чынам, гэта вельмі падобна каб гаварыць, я ведаю,
што яны робяць запыт HTTP ў і гэта канкрэтны фармат
яны просяць.
>> HTTP версія, верагодна, заўсёды будзе HTTP / 1/1.
1.0 таксама існуе, але гэта не сапраўды выкарыстоўваецца больш.
Для мэт CS50, GET, верагодна, заўсёды
тое, што вы будзеце выкарыстоўваючы, калі вы на самой справе
робячы прамыя запыты HTTP.
Але слуп іншы варыянт, што мы не буду казаць пра прама цяпер.
А потым запыту мэта тое, што старонка на серверы гаспадара
Вы хацелі б атрымаць.
Як я ўжо сказаў, што імя хаста гэта асобная лінія, як правіла,
другая лінія ад агульнага запыту.
І так разам узятыя, гаспадар Назва і мэта запыту
пазначыць канкрэтны рэсурс у вышуку.
У нашым прыкладзе 404 секунду назад, я пытаўся зноў www.cats.com,
cats.com быць гаспадар.
І ў маёй радку запыту, Я сказаў /cats.html.
Гэта была мая мэта запыту.
Так у цэлым, я пытаўся для змест ці рэсурс, размешчаны
у www.cats.com/cats.html~~pobj.
>> І тады ў залежнасці ад таго існуе рэсурс
і ці будзе сервер можа даставіць рэсурс у адпаведнасці з кліента
Запыт, вы можаце атрымаць розныя коды статусу назад.
Некаторыя з гэтых кодаў стану, вы бачылі таму што яны з'яўляюцца часткай адказу.
Некаторыя з іх, 200 ОК, з'яўляюцца верагодна, даволі ціха.
Вы, напэўна, не бачыў ніколі старонка рэагаваць 200 OK.
Вы проста атрымліваеце старонку.
Гэта не тое, памылка 404, якія, як правіла, даволі ясна.
Вы звычайна бачыце, што ён кажа, 404.
>> Такім чынам, давайце пагаворым аб тым, што некаторыя з тых кодаў стану можа быць.
Зноў жа, калі сервер рэагуе на нас, яны
будзе рэагаваць HTTP статус версіі.
Звычайна HTTP / 1.1.
Якія гэтыя коды статусу будзе?
Ну, мы маглі б атрымаць поспех.
Такім чынам, у катэгорыі поспеху, мы можа атрымаць код 200 з тэкстам OK.
Што гэта значыць?
Ну, усё добра.
Вы зрабілі правільны запыт.
Вось правільны адказ.
Я быў у стане паставіць менавіта тое, што вы хацелі.
>> Часам вы можаце атрымаць іншыя рэчы што вы не заўважыце адразу
але некалькі няўдач.
Яны называюцца перанакіраваньні.
Там дзве распаўсюджаныя з іх тут.
301 Moved Permanently-- тое, што гэта ў асноўным азначае,
старонка зараз знаходзіцца на новым месцы.
Гэта будзе жыць там вечна.
І большасць браўзэраў аўтаматычна перанакіруе вас.
Такім чынам, вы ніколі не будзеце сапраўды бачыць 301, альбо, калі вы не
выкарыстоўваючы сапраўды па-за даты браўзэра, верагодна,
паколькі 301 адказу з'яўляецца часткай кропка, кропка, кропка ў 301 адказ.
Гэта таксама кажа вам, дзе новая старонка.
І так большасць браўзэраў проста перанакіраваць вас там,
пры ўмове, што вы хочаце, каб пайсці туды.
>> Часам вы таксама атрымаеце 302 знойдзена.
А гэта вы на самой справе можа ўсё яшчэ бачыць час ад часу.
Часам старонкі часова пераехаць.
Так што гэта не будзе пабудаваны ў запыт паведамляючы браўзэру
пастаянна мяняць у любы час ён бачыць, што вас запыт
зрабіць, каб змяніць яго на што-то яшчэ.
Такім чынам, вы можаце ўбачыць 302 Знойдзена, што ў асноўным
кажа, што гэта старонка жыве недзе ў іншым месцы.
Але гэта не збіраецца жыць там вечна.
Гэта, у канчатковым рахунку, верагодна, пайсці туды, дзе вы думаеце, гэта так.
>> Тады вы атрымаеце рэчы як кліенцкіх памылак.
Такім чынам, гэтыя тыя, якія вы напэўна, бачылі, цяпер.
Вы, напэўна, не бачылі у 200s або 300s, то
але вы, верагодна, знаёмыя з 400s.
І гэта тое, што мы будзем казаць аб у секунду, 500s, а таксама.
>> Вы можаце ўбачыць 401 Несанкцыянаванае.
Звычайна гэта азначае, што вы спрабуюць атрымаць доступ да старонцы,
але вы не зайшлі.
Такім чынам, вы паспрабуйце, і пайсці на некаторыя профіль ці нешта на Facebook
ці вы спрабуеце і доступ some-- вы на працы.
Вы спрабуеце атрымаць доступ да сёе- у інтэрнэце вашага творы,
але вы не ўвайшлі ў.
Вы не можаце бачыць старонку.
Вы можаце атрымаць 401 несанкцыянаванае, што азначае, мы, верагодна,
будзе ў стане задаволіць гэтую просьбу, але спачатку вы павінны ўвайсці, каб зрабіць так.
>> І наадварот, вы можаце атрымаць 403 Забаронены, што гэта на самай справе не
мае значэння, калі вы ўвайшлі ў сістэму або няма.
Гэты запыт не дапускаецца.
Існуе рэсурс на серверы.
Але вы не можаце атрымаць да яго доступ.
Гэта, як правіла ўнутраныя файлы, якія жыць на сэрвэры па розных прычынах
але не прызначаныя, каб быць доступ з навакольнага свету,
і таму яны забароненыя.
Яны жывуць там.
Я не кажу, што я не магу яе знайсці.
Але я кажу, што я не магу даць яго вам.
І гэта не мае значэння, калі Вы ўвайшлі ў сістэму ці не.
І тады, вядома, вельмі распаўсюджаным 404.
Файл не існуе на серверы.
Я хацеў бы, каб задаволіць Ваш запыт, але я не магу.
>> Вы таксама часам бачу сервер Памылкі, найбольш распаўсюджаным ў цэлым
быўшы 500 Унутраная памылка сервера, які на самай справе не што-небудзь расказаць вам
наогул пра тое, што пайшло не так.
Але гэта на самай справе не вы робіце памылка ў запыце.
Гэта на самай справе сервер няўдачу каб даставіць па просьбе нейкім чынам.
Так 500 з'яўляецца агульны адказ.
>> Вы таксама ўбачыце нешта як Служба недаступная,
які я лічу, гэта код 503.
І шлюз Timeout-- калі Вы калі-небудзь былі старонку проста
сядзець там і загрузку загрузка і загрузка
і вы ніколі не ведаеце, калі гэта будзе нагрузкі і затым у канчатковым рахунку гэта проста says--
проста здаецца.
Гэта 504 Шлюз чакання.
Сервер хацеў выканаць вашу просьбу,
але нешта пайшло не так на серверы side--
ня на side-- да прычынай таго, што, каб быць праблемай.
Зараз, мы маглі б скончыць гісторыю тут, але тое, што я на самой справе збіраецеся рабіць цяпер
з'яўляецца Я збіраюся адкрыць мой браўзэр і паказаць вам,
як вы маглі б быць у стане бачыць некаторыя з гэтых кодаў стану
нават калі вы наогул не бачыць іх.
І мы збіраемся зрабіць, што, прымаючы Паглядзіце на некаторыя прылады для распрацоўнікаў.
>> Усе правы Дык вось я Цяпер у маім акне браўзэра.
І я хачу, каб даведацца трохі Больш падрабязна аб гэтых HTTP-запытаў.
Як знаю-- вядома мы ведаем, калі старонка goes-- калі нешта ідзе не так,
мы атрымліваем 404.
Мы ўсе бачылі, што.
Мы не павінны паказаць, што.
Але тое, што некаторыя астатнія?
І як бы мы ўбачылі гэтыя запыты ў дзеянні?
>> Так першае, што я збіраюся зрабіць, гэта адкрыць Developer Tools.
Так Developer Tools ўбудаваныя у большасці сучасных браўзэраў
і дазваляюць нам бачыць рэчы што мы робім не інакш
see-- некаторую дадатковую інфармацыю накшталт перадаецца пад нашым сайце
запыты.
Я выкарыстоўваю Google Chrome тут.
І, каб адкрыць Developer Tools у Chrome, вы проста націсніце F-12,
і ён збіраецца адкрыць гэта на баку.
Пасля таго, як я друкую запыт, я буду набліжаць так што мы можам убачыць, што тут адбываецца.
Але тое, што я збіраюся зрабіць у сваім браўзэры бар is-- і я маштабу ў больш here--
Я зраблю запыт на www.google.com.
Мы ўсе, верагодна, зрабіў Гэты запыт раней.
Я стукну Enter.
>> Цяпер, тут, у маёй Developer Інструменты, я выбраў ўкладку Сетка.
І вы заўважыце шмат рэчаў тут.
Паглядзіце на these-- 200 OK, 200 OK, некаторыя з гэтых кодаў стану прыдумляць.
Я не ведаю, чаму я атрымліваю 302 знойдзена.
Я не разумею, што я ўбачу, што адзін.
Але ў асноўным даволі заўважыць, што шмат, з пункту гледжання маёй Google request--
Я зрабіў вельмі просты запыт старонцы Google.
І ў працэсе забяспечваючы маю просьбу,
Google па-відаць, зрабіў шмат іншых запытаў ад майго імя.
>> Але я зрабіў запыт GET для Google, старонка, і я атрымліваю шмат 200 OKS.
Я не бачу 200 ОК мой экран, але я атрымліваю
шмат запытаў, якія былі зробленыя.
Яшчэ адзін, што я даволі упэўнены, што будзе працаваць
is-- для тых, хто сапраўды старая школа,
Вы ведаеце, што Facebook быў не заўсёды Facebook.com.
У сваіх ранніх дзён гэта было у wwww.thefacebook.com.
Яны, мабыць, не мог атрымаць доступ каб Facebook.com даволі доўга.
>> І так, што я чакаў тут, каб атрымаць інфармацыю.
І мы ўбачым, калі гэта з рондаля.
Што я чакаў тут каб атрымаць інфармацыю
што Facebook ужо пераехаў на сталае жыхарства ад thefacebook.com ў facebook.com.
Так што я дзе-то чакаў у верхняй частцы маіх запытаў
больш у маіх інструментаў распрацоўніка каб атрымаць апавяшчэнне аб 301
што Facebook ужо пераехаў на пастаяннае жыхарства.
Зноў жа, я не ўбачу 301 на экране майго браўзэра.
І таму, што гэта 301, гэта пастаяннае рух.
Мой браўзэр, у тым, што гэта сучасны браўзэр,
, Верагодна, будзе перанакіраваць мне ўсё роўна Facebook.com.
Але давайце паглядзім, што адбудзецца.
>> А цяпер я збіраюся перайсці да thefacebook.com.
І так, там на самым версе.
Ён пайшоў прэч, але гэта было там.
Дазвольце мне прагортку уверх тут.
Прама тут на самым версе.
Я зрабіў запыт у thefacebook.com, і я атрымліваю адказ
што гэтая старонка пераехала назаўжды.
А потым тут 307 ўнутраны рэдырэкт.
І так гэта тое, што на самой справе мае пераехаў мяне да значна больш
www.facebook.com знаёмыя.
>> Такім чынам, гэтыя коды адказаў зрабіць яшчэ адбудзецца, нават калі мы не бачым іх.
Я не збіраюся ілюстрацыі 401, 403, 404,
таму што вы, напэўна, бачылі тыя, у розных кропках.
І 500, я б проста выгляд of-- мы пашанцуе
калі ёсць 500, таму што мы не ведаем, што серверы ў цяперашні час дзе заўгодна.
Але гэтыя коды зрабіць існуе, і ёсць спосаб
для доступу да іх, нават калі мы не убачыць іх на свае вочы ў нашых сістэмах.
Я Дуг Лойд.
Гэта CS50.