Step 2 (S-44748)

From Stepik Wiki
Jump to: navigation, search

Step on Stepik: https://stepik.org/lesson/14824/step/2

Step 2 (S-44748) 1.png

[00:00 - 00:16] что происходит после того как установлено соединение и возможно опционально установлена тв соединения то есть ключ на шифрования далее необходимо каким то образом получить документ


[00:16 - 00:33] сервер а собственно здесь в игру вступает основной протокол в котором работают положение это протокол http гипертекст трансфер протокол как следует из названия этот протокол специально предназначен для


[00:33 - 00:52] а передача гипертекстовых документов то есть в 1 очередь документ а в чем особенность почему нельзя просто передавать документы через протокол tcp а


Step 2 (S-44748) 2.png

[00:52 - 01:10] просто послать файла по этому протоколу а существует ряд причин существует большое количество задач которые не решены в протоколе tcp и должны быть решены а в протоколе более высокого уровня а


[01:10 - 01:26] итак 1 задача заключается в том что нам нужно каким то образом структурировать наш поток а протокол tcp позволяет передавать данные сплошным потоком которого нет в общем то начала нет конца


[01:26 - 01:46] а клиент и сервер который взаимодействует по протоколу себе должны каким то образом договориться а каким в каком виде данные будут делиться на какие то части то есть когда можно считать что запрос закончен когда можно считать что ответ


[01:46 - 02:01] получен а нужна какая то внутренняя структура для данных передаваемых по себе это а 1 задача которую решает протокола теперь то есть это структура о передаче данных а


[02:01 - 02:16] протокол http позволяет но его основное значение это передача документов помимо передача документов он позволяет передавать информацию о документах а как мы говорили что документов сети world wide web есть


[02:16 - 02:35] mime тип то есть типа не будет понятно что с этим документом делать а вот хороший пример это информация которая должна идти с документов другой пример это длина документа то есть как мы видели соединение


[02:35 - 02:52] непонятно насколько большой большой объем данных передается а можно читать и соединения пока не будет закрыта но это не очень удобный подход желательно заранее знать размер документа который мы получаем это 2 пример


[02:52 - 03:07] информации которые передаются из документов а помимо передача документов а и а дополнительной метаинформации а при работе


[03:07 - 03:25] текстовая документами необходимо иногда бывает необходимо авторизоваться а это присутствовать в большинстве протоколов том что документы могут быть публично доступными всем а могут быть приватными то есть доступными только узкому


[03:25 - 03:40] кругу лиц поэтому нам нужно каким то образом организовать проверку прав доступа и сообщать пользователю о том что нужно предоставить какие то а когда дошло то есть


[03:40 - 03:58] логин пароль например либо сказать ему что доступа нет то есть нужно авторизовать пользователя в частности эта задача решается в протоколе http а требуется поддержка сессий а


[03:58 - 04:17] это требование оно вызвано тем что протокола http в частности а работает по принципу запрос ответ а если бы протокол предполагал постоянное соединение с этим было бы меньше проблем но тем не менее а протокол


[04:17 - 04:32] теперь не предполагать постоянного соединения предполагается что соединение постоянно открывается закрывается а и мало того каждый новый документ он может быть загружен снова сервер что сайт может располагаться на местных серверах


[04:32 - 04:50] каждый новый запрос может приходить на новый сервер а поэтому необходимо каким то образом поддерживать состояние то есть а чтобы вы могли знать какой именно пользователь к ним приходит за документов чтобы различать пользователей друг между другом


[04:50 - 05:09] такая задача также ставить и решается кроме того что степи позволяет решать множество задач связанных с оптимизацией передача например как ширму или документов


[05:09 - 05:24] окрашивание документов позволяет не передавать документы если они уже присутствуют в клиенте например в классического приложение вы переходите с 1 страницы на другой а


[05:24 - 05:42] документы которые вы смотрите они могут отличаться потому что вы смотрите стандартная стране разные страницы а вот стиля и java скрипты то есть а вспомогательный ресурс они зачастую на этих страницах совпадают потому что вы смотрите страницу с 1 сайта которая в одинаковом дизайне


[05:42 - 05:57] и а в общем то нет смысла передавать в 2 раза нужно каким то образом кэшироваться а это решается также есть и протоколе а в степи протоколе есть поддержка согласования


[05:57 - 06:11] документов а это позволяет клиенту и серверу согласовать в каком виде они будут принимать документ например сервер клиент может предложить сжимать


[06:11 - 06:31] документ с помощью zipper либо передавать его только на французском языке сервер может с этим согласиться либо отказаться то есть а с помощью специальных опции клиент и сервер могут договориться о том в каком виде передавать данный документ и управление соединением


[06:31 - 06:47] протокол себе он не предусматривает никакого управления кроме как закрытие то есть а в какой момент раскрываются соединения протокола http позволяет более гибко управлять а соединения в частности


[06:47 - 07:04] закрывать его либо оставлять открытым для последующих запросах а итак давайте посмотрим как схематически выглядит а работа протокола http работает


Step 2 (S-44748) 3.png

[07:04 - 07:19] поверх протоколов t last опционально шифрования протокола tcp протоколу http работает по принципу запрос ответ это означает что клиент формируют некоторый


[07:19 - 07:38] объем данных запрос отправляется на сервер вот 1 стрелочка это отправка запроса а сервер генерирует ответ и возвращает его клиентов стрелочка номер 2


[07:38 - 07:54] после чего запрос ответ считается законченным и собственно говоря браузеров а должен приходить к следующему вопросу в чем а ключевые особенности протокола http во 1 это


Step 2 (S-44748) 4.png

[07:54 - 08:09] протокол работает поверх tcp t last а в отличие от некоторых других некоторым могут работать в порядке теперь для протокола tcp нужно а чтобы под ним было надежно


[08:09 - 08:24] соединение с гарантирует доставку а протокола http является протоколом запрос ответ в отличие от некоторых других протоколов которые могут предполагать там стриминг да а


[08:24 - 08:40] протокол http не поддерживает соединения то есть изначально а протокол является status соединение между клиентом и сервером не поддерживается протокол http позволяет


[08:40 - 09:00] а передавать информацию о клиенте специальных заголовков а но тем не менее нет никакой гарантии что 1 клиент будет работать с каким то определенным серверам то сервер не может хранить у себя в памяти постоянно информацию об 1 клиенте то есть так называемый стоит


[09:00 - 09:15] а далее а протокол http является текстовым протоколом как мы видели это означает что данные передаются в виде текста простого текста а их можно просматривать


[09:15 - 09:33] а с помощью текстового редактора с помощью утилиты телнет так мы это делали можно вручную формировать запросы и получать ответы и а протоколу http является расширяемым протокол это следствие того что он текстовым а


[09:33 - 09:51] расширение текстовых протоколов в принципе происходит очень легко а в протоколе http различные опции передача сдаются в виде заголовков а есть стандартный набор заголовков которой поддерживается


[09:51 - 10:04] большинство браузеров и большинством серверов а разрешается вводить дополнительные заголовки и за счет этого а расширять протокол http