Основы web-технологий

Автор работы: Пользователь скрыл имя, 25 Апреля 2012 в 12:01, лекция

Краткое описание

Проанализировав запрос и определить тип запрашиваемого ресурса. Если ресурс статический, то найти его по указанному адресу. Если ресурс динамический, то извлечь из запроса значения переменных и передать их в качестве аргументов в программу, соответствующую указанному адресу

Вложенные файлы: 1 файл

Стр-Прикл_Прогр-12-Основы_web-технологий.pdf

— 647.54 Кб (Скачать файл)
Page 1
Прикладное
программирование
Лекция 12
Основы web-технологий

Page 2


Язык передачи гипертекста HTTP

HTTP-запрос типа GET

HTTP-запрос типа POST

Язык гипертекстовой разметки HTML

Расширяемый язык разметки XML

Язык программирования JavaScript

Cookies

Сессия

Asynchronous JavaScript and XML (AJAX)

Веб-сервер (Apache)

Контейнер сервлетов (Tomcat)
2
12. Основы web-технологий
Основные термины
Д.А.Стрикелев. Прикладное программирование

Page 3

Определить сетевой
(IP) адрес сервера,
содержащего
запрашиваемый
ресурс
3
12. Основы web-технологий
Основные этапы взаимодействия при использовании web-технологий
Д.А.Стрикелев. Прикладное программирование
Клиент
Сервер www.myserver.com
Адрес – 72.5.100.234
DNS-сервер
IP-адрес для имени
www.myserver.com?
72.5.100.234

Page 4

4
12. Основы web-технологий
Основные этапы взаимодействия при использовании web-технологий
Д.А.Стрикелев. Прикладное программирование
Клиент
Сервер www.myserver.com
Адрес – 72.5.100.234
Установить сетевое соединение
с сервером

Page 5

5
12. Основы web-технологий
Основные этапы взаимодействия при использовании web-технологий
Д.А.Стрикелев. Прикладное программирование
Клиент
Сервер www.myserver.com
Адрес – 72.5.100.234
Передать на сервер запрос, идентифицирующий
запрашиваемый ресурс, включив в него значения
ряда переменных, определѐнных пользователем.

Page 6

6
12. Основы web-технологий
Основные этапы взаимодействия при использовании web-технологий
Д.А.Стрикелев. Прикладное программирование
Сервер www.myserver.com
Адрес – 72.5.100.234
Проанализировав запрос и определить тип
запрашиваемого ресурса. Если ресурс статический,
то найти его по указанному адресу. Если ресурс
динамический, то извлечь из запроса значения
переменных и передать их в качестве аргументов в
программу, соответствующую указанному адресу.
?
Считать содержание
ресурса с диска
сервера.
Результат вывода
запущенной программы
рассматривать как
содержание ресурса

Page 7

7
12. Основы web-технологий
Основные этапы взаимодействия при использовании web-технологий
Д.А.Стрикелев. Прикладное программирование
Клиент
Сервер www.myserver.com
Адрес – 72.5.100.234
Передать клиенту содержание запрошенного
ресурса

Page 8

HTTP (англ. HyperText Transfer Protocol —
«протокол передачи гипертекста») —
протокол прикладного уровня передачи данных
(изначально — в виде гипертекстовых документов).
Основой HTTP является технология «клиент-сервер»,
то есть предполагается существование потребителей
(клиентов), которые инициируют соединение и посылают
запрос, и поставщиков (серверов), которые ожидают
соединения для получения запроса, производят
необходимые действия и возвращают обратно
сообщение с результатом.
8
12. Основы web-технологий
Протокол HTTP
Д.А.Стрикелев. Прикладное программирование

Page 9

Обмен сообщениями идѐт по схеме
«запрос-ответ». Для идентификации ресурсов
HTTP использует глобальные URI. В отличие от
многих других протоколов, HTTP не сохраняет своего
состояния. Это означает отсутствие сохранения
промежуточного состояния между парами «запрос-
ответ».
Компоненты, использующие HTTP, могут
самостоятельно осуществлять сохранение информации
о состоянии, связанной с последними запросами и
ответами, однако сам протокол не осведомлѐн о
предыдущих запросах и ответах, в нѐм не
предусмотрена внутренняя поддержка состояния, к
нему не предъявляются такие требования.
9
12. Основы web-технологий
Особенности протокола HTTP
Д.А.Стрикелев. Прикладное программирование

