Лекция 5
WWW (World Wide Web) – всемирная паутина 2 3 основные идеи: 1. язык разметки / гипертекст (xHTML) 2. универсальная идентификация ресурсов (URL) 3.клиент/серверная архитектура (использование веб-серверов, протокол HTTP) Всемирная паутина глобальное информационное пространство, основанное на физической инфраструктуре Интернета и протоколе передачи данных HTTP.
Основные понятие WWW Веб-сервер - это сервер принимающий запрос от клиента по определенному протоколу (HTTP) и формирующий ответ. Веб-браузер – ПО для просмотра веб-сайтов (для формирования HTTP-запросов к веб-серверу и отображения HTTP-ответа (заголовок + содержимое страницы)) Веб-сайт – совокупность электронных документов, объединенных одним IP-адресом или доменным именем. HTTP (Hyper Text Transfer Protocol) – протокол прикладного уровня предназначен для обработки информации с веб-сайтов 3
Идентификатор ресурса * URI (Uniform Resource Identifier) – единообразный идентификатор ресурса. Формат: СХЕМА:ИДЕНТИФИКАТОР[?ЗАПРОС][#ФРАГМЕНТ] URL (Uniform Resource Locator) – единообразный локатор ресурса – подмножество URI, которое содержит информацию о местонахождении ресурса и способе обращения к нему URN (Uniform Resource Name) – единообразное имя ресурса 4 URI URL URN
Примеры URI urn:ISBN: urn:uuid:6e8bc430-9c3a-11d c9a66 urn:btih:JFRYN46FHYBNSWGH66HRJUU57HWEBNY magnet:?xt=urn:btih:JFRYN46FHYBNSWGH66HRJUU57HWEBNY urn:ietf:rfc: bitcoin:6Fhj6bsghf3FHTYNFGHhgfng45n7ndGf3A 5
Примеры URI ftp://ftp.admin.tomsk.ru/pub/distr/ file://C:\Windows\temp\txt.html#chapter2 news:comp.lang.perl.misc sms: tel: telnet:// :4352 data:text/html, example 6
7 URL (Universal Resource Locator) * Текущий URL (абсолютный URL)Относительный URLРезультат txt txt
URL и непредсказуемая мобильность ресурсов Интернета 8 URLPURL веб-сервер PURL Persistent Uniform Resource Locator – постоянный единообразный локатор ресурса Режим доступа Сервер с БД PURL Путь
История развития всемирной паутины Развитие WWW (World Wide Web): 1. Символьный гипертекст (текстовый браузер LineMode, 1991 г.) 2.Графически-ориентированные статические HTML- документы (графический браузер Mosaic, 1993 г.) 3. Динамические HTML-документы (SSI, CGI, Perl, PHP, ASP) 4. Активные HTML-документы (с 1995 г. - Java, JavaScript, Flash) 5. WebGL - интерактивная 3D-графику (2011 г.) 9
10
HTTP (HyperText Transfer Protocol) Протокол передачи гипертекста – символьно-ориентированный клиент-серверный протокол прикладного уровня без сохранения состояния, используемый сервисом World Wide Web. HTTP/0.9 - Самая ранняя версия протокола HTTP/0.9 была впервые опубликована в январе 1992 г. Спецификация протокола привела к упорядочению правил взаимодействия между клиентами и серверами HTTP, а также чёткому разделению функций между этими двумя компонентами. HTTP/1.0 - В мае 1996 года для практической реализации HTTP был выпущен информационный документ RFC 1945, что послужило основой для реализации большинства компонентов HTTP/1.0. HTTP/1.1 - Соединение между клиентом и сервером может оставаться открытым после отправки ответа на запрос. Клиент теперь обязан посылать информацию об имени хоста, к которому он обращается. 11
Структура HTTP * (подробнее в методичке!) Стартовая строка (для запроса и ответа различны); 2. Заголовок – характеризует тело сообщения (не обязательный); 3. Тело сообщения – непосредственно данные сообщения (не обязательный). Строка запроса выглядит так: Метод URI HTTP/Версия_протокола Пример запроса: GET it.aics.ru HTTP/1.1 Cтрока ответа сервера имеет следующий формат: HTTP/Версия Код_Состояния [Пояснение] Пример ответа: HTTP/ OK Метод - последовательность из любых символов, кроме управляющих и разделителей, указывающая на основную операцию над ресурсом. Код состояния информирует клиента о результатах выполнения запроса и определяет его дальнейшее поведение.
Методы протокола HTTP 13 Options Используется для определения возможностей веб-сервера или параметров соединения для конкретного ресурса. GETИспользуется для запроса содержимого указанного ресурса. Клиент может передавать параметры выполнения запроса в URI целевого ресурса после символа «?»: GET /path/resource?param1=value1&m2=value2 HTTP/1.1 HEADЗапрос HEAD обычно применяется для извлечения метаданных, проверки наличия ресурса (валидация URL) и чтобы узнать, не изменился ли он с момента последнего обращения. POSTИспользуется для запроса содержимого указанного ресурса. Передаваемые данные включаются в тело запроса. Аналогично с помощью метода POST обычно загружаются файлы.
Методы протокола HTTP 14 PUTПрименяется для загрузки содержимого запроса на указанный в запросе URI. Используя PUT, клиент предполагает, что загружаемое содержимое соответствуют находящемуся по данному URI ресурсу. PATCHАналогично PUT, но применяется только к фрагменту ресурса. DELETEУдаляет указанный ресурс. TRACEВозвращает полученный запрос так, что клиент может увидеть, что промежуточные сервера добавляют или изменяют в запросе. LINKУстанавливает связь указанного ресурса с другими. UNLINKУбирает связь указанного ресурса с другими.
Код состояния протокола HTTP 15 1xx Informational (информационный) В HTTP/1.1 клиент должен быть готов принять этот класс сообщений как обычный ответ, но ничего отправлять серверу не нужно. 100 Continue (Продолжать) 101 Switching Protocols (Переключение протоколов) 102 Processing (Идёт обработка) 2xx Success (Успешно) Сообщения данного класса информируют о случаях успешного принятия и обработки запроса клиента. 200 OK (Успешно) 201 Created (Создано) 202 Accepted (Принято) 3xx Redirection (Представление) Коды статуса класса 3xx сообщают клиенту, что для успешного выполнения операции нужно произвести следующий запрос к другому URI. 304 Not Modified (Не изменялось) 4xx Client Error (Ошибка клиента) Класс кодов 4xx предназначен для указания ошибок со стороны клиента. 404 Not Found (Не найдено) 5xx Server Error (Ошибка сервера) Коды 5xx выделены под случаи неудачного выполнения операции по вине сервера. 500 Internal Server Error (Внутренняя ошибка сервера)
Структура протокола в Chrome 16
Пример HTTP-запроса (метод GET) * GET HTTP/1.1 Accept: */* Referer: User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1) Host: tpu.ru Connection: close (пустая строка) GET /img/tom.gif HTTP/1.1 Host: tpu.ru (пустая строка) 17
Пример HTTP-запроса (метод POST) * POST HTTP/1.1 Host: aics.ru Content-Type: application/x-www-form-urlencoded Content-Length: 46 18
Пример HTTP-ответа (статический документ) * 19 HTTP/ OK Date: Wed, 14 Sep :31:03 GMT Server: Apache/ (Unix) PHP/4.3.5 Last-Modified: Thu, 11 Mar :24:02 GMT ETag: "1509a-14e-f865835b" Content-Length: 8686 Content-Type: text/html; charset=WINDOWS
Пример HTTP-ответа (динамический документ) * HTTP/ OK Date: Sun, 02 Mar :56:19 GMT Server: Apache/ (Win32) X-Powered-By: PHP/5.0.3 Content-length: 62 Connection: close Content-Type: text/html; charset=WINDOWS