****** 5

advertisement
Лекция 5
WWW (World Wide Web) – всемирная
паутина
Всемирная паутина — глобальное информационное пространство, основанное
на физической инфраструктуре Интернета и протоколе передачи данных HTTP.
3 основные идеи:
1. язык разметки / гипертекст (xHTML)
2. универсальная идентификация ресурсов (URL)
3. клиент/серверная архитектура (использование веб-серверов, протокол HTTP)
2
Основные понятие WWW
Веб-сервер - это сервер принимающий запрос от клиента по определенному
протоколу (HTTP) и формирующий ответ.
Веб-браузер – ПО для просмотра веб-сайтов (для формирования HTTP-запросов
к веб-серверу и отображения HTTP-ответа (заголовок + содержимое страницы))
Веб-сайт – совокупность электронных документов, объединенных одним IPадресом или доменным именем.
HTTP (Hyper Text Transfer Protocol) – протокол прикладного уровня предназначен
для обработки информации с веб-сайтов
3
Идентификатор ресурса *
URI (Uniform Resource Identifier) – единообразный идентификатор ресурса.
Формат:
СХЕМА:ИДЕНТИФИКАТОР[?ЗАПРОС][#ФРАГМЕНТ]
URL (Uniform Resource Locator) – единообразный локатор ресурса –
подмножество URI, которое содержит информацию о местонахождении
ресурса и способе обращения к нему
URN (Uniform Resource Name) – единообразное имя ресурса
URI
URL
URN
4
Примеры URI
urn:ISBN:0-395-36341-1
urn:uuid:6e8bc430-9c3a-11d9-9669-0800200c9a66
urn:btih:JFRYN46FHYBNSWGH66HRJUU57HWEBNY
magnet:?xt=urn:btih:JFRYN46FHYBNSWGH66HRJUU57HWEBNY
urn:ietf:rfc:2648
http://tools.ietf.org/html/rfc2648
bitcoin:6Fhj6bsghf3FHTYNFGHhgfng45n7ndGf3A
http://aics.ru/index.shtml?a=showboard
https://google.com
5
Примеры URI
ftp://ftp.admin.tomsk.ru/pub/distr/
file://C:\Windows\temp\txt.html#chapter2
mailto:president@moscow.ru
news:comp.lang.perl.misc
sms:+1-868-123-3423
tel:+1-868-123-3423
telnet://192.168.0.1:4352
data:text/html,<h1>example</h1>
6
URL (Universal Resource Locator) *
Текущий URL (абсолютный URL)
Относительный URL
Результат
http://aics.ru/text/doc1.html
/files/logo.gif
http://aics.ru/files/logo.gif
http://aics.ru/text/doc1.html
doc3.txt
http://aics.ru/text/doc3.txt
http://aics.ru/text/doc1.html
./doc4.txt
http://aics.ru/text/doc4.txt
http://aics.ru/text/doc1.html
../img/./first.jpg
http://aics.ru/img/first.jpg
http://ya.ru/cat/ed/1.html
../../main/../2.html
http://ya.ru/2.html
7
URL и непредсказуемая мобильность
ресурсов Интернета
Persistent Uniform Resource Locator – постоянный единообразный локатор ресурса
PURL
веб-сервер
PURL
URL
http://purl.oclc.org/OCLC/PURL/FAQ
Режим доступа
Сервер с БД PURL
Путь
8
История развития всемирной паутины
Развитие 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 * (подробнее в методичке!)
1. Стартовая строка (для запроса и ответа различны);
2. Заголовок – характеризует тело сообщения (не обязательный);
3. Тело сообщения – непосредственно данные сообщения (не обязательный).
Строка запроса выглядит так:
Метод URI HTTP/Версия_протокола
Пример запроса:
GET it.aics.ru HTTP/1.1
Метод - последовательность из любых
символов, кроме управляющих и разделителей,
указывающая на основную операцию над
ресурсом.
Cтрока ответа сервера имеет следующий формат:
HTTP/Версия Код_Состояния [Пояснение]
Пример ответа:
HTTP/1.1 200 OK
Код состояния информирует клиента о
результатах выполнения запроса и определяет
его дальнейшее поведение.
12
Методы протокола HTTP
Options
GET
HEAD
POST
Используется для определения возможностей веб-сервера или
параметров соединения для конкретного ресурса.
Используется для запроса содержимого указанного ресурса.
Клиент может передавать параметры выполнения запроса в URI
целевого ресурса после символа «?»: GET
/path/resource?param1=value1&m2=value2 HTTP/1.1
Запрос HEAD обычно применяется для извлечения метаданных,
проверки наличия ресурса (валидация URL) и чтобы узнать, не
изменился ли он с момента последнего обращения.
Используется для запроса содержимого указанного ресурса.
Передаваемые данные включаются в тело запроса. Аналогично с
помощью метода POST обычно загружаются файлы.
13
Методы протокола HTTP
PUT
PATCH
Применяется для загрузки содержимого запроса на указанный
в запросе URI. Используя PUT, клиент предполагает, что
загружаемое содержимое соответствуют находящемуся по
данному URI ресурсу.
Аналогично PUT, но применяется только к фрагменту ресурса.
DELETE
Удаляет указанный ресурс.
TRACE
Возвращает полученный запрос так, что клиент может увидеть,
что промежуточные сервера добавляют или изменяют в
запросе.
Устанавливает связь указанного ресурса с другими.
LINK
UNLINK
Убирает связь указанного ресурса с другими.
14
Код состояния протокола HTTP
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 (Внутренняя ошибка сервера)
15
Структура протокола в Chrome
16
Пример HTTP-запроса (метод GET) *
GET http://tpu.ru/img/tom.gif HTTP/1.1
Accept: */*
Referer: http://tpu.ru/
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://aics.ru/temp/test.php HTTP/1.1
Host: aics.ru
Content-Type: application/x-www-form-urlencoded
Content-Length: 46
18
Пример HTTP-ответа (статический документ) *
HTTP/1.1 200 OK
Date: Wed, 14 Sep 2005 00:31:03 GMT
Server: Apache/1.3.29 (Unix) PHP/4.3.5
Last-Modified: Thu, 11 Mar 2004 02:24:02 GMT
ETag: "1509a-14e-f865835b"
Content-Length: 8686
Content-Type: text/html; charset=WINDOWS-1251
<html>...
19
Пример HTTP-ответа (динамический документ) *
HTTP/1.1 200 OK
Date: Sun, 02 Mar 2003 15:56:19 GMT
Server: Apache/2.0.40 (Win32)
X-Powered-By: PHP/5.0.3
Content-length: 62
Connection: close
Content-Type: text/html; charset=WINDOWS-1251
<html>...
20
Download