Page 10

Каждое HTTP-сообщение состоит из трѐх частей,
которые передаются в указанном порядке:

Стартовая строка — определяет тип сообщения;

Заголовки (англ. Headers) — характеризуют тело
сообщения, параметры передачи и прочие сведения;

Тело сообщения — непосредственно данные
сообщения. Обязательно должно отделяться от
заголовков пустой строкой.
Заголовки и тело сообщения могут отсутствовать, но
стартовая строка является обязательным элементом, так
как указывает на тип запроса/ответа.
10
12. Основы web-технологий
Структура протокола HTTP
Д.А.Стрикелев. Прикладное программирование

Page 11

Стартовые строки различаются для запроса и ответа.
Строка запроса выглядит так:
<Метод> <URI> HTTP/<Версия>
Метод — название запроса, одно слово заглавными
буквами.
URI определяет путь к запрашиваемому документу.
Версия — пара разделѐнных точкой арабских цифр.
Например: 1.1.
Чтобы запросить главную страницу сайта google.com,
клиент должен передать строку:
GET / HTTP/1.1
11
12. Основы web-технологий
Стартовая строка запроса в протоколе HTTP
Д.А.Стрикелев. Прикладное программирование

Page 12

Стартовая строка ответа сервера имеет следующий
формат:
HTTP/<Версия> <КодСостояния> <Пояснение>
Версия — пара разделѐнных точкой арабских цифр
как в запросе.
КодСостояния — три арабские цифры. По коду
статуса определяется дальнейшее содержимое
сообщения и поведение клиента.
Пояснение — текстовое короткое пояснение к коду
ответа для пользователя.
Например, на предыдущий наш запрос клиентом
данной страницы сервер ответил строкой:
HTTP/1.1 200 Ok
12
12. Основы web-технологий
Стартовая строка ответа в протоколе HTTP
Д.А.Стрикелев. Прикладное программирование

Page 13

Метод HTTP — последовательность
символов, указывающая на основную операцию
над ресурсом. Обычно метод представляет
собой короткое английское слово, записанное
заглавными буквами (название метода
чувствительно к регистру).
Каждый сервер обязан поддерживать как
минимум методы GET и HEAD. Кроме методов
GET и HEAD, часто применяется метод POST.
13
12. Основы web-технологий
Методы протокола HTTP
Д.А.Стрикелев. Прикладное программирование

Page 14

Используется для запроса содержимого
указанного ресурса. Клиент может передавать
параметры выполнения запроса в URI целевого ресурса
после символа «?»:
GET /path/resource?param1=val1&param2=val2
Согласно стандарту HTTP, запросы типа GET
считаются идемпотентными — многократное повторение
одного и того же запроса GET должно приводить к
одинаковым результатам (при условии, что сам ресурс
не изменился за время между запросами). Это позволяет
кэшировать ответы на запросы GET.
14
12. Основы web-технологий
Метод GET
Д.А.Стрикелев. Прикладное программирование

Page 15

Применяется для передачи пользовательских
данных заданному ресурсу. Например, в блогах
посетители обычно могут вводить свои комментарии к
записям в HTML-форму, после чего они передаются
серверу методом POST и он помещает их на страницу.
При этом передаваемые данные включаются в тело
запроса. Аналогично с помощью метода POST обычно
загружаются файлы.
В отличие от метода GET, метод POST не считается
идемпотентным, то есть многократное повторение
одних и тех же запросов POST может возвращать разные
результаты (например, после каждой отправки
комментария будет появляться одна копия этого
комментария).
Сообщение ответа сервера на выполнение метода
POST не кэшируется.
15
12. Основы web-технологий
Метод POST
Д.А.Стрикелев. Прикладное программирование

Page 16

