СЛУШАЛИ: Давайте поговорим о другом 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.