>> SPEAKER: Да поговорим за друго protocol-- за прехвърляне на хипертекст
Протокол, или HTTP.
Така че ние говорихме за IP и TCP в предишни клипове.
И тези, които са протоколи които диктуват как информацията
движи от машина на машина и от всяка програма или услуга
обслужване чрез интернет, чрез тази мрежа от маршрутизатори и машини.
>> Но това обикновено не е цялата картина, нали?
Обикновено, когато ние изпращаме информация, програмата
itself-- когато данните е получени, например, например,
в имейл чрез TCP порт 25 или искане уеб страница чрез порт 80,
обикновено има система от правила там да обработва какво Току-що получих.
И HTTP е пример на точно такъв протокол.
>> HTTP е единственото приложния слой протокол
че ние ще говорим.
Но това е друг набор от правила диктуват как
информация трябва да бъде предадена и обработена чрез интернет.
По-специално, HTTP уточнява как точно
един трябва да направи искане за уеб страница и как точно
сървър, машина която е домакин на уеб страници,
доставя тази информация Назад към КЛИЕНТИ.
>> Така че този протокол не всъщност има нещо
общо с това как информацията се движи от точка А
до точка Б. Това е наистина системата от правила
for-- това е основно правилата на ангажираност за работа с уеб страница,
подобен на, когато някой вълни силите си като вас,
което се очаква да размахва обратно.
Това е нещо като конвенционална човешкото протокол.
HTTP протокол просто казва, ако искате да направите заявка за уеб
страница, уверете се, че си външен вид формат като this-- нещо като форматиране
бизнес писмо, например.
И отговорът ще аналогично дойде според този протокол.
Има и други приложния слой протоколи
че ние няма да говорим за в клипове.
Но те включват неща като Протокола от File Transfer,
Simple Mail Transfer Protocol за изпращане на имейли, на разпространението на данните
Service, Remote Desktop Протокол, RDP, които
се използва, ако искате да използвате отдалечено вашия компютър от друг компютър,
XMPP, което е често известен като Jabber или чат,
така че това е протокол за използване на услуги за лафче.
И там са много, много, много други.
>> Така че всеки път, когато използвате услуга, услугата
очаква информация да се received-- искане
да бъде received-- в много специално формат
и се изисква за върнете обратно информация
в много специално формат, както добре.
>> Така че нека да се върнем към нашата илюстрация от нас, които искат да говорят с интернет.
Така че ние сме щастливи, и ние искаме за да отидете на cats.com, нали?
Така че, ако ние говорим само за cats.com, бихме могли да кажем нещо като хей,
мога да видя вашата начална страница?
И вероятно ще cats.com отговори, да, разбира се.
Заповядай.
Така че това е човешко сортиране на попитам и отговори.
>> Какво означава, че изглежда като на HTTP?
Е, това всъщност вид превежда доста чисто да нещо подобно.
Можем да кажем, GET / HTTP / 1.1 от хост cats.com.
Така че основно това, което правя тук е питам за www.cats.com/~~state=definite на уеб страница.
Ние обикновено се пропусне черта Просто в днешно време, но това щеше
означава cats.com началната страница.
>> О, и между другото, аз отивам да се използва HTTP версия
1.1 да общуват с вас.
Това е нещо, аналогичен на казвайки, като, между другото,
Отивам да се говори на френски, или по пътя,
Отивам да се говори на английски.
Това е само формата на протокола.
То също е 1.0, което е Не често се използва вече.
Така че аз говоря HTTP 1.1, и Бих искал www.cats.com/.
Моля се получи, че за мен.
>> И тогава там е друга информация, 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.
Но OK.
Така че това е нещо като конвенционална човешкото взаимодействие
а сега сме имали с 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 е просто canonicalizing
за всички устройства, които желаят да имат достъп уеб страници, хипертекстови трансфери.
>> Така че една линия на формата, този на метод искане целевата HTTP версията,
се нарича HTTP заявка линия.
Това е обикновено първото нещо, което е предава като част от заявка за HTTP
или ако питате за HTTP.
Това е нещо като, както казах, казвайки скъпа, празно в горната си писмо.
Те знаят, че ти си ги написването на писмото.
Така че това е много подобен да казва, аз знам,
че те са прави заявка за HTTP и това е определен формат
те пита за.
>> HTTP версията е вероятно винаги ще бъде HTTP / 1.1.
1.0 също съществува, но не е Наистина се използва вече.
За целите на CS50, GET е вероятно винаги
това, което ще бъде използвайки, когато сте в действителност
извършването на директни заявки HTTP.
Но POST е друга опция, която сме Няма да говорим за сега.
И след това искане-мишена е коя страница на сървъра на хоста
бихте искали да получите.
Както казах, това име на хост е на отделен ред, обикновено
на втора линия на общото искане.
И така, взети заедно, приемащата име и целта искане
зададени специфичен търси ресурс.
В нашия пример 404 преди една секунда, I питаше отново за www.cats.com,
cats.com е домакин.
И по мое искане линия, Казах /cats.html.
Това беше моето искане мишена.
Така че като цяло питах за съдържание или ресурса намира
най www.cats.com/cats.html.
>> Тогава въз основа на това дали съществува ресурса
и дали сървърът може да достави ресурса съгласно на клиента
искане, може да получиш различни кодове за състояние на гърба.
Някои от тези кодове за състояние, които сте виждали защото те са част от отговора.
Някои от тях, 200 OK, са Вероятно доста мълчи.
Вие вероятно никога не е виждал страница реагира 200 OK.
Можете просто да страницата.
Това не е като грешка 404, която обикновено е доста ясно.
Вие обикновено виждаме, че тя казва, 404.
>> Така че нека да говорим за това, което някои от тези кодове за състояние може да бъде.
Отново, когато сървърът отговаря за нас, те са
Ще отговорим статут версия HTTP.
Обикновено HTTP / 1.1.
Какви са тези кодове за състояние ще бъде?
Е, ние може да получи успех.
Така в категорията за успех, ние може да получите код 200 с текст OK.
Какво означава това?
Е, всичко е добро.
Ти направи валидно искане.
Ето валиден отговор.
Аз бях в състояние да достави точно това, което исках.
>> Понякога може да се получи с други неща че няма да се забележи веднага
но са малко неуспехи.
Те са наречени пренасочване.
Има две често срещани тук.
301 Moved Permanently-- какво е това същество означава,
е страницата, в момента е на ново място.
Тя ще живее там завинаги.
И повечето браузъри ще автоматично ще ви пренасочи.
Така че никога няма наистина да видим 301, или, освен ако не сте
с помощта на наистина вън-на-дата браузър, евентуално,
защото отговорът 301 е част от точката, точка, точката на отговора 301.
Той също така ви казва къде новата страница е.
И така, повечето браузъри ще Просто ви пренасочи там,
ако приемем, че искате да отидете там.
>> Понякога вие също ще получите 302 намерени.
И това всъщност една все още може да видите от време на време.
Понякога страници движат временно.
Така че това няма да бъде вграден в По искане казва на браузъра
да промените за постоянно всяко време тя вижда, че искането
направи да го смените с нещо друго.
Така че може да видите 302 Намерено, които основно
казва тази страница живее някъде другаде.
Но това няма да живее там завинаги.
Това в крайна сметка вероятно ще отида обратно до мястото, където мислите, че това е така.
>> Тогава вие ще получите неща като грешки на клиента.
Така че те са тези, които сме вероятно виждал, сега.
Може би не съм виждал най-200s или на 300 година,
но вие сте най-вероятно запознат с 400S.
И това е, което ние ще говорим за в секунда, 500s, както добре.
>> Може да видите 401 Unauthorized.
Обикновено това означава, че сте опитвате да отворите страницата,
но вие не сте включен.
Така се опитате и да отидете на някои профил или нещо на Facebook
или когато се опитвате и достъп some-- сте на работа.
Вие се опитвате да отворите нещо върху работата си в интернет,
но не сте влезли инча
Вие не можете да видите на страницата.
Може да получиш 401 неразрешен, което означава, вероятно
ще бъде в състояние да отговарят на това искане, но първо трябва да влезете, за да го направят.
>> От друга страна, може да получиш 403 Забранения, което е тя в действителност не
от значение, ако сте влезли в или не.
Това искане не е позволено.
Съществува Ресурсът на сървъра.
Но не ви е позволено да я ползвате.
Това обикновено вътрешни файлове живеят на сървъра поради различни причини
но не са предназначени да бъдат преглеждана от външния свят,
и така те са забранени.
Те живеят там.
Аз не казвам, че не мога да го намеря.
Но искам да кажа, че не мога да ти го дам.
И това не е от значение, ако сте влезли в или не.
И тогава, разбира се, на много чести 404 Not Found.
Файлът не съществува на сървъра.
Бих искал да задоволят Вашето запитване, но не мога.
>> Можете също така понякога се види сървъра грешки, най-често като цяло
е 500 Вътрешна грешка на сървъра, който всъщност не ви кажа нещо
изобщо за това какво се е объркало.
Но това не е всъщност ви прави грешка в заявката си.
Това всъщност сървъра при липса на да изпълни искането по някакъв начин.
Така че 500 е общ отговор.
>> Ще видите също нещо като Service Unavailable,
което според мен е код 503.
И шлюза Timeout-- ако някога сте имали една страница само
седят там товарене и товарене и товарене
и никога не се знае дали това ще натоварване и след това в крайна сметка тя просто says--
Просто се предава.
Това е 504 Gateway Timeout.
Сървърът е искал да изпълни заявката ви,
но нещо се обърка на сървъра side--
не на вашия side-- да причини, които да бъде проблем.
Сега, ние може да свърши тази история тук, но това, което аз всъщност ще правим сега
е аз отивам да се отворят браузъра си и ще ви покаже
как може да сте в състояние да видите някои от тези кодове за състояние
дори ако по принцип не ги виждам.
И ние ще направим, че като се вземат разгледаме някои инструменти за разработчици.
>> Добре И ето ме тук сега в моя прозорец на браузъра.
И аз искам да науча малко повече за тези HTTP заявки.
Как мога да know-- със сигурност знаем, ако страница goes-- когато нещо се обърка,
получаваме 404.
Всички сме виждали това.
Ние не се нуждаем, за да илюстрира това.
Но това, което някои други такива?
И как ще виждаме тези искания в действие?
>> Така че първото нещо, аз отивам да направите, е да се отворят за разработчици.
Така инструменти за разработчици са построени в повечето модерни браузъри
и ще ни позволи да видим нещата че ние не правим друго
see-- някаква допълнителна информация, нещо като се предава под нашия уеб
искания.
Аз съм с Google Chrome тук.
И за да отворите Инструменти за разработчици в Chrome, можете просто да натиснете F-12,
и то се случва, за да отворите тя се отстрани.
След като напишете молба, ще я увеличите да можем да видим какво се случва тук.
Но това, което аз ще направя в моя браузър бар is-- и аз ще я увеличите над here--
Аз ще направя искане до www.google.com.
Всички сме може би направил това искане преди.
Отивам да се удари Enter.
>> Сега, тук в моя Developer Инструменти, аз сте избрали раздела Network.
И забележите много неща тук.
Виж these-- 200 OK, OK 200, някои от тези кодове за състояние идва.
Аз не знам защо аз съм се 302 Намерени.
Не осъзнавах, че ще видя, че един.
Но основно забележите, че доста много, от гледна точка на моя Google request--
Направих много проста искане за страница на Google.
И в процеса на предоставяне на молбата ми,
Google очевидно е направила много на други искания на мое име.
>> Но аз съм направил искане получите на Google страница и аз съм се много 200 ОКС.
Не виждам 200 OK за екрана си, но аз съм се
много от исканията, които са били направени.
Един по-, че аз съм доста уверете се ходи на работа
is-- за тези от вас, които наистина са от старата школа,
може би знаете, че Facebook е не винаги Facebook.com.
В ранните си дни, че е най wwww.thefacebook.com.
Те очевидно не може да получи достъп да Facebook.com доста време.
>> И така, това, което аз очаквах тук е да се получи информация.
И ние ще видим дали това тигани навън.
Това, което се очакваше тук е да се получи информация
че Facebook е преместена за постоянно от thefacebook.com да Facebook.com.
Така че аз съм очаквал някъде близо до върха на моите искания
над в моите Developer Tools за да получите уведомление 301
че Facebook е преместена за постоянно.
Отново, аз няма да видите 301 на моя браузър екран.
И тъй като това е 301, това е един постоянен ход.
Моят браузър, е, че това е един модерен браузър,
вероятно ще се пренасочи ми да Facebook.com така или иначе.
Но нека да видим какво ще стане.
>> И сега аз отивам да отидете на thefacebook.com.
И да, там тя е точно в горната част.
Тя си отиде, но тя беше там.
Позволете ми да се придвижите нагоре тук.
Точно тук на върха.
I отправи искане към thefacebook.com, и аз съм се на отговор
че тази страница е преместена за постоянно.
И тогава тук е 307 вътрешно пренасочване.
И така, това е, което има действително ми се премества в много повече
запознат www.facebook.com.
>> Така че тези кодове на отговор направя още да се случи, дори и ако ние не ги виждаме.
Аз няма да илюстрират 401, 403, 404,
защото вероятно сте виждали тези, в различни точки.
И 500, аз просто ще бъде вид of-- щяхме да извадим късмет
ако имам 500, защото ние не знаем какво сървъри в момента са установени навсякъде.
Но тези кодове направя съществува, а има и начин
да има достъп до тях, дори и ако не го правим ги видите от първа ръка на нашите системи.
Аз съм Дъг Лойд.
Това е CS50.