Заголовки HTTP — это строки в HTTP-сообщении,
содержащие разделѐнную двоеточием пару параметр-
значение. Заголовки должны отделяться от тела
сообщения хотя бы одной пустой строкой.
Server: Apache/2.2.11 (Win32) PHP/5.3.0
Last-Modified: Sat, 16 Jan 2010 21:16:42 GMT
Content-Type: text/plain; charset=windows-1251
Content-Language: ru
Все заголовки разделяются на 4 основных группы:
Основные заголовки — должны включаться в любое
сообщение клиента и сервера.
Заголовки запроса — используются только в
запросах клиента.
Заголовки ответа — только для ответов от сервера.
Заголовки сущности — сопровождают каждую
сущность сообщения.
16
12. Основы web-технологий
Заголовки протокола HTTP
Д.А.Стрикелев. Прикладное программирование

Page 17

Запрос клиента:
GET /wiki/страница HTTP/1.1
Host: ru.wikipedia.org
User-Agent: Mozilla/5.0 (X11; U; Linux i686; ru; rv:1.9b5)
Accept: text/html
Connection: close
Ответ сервера:
HTTP/1.0 200 OK
Date: Wed, 11 Feb 2009 11:20:59 GMT
Server: Apache
X-Powered-By: PHP/5.2.4-2ubuntu5wm1
Last-Modified: Wed, 11 Feb 2009 11:20:59 GMT
Content-Language: ru
Content-Type: text/html; charset=utf-8
Content-Length: 1234
Connection: close
(далее следует запрошенная страница в HTML)
17
12. Основы web-технологий
Пример взаимодействия с использованием протокола HTTP
Д.А.Стрикелев. Прикладное программирование

Page 18

HTML — стандартный язык разметки документов
во Всемирной паутине. Язык HTML
интерпретируется браузером и отображается в
виде документа, в удобной для человека форме.
HTML —теговый язык разметки документов, в котором
любой документ представляет собой набор элементов,
причѐм начало и конец каждого элемента обозначается
специальными пометками — тегами. Элементы могут
быть пустыми, то есть не содержащими никакого текста и
других данных (например, тег перевода строки <br>). В
этом случае обычно не указывается закрывающий тег.
Кроме того, элементы могут иметь атрибуты,
определяющие какие-либо их свойства (например,
размер шрифта для элемента <font>). Атрибуты
указываются в открывающем теге.
18
12. Основы web-технологий
Язык разметки гипертекста HTML
Д.А.Стрикелев. Прикладное программирование

Page 19

HTML-документ, как правило, находится внутри
элемента html, начало и конец которого
отмечаются тегами <html> и </html>.
Дочерними по отношению к html являются теги head и
body. В первом размещается общая информация о
документе – его заглавие, язык изложения, ключевые
слова, описание, а также подключаются стили
оформления и JavaScript-файлы.
В теле документа помещается его основное
содержание, размеченное с использованием
специализированных тегов.
19
12. Основы web-технологий
Структура HTML-документа
Д.А.Стрикелев. Прикладное программирование

Page 20

Среди наиболее используемых HTML-тегов можно
отметить следующие:
<p>…</p> - оформляет фрагмент текста как абзац.
<br> - форсирует переход на новую строку при
отображении текста.
<strong>…</strong> - выделяет фрагмент текста
«жирным» начертанием.
<a href="URL">…</a> - делает фрагмент текста
гиперссылкой, при щелчке на которой открывается адрес
URL.
В адреса переходов можно также включать
дополнительные сведения о значениях передаваемых
переменных (в соответствии с требованиями метода
GET).
20
12. Основы web-технологий
Некоторые наиболее используемые HTML-теги
Д.А.Стрикелев. Прикладное программирование

Page 21

В отличие от запроса методом GET, запрос методом
POST (сопряжѐнный с передачей пользовательских
данных) невозможно выполнить открытием какого-либо
адреса в браузере. Для него необходима отправка
данных HTML-формы, включающей ряд элементов
пользовательского интерфейса.
<form method="post" action="URL">…</form> -
создаѐт в документе HTML-форму, передающую данные
по адресу URL с помощью метода POST.
<input type="text" name="ABC" value="DEF"> -
добавляет поле ввода с начальным значением DEF,
финальное значение которого будет отправлено в
переменной ABC.
<input type="submit" value="Отправить"> -
добавляет кнопку с надписью «Отправить», щелчок на
которой приведѐт к соответственному результату.
21
12. Основы web-технологий
HTML-формы
Д.А.Стрикелев. Прикладное программирование

