веб лекции / Lektsia_Veb_tekhnologii_2
.docxЛекция по «Веб-технологии»
02.02.12.
Тема: «Клиент-серверные технологии. Протокол HTTP»
Клиент-серверная технология предполагает наличие клиента инициализирующего соединение с поставщиком сервера, с помощью посылки запросов. Поставщик сервер получив запрос, производит необходимые действия и отдает результат клиенту.
HTTP (Hyper Text Transfer Protocol) – протокол прикладного уровня для передачи гипертекста.
Центральным объектом в HTTP является ресурс, который указывается в URI запросе клиента. Обычно к таким ресурсам является хранящийся на сервере файл, особенностью протокола HTTP является возможность указывать в запросе и ответе специальные параметры (формат, кодировка, язык). В отличие от многих других протоколов, HTTP является протоколом без памяти, то есть протокол не хранит информацию о предыдущих запросах клиента. Клиентские приложения, при запросах на веб-сервер могут хранить IP-адреса и последние запросы клиента. Программное обеспечение состоит из серверов, поставщиков услуг хранения и обработки информации. Клиенты – конечные потребители услуг.
Прокси-сервер – серверы для поддержки транспортных служб.
Клиентом является браузер.
Services Apache
Классическая схема HTTP сеанса состоит:
-
Установка TCP/IP соединения
-
Запрос клиента
-
Ответ сервера
-
Разрыв соединения TCP/IP
В состав HTTP запроса, передаваемого клиентом сервера, входят следующие компоненты:
-
Строка состояния
-
Поле заголовка
-
Пустая строка
-
Тело запроса
Строку состояния и полем запроса называют заголовком запроса.
Метод запроса может принимать значения GET, POST, HEAD, PUT, DELETE
GET- метод предназначен для получения ресурса с указанными URL. Получив запрос GET сервер должен прочитать указанный ресурс и вывести ресурс клиенту (ресурсом является HTML страница). Такой метод является не безопасным.
POST – предназначен для передачи на сервер, однако может применятся по разному, в основном для получения информации с сервера. В отличие от GET указывает конкретный ресурс.
Версия протокола бывает HTTP/1.0 HTTP/2.0 - цифра 1 это специальный класс сообщений, называемых информационным
Цифра 2 означает успешную обработку запроса клиента
Цифра 3 означает перенаправление запроса
Цифра 4 означает ошибку клиента.
Цифра 5 означает ошибку сервера (сервер не может обработать запрос)
Поле заголовка позволяет уточнить запрос (передать дополнительную информацию в запрос) и имеет следующие параметры – имя поля и значение. Он может принимать имена:
-
Host – означает доменное имя или IP-адрес узла.
-
Referrer – UML документа, на который ссылается ресурс.
-
From – адрес электронной почты.
-
Accept –указывает MIME типы данных обрабатываемых клиентом.
-
Language – указывает обозначение языка.
-
Range – присутствует если клиент запрашивает не весь документ, а часть.
-
Connection – используется для IP/TCP соединением.
-
User Agent –передается информацию о клиенте.
Запросы сервера клиента
-
Server – указывает имя и номер сервера
-
Age – указывает имя прошедшее от создания ресурса
-
Allow – указывает методы допустимые для данного ресурса
-
Content-Language – языки, которые должен поддерживать клиент для отображения ресурса.
-
Content-Type – типы данных MIME лежащих в ответе сервера.
-
Date – время генерация ответа
-
Location – расположение ресурса.
MIME (Multipurpose Internet Mail Extension) – многоцелевое почтовое расширение интернета.
Средста MIME используются в www, являются его неотъемлемой частью. Взаимодействует с протоколом HTTP , состоит из типа и подтипа. Тип определяет к какому формату относится запрос HTTP запроса либо ответа. Подтип уточняет формат .
Тип
application/pdf .pdf
application/doc .doc
image/gif .gif
text/plain .txt
audio/midi .midi
video/avi .avi
Идентификатор ресурсов URI (Uniform Resource Identifier) – представляет собой короткую последовательность символов идентифицирующих ресурс.
URL (Uniform Resource Locator) – помимо идентификации ресурса, предоставляет еще местоположение ресурса
URN (Uniform Resource Name ) – дает информацию, но не местонахождение.
URL имеет следующую структуру :
<схема>://<логин>:<пароль>@<хост>.<порт> /<URL-путь>
В схеме обычно указывается сетевой протокол.
Хост – полное системное имя DNS.
Протоколы передачи информации: ftp, http, https, telnet.
Безопасность передачи по http
Протокол шифрования http упаковывается SSL (Secure Sockets Layer).
SSL- это криптографический протокол обеспечивающий безопасность передачи данных.
TLS использует шифрование с открытым ключом для подтверждения передачи информации между передателем и получателем. Для идентификации клиент-сервера используется три вида модификации:
-
Basic – базовая идентификация, при которой имя пользователя и пароль передаются в заголовках http пакетах. Пароль при этом не шифруется и присутствует в кодировке Case64. Для данного типа, применение SSL обязательно.
-
Digest модификация – пароль пользователя передается в хешированном виде. Для данного типа применение SSL обязательно.
-
Integrated – интегрированная идентификация. Клиент и сервер обмениваются сообщениями для выяснения подлинности друг друга. После этого происходит передача данных в NTLM. В данном случае кодировка SSL не обязательно.
-
Cookie – не помнит пред истории запросов клиента, то каждый запрос обрабатывается в независимости друг от друга. Невозможно определить запрос исходит от одного клиента или другого. Cookie позволяет серверу хранить информацию на клиенте и извлекать ее от туда. Инициатором записи cookie является сервер. Если присутствует команда SetCookie то инициализируется запись cookie.