Page 22

<input type="checkbox" name="ABC"
value="ON" checked> - добавляет в форму флажок
(включенный в исходном состоянии). Если флажок
сохранит «включенное» состояние, то в переменной ABC
будет передано значение ON, в противном случае
значение переменной ABC передаваться не будет.
<select name="ABC"><option
value="Yes">Да</option><option
value="No">Нет</option></select> - добавляет
выпадающий список с элементами «Да» и «Нет». При
выборе первого – в переменной ABC будет отправлено
значение Yes, при выборе второго – No.
22
12. Основы web-технологий
HTML-формы
Д.А.Стрикелев. Прикладное программирование

Page 23

XML — текстовый формат, предназначенный для
хранения структурированных данных (взамен
существующих файлов баз данных) и для обмена
информацией между программами.
Целью создания XML было обеспечение
совместимости при передаче структурированных данных
между разными системами обработки информации,
особенно при передаче таких данных через Интернет.
XML — это иерархическая структура, предназначенная
для хранения любых данных, и визуально может быть
представлена как дерево. Обязательное требование
заключается в том, что документ имеет только один
корневой элемент. Это означает, что данные всего
документа должны быть расположены между
единственным начальным корневым тегом и
соответствующим ему конечным тегом.
23
12. Основы web-технологий
Расширяемый язык разметки XML
Д.А.Стрикелев. Прикладное программирование

Page 24

Смешать 3 стакана муки, 0.25 грамма
дрожжей, 1.5 стакана тёплой воды, 1 чайную
ложку соли и тщательно замесить тесто.
Закрыть тканью и оставить на один час в
тёплом помещении. Замесить ещё раз,
положить на противень и поставить в духовку
на 30 минут.
24
12. Основы web-технологий
Пример документа без использования XML
Д.А.Стрикелев. Прикладное программирование

Page 25

<?xml version="1.0" encoding="UTF-8"?>
<recipe name="хлеб" preptime="60" cooktime="30">
<title>Простой хлеб</title>
<ingredient amount="3" unit="стакан">Мука</ingredient>
<ingredient amount="0.25"
unit="грамм">Дрожжи</ingredient>
<ingredient amount="1.5" unit="стакан">Тѐплая
вода</ingredient>
<ingredient amount="1" unit="чайная
ложка">Соль</ingredient>
<instructions>
<step duration="0">Смешать все ингредиенты и тщательно
замесить.</step>
<step duration="60">Закрыть тканью и оставить на один
час в тѐплом помещении.</step>
<step duration="30">Замесить ещѐ раз, положить на
противень и поставить в духовку на 30 минут.</step>
</instructions>
</recipe>
25
12. Основы web-технологий
Пример документа с использованием XML
Д.А.Стрикелев. Прикладное программирование

Page 26

Куки — небольшой фрагмент данных, созданный веб-
сервером и хранимый на компьютере пользователя в
виде файла, который веб-клиент (обычно веб-браузер)
каждый раз пересылает веб-серверу в HTTP-запросе при
попытке открыть страницу соответствующего сайта.
Без куки каждый просмотр веб-страницы является
изолированным действием, не связанным с просмотром
других страниц того же сайта, с помощью же куки можно
выявить связь между просмотром разных страниц.
Куки могут устанавливать дату их удаления, в этом
случае они будут автоматически удалены браузером в
указанный срок. Если дата удаления не указана, куки
удаляются сразу, как только пользователь закроет
браузер. Таким образом, указание даты истечения
позволяет сохранить куки более чем на одну сессию и
такие куки называются постоянными.
26
12. Основы web-технологий
Технология сохранения данных на стороне клиента - cookies
Д.А.Стрикелев. Прикладное программирование

Page 27

Запрашивая страницу, браузер отправляет веб-
серверу короткий текст с HTTP-запросом. Например, для
доступа к странице http://www.example.org/index.html,
браузер отправляет на сервер www.example.org
следующий запрос:
GET /index.html HTTP/1.1
Host: www.example.org
Сервер отвечает, отправляя запрашиваемую страницу
вместе с текстом, содержащим HTTP-ответ. Там может
содержаться указание браузеру сохранить куки:
HTTP/1.1 200 OK
Content-type: text/html
Set-Cookie: name=value
(содержимое страницы)
27
12. Основы web-технологий
Механизм работы cookies
Д.А.Стрикелев. Прикладное программирование

Page 28

Строка Set-cookie отправляется лишь тогда, когда
сервер желает, чтобы браузер сохранил куки. В этом
случае, если куки поддерживаются браузером и их приѐм
включѐн, браузер запоминает строку name=value (имя =
значение) и отправляет еѐ обратно серверу с каждым
последующим запросом. Например, при запросе
следующей страницы http://www.example.org/spec.html
браузер пошлѐт серверу следующий запрос:
GET /spec.html HTTP/1.1
Host: www.example.org
Cookie: name=value
Accept: */*
28
12. Основы web-технологий
Механизм работы cookies
Д.А.Стрикелев. Прикладное программирование

Page 29

Кроме пары имя/значение, куки может содержать
срок действия, путь и доменное имя. Эти атрибуты
должны идти после пары name=newvalue и разделяться
точкой с запятой. Например:
Set-Cookie: name=newvalue; expires=date;
path=/; domain=.example.org.
Домен и путь говорят браузеру, что куки должна быть
отправлена обратно на сервер при запросах URL для
указанного домена и пути. Если они не указаны,
используются домен и путь запрошенной страницы. Дата
истечения указывается в
формате «Нед,
ДД-Мес-ГГГГ ЧЧ:ММ:СС
GMT».
29
12. Основы web-технологий
Атрибуты cookies
Д.А.Стрикелев. Прикладное программирование

Page 30

Недостатками использования cookies являются:

не гарантированная их поддержка в браузере
пользователя;

постоянная передача данных cookies с каждым
запросом к серверу;

ограничение на максимальный размер cookies на
клиенте;

возможность перехвата значений, сохранѐнных в
cookies.
В некоторой степени преодолеть эти недостатки
позволяет применение сессий – сохранение
пользовательских данных на стороне сервера (например,
в отдельных файлах). Клиент при этом должен помнить
только идентификатор сессии, позволяющий определить
принадлежащий ему файл с данными.
30
12. Основы web-технологий
Технология сохранения данных на стороне сервера - session
Д.А.Стрикелев. Прикладное программирование

Page 31


Обработка запросов на сетевое соединение со
стороны клиентов.

Анализ получаемых HTTP-запросов и формирование
HTTP-ответов.

Предоставление возможности загружать размещѐнные
на сервере статические файлы.

Трансляция запросов к ресурсам в вызовы
специализированных программ-расширений (по
технологии CGI) и отправка клиентам результатов
работы программ.
31
12. Основы web-технологий
Задачи web-сервера (Apache HTTP Server)
Д.А.Стрикелев. Прикладное программирование

Page 32


Написан на компилируемом языке, что обеспечивает
высокую скорость работы.

Гибкость и универсальность.

Высокая надѐжность.

Отсутствует поддержка программ для web,
написанных на языке Java (сервлетов).
32
12. Основы web-технологий
Особенности Apache HTTP Server
Д.А.Стрикелев. Прикладное программирование

Page 33


Обработка запросов на сетевое соединение со
стороны клиентов.

Анализ получаемых HTTP-запросов и формирование
HTTP-ответов.

Предоставление возможности загружать размещѐнные
на сервере статические файлы.

Трансляция запросов к ресурсам в web-приложений на
языке Java.
33
12. Основы web-технологий
Задачи web-контейнера (Apache Tomcat Server)
Д.А.Стрикелев. Прикладное программирование

Page 34


Написан на языке Java, что обеспечивает высокую
переносимость и надѐжность, но сниженную
производительность.

Высокая надѐжность.

Поддержка программ для web, написанных на языке
Java (сервлетов).
34
12. Основы web-технологий
Особенности Apache Tomcat Server
Д.А.Стрикелев. Прикладное программирование

Page 35

35
12. Основы web-технологий
Конфигурация совместного использования Apache HTTP и Tomcat
Д.А.Стрикелев. Прикладное программирование
HTTP-сервер
Tomcat-сервер
Tomcat-сервер

Page 36

На сегодня всѐ, до свидания и до
следующей встречи (22.02)!

Информация о работе Основы web-технологий