SlideShare a Scribd company logo
WEB-ПРОГРАММИРОВАНИЕ
Лекция #2. Организация взаимодействия в World Wide Web
Яковенко К. С
Омский государственный университет им. Ф. М. Достоевского
Факультет компьютерных наук
2
HyperText Transfer Protocol
HTTP («протокол передачи гипертекста») —
символьно-ориентированный клиент-серверный
протокол прикладного уровня без сохранения
состояния, является одним из основных протоколов
передачи данных в Интернете.
Наиболее распространенными версиями на данный
момент являются HTTP 1.0
(RFC 1945) и HTTP 1.1 (RFC 2616)
3
Общая схема взаимодействия
по протоколу HTTP
Картинка честно взята здесь
4
Использование TCP-соединений
при передаче HTTP-сообщений
TCP-соединения могут использоваться двумя разными
способами:
Долговременное соединение;
Кратковременное соединение.
Долговременное соединение, в свою очередь, может
быть использовано также двумя способами:
Последовательная передача запросов с простоями
Конвейерная передача
5
Клиент-серверная архитектура
Вычислительная или сетевая архитектура, в
которой задания или сетевая нагрузка
распределены между поставщиками услуг,
называемыми серверами, и заказчиками услуг,
называемыми клиентами.
Нередко клиенты и серверы взаимодействуют
через компьютерную сеть и могут быть как
различными физическими устройствами, так и
программным обеспечением.
6
Web-клиент (браузер)
Клиентская часть, или веб-клиент, называемый
также браузером, или агентом пользователя,
представляет собой приложение, которое
устанавливается на компьютере конечного
пользователя и одной из важных функций
которого является поддержание графического
пользовательского интерфейса.
7
Web-сервер
Cервер, принимающий HTTP-запросы от
клиентов, обычно веб-браузеров, и выдающий им
HTTP-ответы, может хранить объекты локально в
каталогах компьютера и обеспечивать доступ к
этим объектам по URL-адресам.
Наиболее популярными веб-серверами сейчас
являются Nginx, Apache и
Microsoft Internet Information Server.
8
Прокси-сервер
Транзитный сервер, перенаправляющий HTTP-трафик.
Прокси-серверы используются для ускорения
выполнения запросов путем кэширования веб-
страниц. В локальной сети применяется как
межсетевой экран и средство управления HTTP-
трафиком.
В Интернете прокси часто используют для
анонимизации запросов. В современных браузерах
можно задать целый список прокси и переключаться
между серверами из этого списка по мере
необходимости.
9
Универсальный способ адресации
ресурсов в сети.
URI (Uniform Resource Identifier) – унифицированный
идентификатор ресурса,последовательность символов,
идентифицирующая абстрактный или физический
ресурс. Подразделяется на:
URL (Uniform Resource Locator) – это URI, который,
помимо идентификации ресурса, предоставляет
ещё и информацию о местонахождении этого
ресурса.
URN (Uniform Resource Name) – это URI, который
только идентифицирует ресурс в определённом
пространстве имён, но не указывает его
местонахождения.
10
Структура URL
<схема>://<логин>:<пароль>@<хост>:<порт>/<URL‐путь>?<параметры>#<якорь>
ftp
http
https
file
mailto
xmpp
user:password
user
google.ru
www.google.ru
188.43.64.216
localhost:8000
127.0.0.1:8080
dir_path/file_name.ext
first_name=John&last_name=Doe
fragment_id
11
Формат HTTP-сообщений
HTTP-запрос HTTP-ответ
HTTP/1.0 200 OK
Пример:
GET /wiki/HTTP HTTP/1.0
Обобщенная структура
сообщения
Стартовая строка
(обязательный
элемент)
GET URI – для версии 
протокола 0.9.
HTTP/1.x Код Пояснение
Пример:
Метод URI HTTP/Версия – 
для остальных версий.
Заголовки (следуют в произвольном порядке или могут отсутствовать) -
характеризуют тело сообщения, параметры передачи и прочие сведения
(более подробно смотри ниже)
Пустая строка
Тело сообщения
(может отсутствовать)
Здесь могут быть расположены
ключевые слова для поисковой
машины или страницы для
передачи на сервер
Здесь может быть
расположен текст
запрашиваемой
страницы
12
Методы HTTP.
Метод HTTP (HTTP Method) – последовательность
из любых символов, кроме управляющих и
разделителей, указывающая на основную
операцию над ресурсом.
Основные: HEAD, GET и POST.
Дополнительные: OPTIONS, PUT, PATCH, DELETE,
TRACE, LINK, UNLINK, CONNECT
13
Код состояния HTTP-ответа
Информирует клиента о результатах выполнения
запроса и определяет его дальнейшее поведение.
Набор кодов состояния является стандартом, и все
они описаны в соответствующих документах RFC.
Каждый код представляется целым трехзначным
числом. Первая цифра указывает на класс состояния,
последующие - порядковый номер состояния. За
кодом ответа обычно следует краткое описание на
английском языке.
14
Классы кодов состояния
HTTP-ответа
Класс кодов Краткое описание
1xx Informational
(Информационный)
информация о процессе передачи.
2xx Success
(Успешно)
Информация об успешном принятии и
обработки запроса клиента.
3xx Redirection
(Перенаправление)
информация о том, что для успешного
выполнения операции нужно произвести
следующий запрос по другому URL-адресу,
указанному в дополнительном заголовке
Location;
4xx Client Error
(Ошибка клиента)
информация об ошибках на стороне
клиента
5xx Server Error
(Ошибка сервера)
информация о неуспешном выполнения
операции по вине сервера
15
Заголовки HTTP-сообщения
Cтроки в HTTP-сообщении, содержащие разделённую
двоеточием пару параметр-значение.
Все заголовки разделяются на четыре основных группы:
General Headers  (Основные заголовки)  – должны включаться
в любое сообщение клиента и сервера.
Request Headers  (Заголовки запроса)  – используются только
в запросах клиента.
Response Headers  (Заголовки ответа)  – только для ответов от
сервера.
Entity Headers  (Заголовки сущности) – сопровождают каждую
сущность сообщения.
16
Тело HTTP сообщения
Тело HTTP сообщения (message-body), если оно
присутствует, используется для передачи
сущности, которая является полезной
информацией, передаваемой в запросе или
ответе.
17
Запрос клиента:
GET /wiki/страница HTTP/1.1
Host: ru.wikipedia.org
User-Agent: Mozilla/5.0 (X11; U; Linux i686; ru; rv:1.9b5) Gecko/200 Firefox/3.0b5
Accept: text/html
Connection: close
(пустая строка)
Ответ сервера:
HTTP/1.1 200 OK
Date: Wed, 11 Feb 2009 11:20:59 GMT
Server: Apache
X-Powered-By: PHP/5.2.4-2ubuntu5wm1
Last-Modifed: Wed, 11 Feb 2009 11:20:59 GMT
Content-Language: ru
Content-Type: text/html; charset=utf-8
Content-Length: 1234
Connection: close
(пустая строка)
(далее следует запрошенная страница в HTML)
Пример: Обычный GET-запрос
18
Дополнительные механизмы
взаимодействия в HTTP- протоколе
Кроме обычных GET запросов, также выделяют и
дополнительные:
Частичные GET запросы.
Условные GET запросы.
Согласование содержимого:
– Управляемое сервером
– Управляемое клиентом
19
Многоцелевое содержимое (MIME)
MIME (Multipurpose Internet Mail Extensions) – стандарт
(RFC 5322), описывающий представление данных таким
образом, чтобы их можно было пересылать по Интернету
и их передачу по электронной почте.
Клиенты указывают заголовок Accept для того, чтобы
сообщить, в каких форматах они предпочитают
принимать данные.
Серверы указывают заголовок Content-Type, чтобы
сообщить клиенту о том, в каком формате передается
прилагаемое содержимое.
20
Динамические и статические сайты
Статический сайт состоит из статичных html (htm,
dhtml, xhtml) страниц составляющих единое целое.
Содержит в себе текст, изображения, мультимедиа
содержимое (аудио, видео) и HTML-теги.
Все изменения вносятся в исходный код документов
(страниц) сайта, для чего необходимо иметь доступ к
файлам на веб сервере.
21
Динамические и статические сайты
Динамический сайт состоит из шаблонов, контента,
скриптов и прочего, в виде отдельных файлов.
Страница сайта, показываемая в итоге браузеру
пользователя, формируется на стороне сервера
динамически, по запросу, из страницы-шаблона и
отдельно хранимого содержимого.
Как правило для отображения любого количества
однотипных страниц используется одна страница-
шаблон, в которую подгружается соответствующее
содержимое.
22
Хронология развития языков web-программирования
Картинка честно взята здесь
23
Яковенко Кирилл Сергеевич
kirill.yakovenko@gmail.com
Омский государственный университет им. Ф. М. Достоевского
Факультет компьютерных наук

More Related Content

What's hot

шаг открытый урок
шаг  открытый урокшаг  открытый урок
шаг открытый урок
Vitaly Voskobovich
 
Клочков А. Автоматизация рассылки запросов потенциальным поставщикам средст...
Клочков А. Автоматизация  рассылки  запросов потенциальным поставщикам средст...Клочков А. Автоматизация  рассылки  запросов потенциальным поставщикам средст...
Клочков А. Автоматизация рассылки запросов потенциальным поставщикам средст...
FMTeam
 
Drupal Migrate
Drupal MigrateDrupal Migrate
Drupal Migrate
Andrii Podanenko
 
Инфраструктура социального проекта
Инфраструктура социального проектаИнфраструктура социального проекта
Инфраструктура социального проектаMedia Gorod
 
Vvedenie html 1
Vvedenie html 1Vvedenie html 1
Html
HtmlHtml
Chrome
ChromeChrome
Chrome
degestive
 
презентация Microsoft power_point
презентация Microsoft power_pointпрезентация Microsoft power_point
презентация Microsoft power_point
Jane R
 
Базы данных лекция №12
Базы данных лекция №12Базы данных лекция №12
Базы данных лекция №12
Vitaliy Pak
 
Task 0 - 4 Oct 2011
Task 0 - 4 Oct 2011Task 0 - 4 Oct 2011
Task 0 - 4 Oct 2011tegia
 
инструментарий
инструментарийинструментарий
инструментарийigdweb
 
Как осуществить поиск в Интернете
Как осуществить поиск в ИнтернетеКак осуществить поиск в Интернете
Как осуществить поиск в Интернете
Borisovna
 
Web весна 2013 лекция 2
Web весна 2013 лекция 2Web весна 2013 лекция 2
Web весна 2013 лекция 2Technopark
 
Html 1 Урок
Html 1 УрокHtml 1 Урок
Html 1 Урок
Nexa50
 
Проект OAI-Беларусь. Технические аспекты реализации
Проект OAI-Беларусь. Технические аспекты реализацииПроект OAI-Беларусь. Технические аспекты реализации
Проект OAI-Беларусь. Технические аспекты реализации
bntulibrary
 
Perl6 Pod Extend
Perl6 Pod ExtendPerl6 Pod Extend
Perl6 Pod Extend
zagru
 
Виктор Гунько "Трансфер данных: есть ли жизнь за пределами JSONa"
Виктор Гунько "Трансфер данных: есть ли жизнь за пределами JSONa"Виктор Гунько "Трансфер данных: есть ли жизнь за пределами JSONa"
Виктор Гунько "Трансфер данных: есть ли жизнь за пределами JSONa"
DataArt
 

What's hot (20)

шаг открытый урок
шаг  открытый урокшаг  открытый урок
шаг открытый урок
 
Lection1
Lection1Lection1
Lection1
 
Клочков А. Автоматизация рассылки запросов потенциальным поставщикам средст...
Клочков А. Автоматизация  рассылки  запросов потенциальным поставщикам средст...Клочков А. Автоматизация  рассылки  запросов потенциальным поставщикам средст...
Клочков А. Автоматизация рассылки запросов потенциальным поставщикам средст...
 
Drupal Migrate
Drupal MigrateDrupal Migrate
Drupal Migrate
 
Инфраструктура социального проекта
Инфраструктура социального проектаИнфраструктура социального проекта
Инфраструктура социального проекта
 
Vvedenie html 1
Vvedenie html 1Vvedenie html 1
Vvedenie html 1
 
Html
HtmlHtml
Html
 
Html
HtmlHtml
Html
 
Chrome
ChromeChrome
Chrome
 
презентация Microsoft power_point
презентация Microsoft power_pointпрезентация Microsoft power_point
презентация Microsoft power_point
 
Базы данных лекция №12
Базы данных лекция №12Базы данных лекция №12
Базы данных лекция №12
 
Task 0 - 4 Oct 2011
Task 0 - 4 Oct 2011Task 0 - 4 Oct 2011
Task 0 - 4 Oct 2011
 
инструментарий
инструментарийинструментарий
инструментарий
 
Как осуществить поиск в Интернете
Как осуществить поиск в ИнтернетеКак осуществить поиск в Интернете
Как осуществить поиск в Интернете
 
Web весна 2013 лекция 2
Web весна 2013 лекция 2Web весна 2013 лекция 2
Web весна 2013 лекция 2
 
Html 1 Урок
Html 1 УрокHtml 1 Урок
Html 1 Урок
 
Проект OAI-Беларусь. Технические аспекты реализации
Проект OAI-Беларусь. Технические аспекты реализацииПроект OAI-Беларусь. Технические аспекты реализации
Проект OAI-Беларусь. Технические аспекты реализации
 
Perl6 Pod Extend
Perl6 Pod ExtendPerl6 Pod Extend
Perl6 Pod Extend
 
Виктор Гунько "Трансфер данных: есть ли жизнь за пределами JSONa"
Виктор Гунько "Трансфер данных: есть ли жизнь за пределами JSONa"Виктор Гунько "Трансфер данных: есть ли жизнь за пределами JSONa"
Виктор Гунько "Трансфер данных: есть ли жизнь за пределами JSONa"
 
Apache fop
Apache fopApache fop
Apache fop
 

Viewers also liked

Лекция #7. Django ORM
Лекция #7. Django ORMЛекция #7. Django ORM
Лекция #7. Django ORM
Яковенко Кирилл
 
Лекция #6. Введение в Django web-framework
Лекция #6. Введение в Django web-frameworkЛекция #6. Введение в Django web-framework
Лекция #6. Введение в Django web-framework
Яковенко Кирилл
 
Лекция #5. Введение в язык программирования Python 3
Лекция #5. Введение в язык программирования Python 3Лекция #5. Введение в язык программирования Python 3
Лекция #5. Введение в язык программирования Python 3
Яковенко Кирилл
 
Тема 3. Комп'ютерна графіка
Тема 3. Комп'ютерна графікаТема 3. Комп'ютерна графіка
Тема 3. Комп'ютерна графіка
galanet82
 
Тема 4. Веб-технології
Тема 4. Веб-технологіїТема 4. Веб-технології
Тема 4. Веб-технології
galanet82
 
XML Schema
XML SchemaXML Schema
XML Schema
Fedor Malyshkin
 
Java. Lecture 06.1. XML Basics
Java. Lecture 06.1. XML BasicsJava. Lecture 06.1. XML Basics
Java. Lecture 06.1. XML Basicscolriot
 
Msu.Center.Lectures.J05.1 Xml Basics
Msu.Center.Lectures.J05.1 Xml BasicsMsu.Center.Lectures.J05.1 Xml Basics
Msu.Center.Lectures.J05.1 Xml Basicsolegol
 
Looking into the future
Looking into the futureLooking into the future
Looking into the future
Adrian Sims
 
Магия в Python: Дескрипторы. Что это?
Магия в Python: Дескрипторы. Что это?Магия в Python: Дескрипторы. Что это?
Магия в Python: Дескрипторы. Что это?
PyNSK
 
Мой Python всегда со мной!
Мой Python всегда со мной!Мой Python всегда со мной!
Мой Python всегда со мной!
PyNSK
 
Тестирование весна 2014 смешанное занятие 1
Тестирование весна 2014 смешанное занятие 1Тестирование весна 2014 смешанное занятие 1
Тестирование весна 2014 смешанное занятие 1Technopark
 
Фронтенд в Яндексе
Фронтенд в ЯндексеФронтенд в Яндексе
Фронтенд в Яндексе
Yandex
 
Дмитрий Исаев - Теория тестирования
Дмитрий Исаев - Теория тестированияДмитрий Исаев - Теория тестирования
Дмитрий Исаев - Теория тестированияYandex
 
Лекция №2. Абстрактные типы данных. ООП. Предмет "Структуры и алгоритмы обраб...
Лекция №2. Абстрактные типы данных. ООП. Предмет "Структуры и алгоритмы обраб...Лекция №2. Абстрактные типы данных. ООП. Предмет "Структуры и алгоритмы обраб...
Лекция №2. Абстрактные типы данных. ООП. Предмет "Структуры и алгоритмы обраб...Nikolay Grebenshikov
 
Программирование: от сложного к простому
Программирование: от сложного к простомуПрограммирование: от сложного к простому
Программирование: от сложного к простому
Nikolay Grebenshikov
 
Java осень 2014 занятие 1
Java осень 2014 занятие 1Java осень 2014 занятие 1
Java осень 2014 занятие 1
Technopark
 
Лекция 5. Встроенные коллекции и модуль collections.
Лекция 5. Встроенные коллекции и модуль collections.Лекция 5. Встроенные коллекции и модуль collections.
Лекция 5. Встроенные коллекции и модуль collections.
Roman Brovko
 
Лекция 10. Классы 2.
Лекция 10. Классы 2.Лекция 10. Классы 2.
Лекция 10. Классы 2.
Roman Brovko
 

Viewers also liked (20)

Лекция #7. Django ORM
Лекция #7. Django ORMЛекция #7. Django ORM
Лекция #7. Django ORM
 
Лекция #6. Введение в Django web-framework
Лекция #6. Введение в Django web-frameworkЛекция #6. Введение в Django web-framework
Лекция #6. Введение в Django web-framework
 
Лекция #5. Введение в язык программирования Python 3
Лекция #5. Введение в язык программирования Python 3Лекция #5. Введение в язык программирования Python 3
Лекция #5. Введение в язык программирования Python 3
 
Тема 3. Комп'ютерна графіка
Тема 3. Комп'ютерна графікаТема 3. Комп'ютерна графіка
Тема 3. Комп'ютерна графіка
 
Тема 4. Веб-технології
Тема 4. Веб-технологіїТема 4. Веб-технології
Тема 4. Веб-технології
 
XML Schema
XML SchemaXML Schema
XML Schema
 
Java. Lecture 06.1. XML Basics
Java. Lecture 06.1. XML BasicsJava. Lecture 06.1. XML Basics
Java. Lecture 06.1. XML Basics
 
Msu.Center.Lectures.J05.1 Xml Basics
Msu.Center.Lectures.J05.1 Xml BasicsMsu.Center.Lectures.J05.1 Xml Basics
Msu.Center.Lectures.J05.1 Xml Basics
 
Looking into the future
Looking into the futureLooking into the future
Looking into the future
 
Магия в Python: Дескрипторы. Что это?
Магия в Python: Дескрипторы. Что это?Магия в Python: Дескрипторы. Что это?
Магия в Python: Дескрипторы. Что это?
 
Мой Python всегда со мной!
Мой Python всегда со мной!Мой Python всегда со мной!
Мой Python всегда со мной!
 
Тестирование весна 2014 смешанное занятие 1
Тестирование весна 2014 смешанное занятие 1Тестирование весна 2014 смешанное занятие 1
Тестирование весна 2014 смешанное занятие 1
 
Фронтенд в Яндексе
Фронтенд в ЯндексеФронтенд в Яндексе
Фронтенд в Яндексе
 
Дмитрий Исаев - Теория тестирования
Дмитрий Исаев - Теория тестированияДмитрий Исаев - Теория тестирования
Дмитрий Исаев - Теория тестирования
 
Лекция №2. Абстрактные типы данных. ООП. Предмет "Структуры и алгоритмы обраб...
Лекция №2. Абстрактные типы данных. ООП. Предмет "Структуры и алгоритмы обраб...Лекция №2. Абстрактные типы данных. ООП. Предмет "Структуры и алгоритмы обраб...
Лекция №2. Абстрактные типы данных. ООП. Предмет "Структуры и алгоритмы обраб...
 
ФСПОиДП 14 лет
ФСПОиДП 14 летФСПОиДП 14 лет
ФСПОиДП 14 лет
 
Программирование: от сложного к простому
Программирование: от сложного к простомуПрограммирование: от сложного к простому
Программирование: от сложного к простому
 
Java осень 2014 занятие 1
Java осень 2014 занятие 1Java осень 2014 занятие 1
Java осень 2014 занятие 1
 
Лекция 5. Встроенные коллекции и модуль collections.
Лекция 5. Встроенные коллекции и модуль collections.Лекция 5. Встроенные коллекции и модуль collections.
Лекция 5. Встроенные коллекции и модуль collections.
 
Лекция 10. Классы 2.
Лекция 10. Классы 2.Лекция 10. Классы 2.
Лекция 10. Классы 2.
 

Similar to Лекция #2. Принцип организации World Wide Web

Мировые информационные ресурсы. Лекция 3
Мировые информационные ресурсы. Лекция 3Мировые информационные ресурсы. Лекция 3
Мировые информационные ресурсы. Лекция 3
Dmitriy Krukov
 
Информационные ресурсы и сервисы Интернета
Информационные ресурсы и сервисы ИнтернетаИнформационные ресурсы и сервисы Интернета
Информационные ресурсы и сервисы Интернета
Andrey Dolinin
 
архитектура и принципы работы типового Web приложения
архитектура и принципы работы типового Web приложенияархитектура и принципы работы типового Web приложения
архитектура и принципы работы типового Web приложения
Vladyslav Leikykh
 
Стажировка 2016-07-12 02 Денис Нелюбин. Web, HTTP, TCP/IP
Стажировка 2016-07-12 02 Денис Нелюбин. Web, HTTP, TCP/IPСтажировка 2016-07-12 02 Денис Нелюбин. Web, HTTP, TCP/IP
Стажировка 2016-07-12 02 Денис Нелюбин. Web, HTTP, TCP/IP
SmartTools
 
HTTP протокол
HTTP протоколHTTP протокол
HTTP протокол
lectureswww lectureswww
 
C++ STL & Qt. Занятие 07.
C++ STL & Qt. Занятие 07.C++ STL & Qt. Занятие 07.
C++ STL & Qt. Занятие 07.
Igor Shkulipa
 
Твое место во всемирной паутинеи
Твое место во всемирной паутинеиТвое место во всемирной паутинеи
Твое место во всемирной паутинеи
Borisovna
 
Иван Бибилов: http-протокол
Иван Бибилов: http-протоколИван Бибилов: http-протокол
Иван Бибилов: http-протоколYandex
 
презентация для википедии
презентация для википедиипрезентация для википедии
презентация для википедииEvgenia Kalinina
 
Вячеслав Бирюков - HTTP и HTTPS
Вячеслав Бирюков - HTTP и HTTPSВячеслав Бирюков - HTTP и HTTPS
Вячеслав Бирюков - HTTP и HTTPSYandex
 
Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 6
Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 6Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 6
Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 67bits
 
Протокол HTTP. Клиент-серверная модель взаимодействия. Servlet API
Протокол HTTP. Клиент-серверная модель взаимодействия. Servlet APIПротокол HTTP. Клиент-серверная модель взаимодействия. Servlet API
Протокол HTTP. Клиент-серверная модель взаимодействия. Servlet API
Ekaterina Kuchinskaya
 
Браузерные API обмена данными: какие и зачем
Браузерные API обмена данными: какие и зачемБраузерные API обмена данными: какие и зачем
Браузерные API обмена данными: какие и зачем
Pavel Klimiankou
 
06 - Web-технологии. Протокол HTTP
06 - Web-технологии. Протокол HTTP06 - Web-технологии. Протокол HTTP
06 - Web-технологии. Протокол HTTP
Roman Brovko
 
компьютерные сети
компьютерные сетикомпьютерные сети
компьютерные сетиellin55
 
Лекция 1. Модель OSI.
Лекция 1. Модель OSI.Лекция 1. Модель OSI.
Лекция 1. Модель OSI.
Alexey Furmanov
 
67
6767
67JIuc
 
Web осень 2012 лекция 2
Web осень 2012 лекция 2Web осень 2012 лекция 2
Web осень 2012 лекция 2Technopark
 

Similar to Лекция #2. Принцип организации World Wide Web (20)

Мировые информационные ресурсы. Лекция 3
Мировые информационные ресурсы. Лекция 3Мировые информационные ресурсы. Лекция 3
Мировые информационные ресурсы. Лекция 3
 
Информационные ресурсы и сервисы Интернета
Информационные ресурсы и сервисы ИнтернетаИнформационные ресурсы и сервисы Интернета
Информационные ресурсы и сервисы Интернета
 
архитектура и принципы работы типового Web приложения
архитектура и принципы работы типового Web приложенияархитектура и принципы работы типового Web приложения
архитектура и принципы работы типового Web приложения
 
Http session
Http sessionHttp session
Http session
 
Стажировка 2016-07-12 02 Денис Нелюбин. Web, HTTP, TCP/IP
Стажировка 2016-07-12 02 Денис Нелюбин. Web, HTTP, TCP/IPСтажировка 2016-07-12 02 Денис Нелюбин. Web, HTTP, TCP/IP
Стажировка 2016-07-12 02 Денис Нелюбин. Web, HTTP, TCP/IP
 
HTTP протокол
HTTP протоколHTTP протокол
HTTP протокол
 
C++ STL & Qt. Занятие 07.
C++ STL & Qt. Занятие 07.C++ STL & Qt. Занятие 07.
C++ STL & Qt. Занятие 07.
 
Твое место во всемирной паутинеи
Твое место во всемирной паутинеиТвое место во всемирной паутинеи
Твое место во всемирной паутинеи
 
Иван Бибилов: http-протокол
Иван Бибилов: http-протоколИван Бибилов: http-протокол
Иван Бибилов: http-протокол
 
презентация для википедии
презентация для википедиипрезентация для википедии
презентация для википедии
 
Вячеслав Бирюков - HTTP и HTTPS
Вячеслав Бирюков - HTTP и HTTPSВячеслав Бирюков - HTTP и HTTPS
Вячеслав Бирюков - HTTP и HTTPS
 
Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 6
Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 6Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 6
Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 6
 
Протокол HTTP. Клиент-серверная модель взаимодействия. Servlet API
Протокол HTTP. Клиент-серверная модель взаимодействия. Servlet APIПротокол HTTP. Клиент-серверная модель взаимодействия. Servlet API
Протокол HTTP. Клиент-серверная модель взаимодействия. Servlet API
 
Браузерные API обмена данными: какие и зачем
Браузерные API обмена данными: какие и зачемБраузерные API обмена данными: какие и зачем
Браузерные API обмена данными: какие и зачем
 
06 - Web-технологии. Протокол HTTP
06 - Web-технологии. Протокол HTTP06 - Web-технологии. Протокол HTTP
06 - Web-технологии. Протокол HTTP
 
компьютерные сети
компьютерные сетикомпьютерные сети
компьютерные сети
 
Лекция 1. Модель OSI.
Лекция 1. Модель OSI.Лекция 1. Модель OSI.
Лекция 1. Модель OSI.
 
67
6767
67
 
Web осень 2012 лекция 2
Web осень 2012 лекция 2Web осень 2012 лекция 2
Web осень 2012 лекция 2
 
WWW
WWWWWW
WWW
 

Лекция #2. Принцип организации World Wide Web

  • 1. WEB-ПРОГРАММИРОВАНИЕ Лекция #2. Организация взаимодействия в World Wide Web Яковенко К. С Омский государственный университет им. Ф. М. Достоевского Факультет компьютерных наук
  • 2. 2 HyperText Transfer Protocol HTTP («протокол передачи гипертекста») — символьно-ориентированный клиент-серверный протокол прикладного уровня без сохранения состояния, является одним из основных протоколов передачи данных в Интернете. Наиболее распространенными версиями на данный момент являются HTTP 1.0 (RFC 1945) и HTTP 1.1 (RFC 2616)
  • 3. 3 Общая схема взаимодействия по протоколу HTTP Картинка честно взята здесь
  • 4. 4 Использование TCP-соединений при передаче HTTP-сообщений TCP-соединения могут использоваться двумя разными способами: Долговременное соединение; Кратковременное соединение. Долговременное соединение, в свою очередь, может быть использовано также двумя способами: Последовательная передача запросов с простоями Конвейерная передача
  • 5. 5 Клиент-серверная архитектура Вычислительная или сетевая архитектура, в которой задания или сетевая нагрузка распределены между поставщиками услуг, называемыми серверами, и заказчиками услуг, называемыми клиентами. Нередко клиенты и серверы взаимодействуют через компьютерную сеть и могут быть как различными физическими устройствами, так и программным обеспечением.
  • 6. 6 Web-клиент (браузер) Клиентская часть, или веб-клиент, называемый также браузером, или агентом пользователя, представляет собой приложение, которое устанавливается на компьютере конечного пользователя и одной из важных функций которого является поддержание графического пользовательского интерфейса.
  • 7. 7 Web-сервер Cервер, принимающий HTTP-запросы от клиентов, обычно веб-браузеров, и выдающий им HTTP-ответы, может хранить объекты локально в каталогах компьютера и обеспечивать доступ к этим объектам по URL-адресам. Наиболее популярными веб-серверами сейчас являются Nginx, Apache и Microsoft Internet Information Server.
  • 8. 8 Прокси-сервер Транзитный сервер, перенаправляющий HTTP-трафик. Прокси-серверы используются для ускорения выполнения запросов путем кэширования веб- страниц. В локальной сети применяется как межсетевой экран и средство управления HTTP- трафиком. В Интернете прокси часто используют для анонимизации запросов. В современных браузерах можно задать целый список прокси и переключаться между серверами из этого списка по мере необходимости.
  • 9. 9 Универсальный способ адресации ресурсов в сети. URI (Uniform Resource Identifier) – унифицированный идентификатор ресурса,последовательность символов, идентифицирующая абстрактный или физический ресурс. Подразделяется на: URL (Uniform Resource Locator) – это URI, который, помимо идентификации ресурса, предоставляет ещё и информацию о местонахождении этого ресурса. URN (Uniform Resource Name) – это URI, который только идентифицирует ресурс в определённом пространстве имён, но не указывает его местонахождения.
  • 11. 11 Формат HTTP-сообщений HTTP-запрос HTTP-ответ HTTP/1.0 200 OK Пример: GET /wiki/HTTP HTTP/1.0 Обобщенная структура сообщения Стартовая строка (обязательный элемент) GET URI – для версии  протокола 0.9. HTTP/1.x Код Пояснение Пример: Метод URI HTTP/Версия –  для остальных версий. Заголовки (следуют в произвольном порядке или могут отсутствовать) - характеризуют тело сообщения, параметры передачи и прочие сведения (более подробно смотри ниже) Пустая строка Тело сообщения (может отсутствовать) Здесь могут быть расположены ключевые слова для поисковой машины или страницы для передачи на сервер Здесь может быть расположен текст запрашиваемой страницы
  • 12. 12 Методы HTTP. Метод HTTP (HTTP Method) – последовательность из любых символов, кроме управляющих и разделителей, указывающая на основную операцию над ресурсом. Основные: HEAD, GET и POST. Дополнительные: OPTIONS, PUT, PATCH, DELETE, TRACE, LINK, UNLINK, CONNECT
  • 13. 13 Код состояния HTTP-ответа Информирует клиента о результатах выполнения запроса и определяет его дальнейшее поведение. Набор кодов состояния является стандартом, и все они описаны в соответствующих документах RFC. Каждый код представляется целым трехзначным числом. Первая цифра указывает на класс состояния, последующие - порядковый номер состояния. За кодом ответа обычно следует краткое описание на английском языке.
  • 14. 14 Классы кодов состояния HTTP-ответа Класс кодов Краткое описание 1xx Informational (Информационный) информация о процессе передачи. 2xx Success (Успешно) Информация об успешном принятии и обработки запроса клиента. 3xx Redirection (Перенаправление) информация о том, что для успешного выполнения операции нужно произвести следующий запрос по другому URL-адресу, указанному в дополнительном заголовке Location; 4xx Client Error (Ошибка клиента) информация об ошибках на стороне клиента 5xx Server Error (Ошибка сервера) информация о неуспешном выполнения операции по вине сервера
  • 15. 15 Заголовки HTTP-сообщения Cтроки в HTTP-сообщении, содержащие разделённую двоеточием пару параметр-значение. Все заголовки разделяются на четыре основных группы: General Headers  (Основные заголовки)  – должны включаться в любое сообщение клиента и сервера. Request Headers  (Заголовки запроса)  – используются только в запросах клиента. Response Headers  (Заголовки ответа)  – только для ответов от сервера. Entity Headers  (Заголовки сущности) – сопровождают каждую сущность сообщения.
  • 16. 16 Тело HTTP сообщения Тело HTTP сообщения (message-body), если оно присутствует, используется для передачи сущности, которая является полезной информацией, передаваемой в запросе или ответе.
  • 17. 17 Запрос клиента: GET /wiki/страница HTTP/1.1 Host: ru.wikipedia.org User-Agent: Mozilla/5.0 (X11; U; Linux i686; ru; rv:1.9b5) Gecko/200 Firefox/3.0b5 Accept: text/html Connection: close (пустая строка) Ответ сервера: HTTP/1.1 200 OK Date: Wed, 11 Feb 2009 11:20:59 GMT Server: Apache X-Powered-By: PHP/5.2.4-2ubuntu5wm1 Last-Modifed: Wed, 11 Feb 2009 11:20:59 GMT Content-Language: ru Content-Type: text/html; charset=utf-8 Content-Length: 1234 Connection: close (пустая строка) (далее следует запрошенная страница в HTML) Пример: Обычный GET-запрос
  • 18. 18 Дополнительные механизмы взаимодействия в HTTP- протоколе Кроме обычных GET запросов, также выделяют и дополнительные: Частичные GET запросы. Условные GET запросы. Согласование содержимого: – Управляемое сервером – Управляемое клиентом
  • 19. 19 Многоцелевое содержимое (MIME) MIME (Multipurpose Internet Mail Extensions) – стандарт (RFC 5322), описывающий представление данных таким образом, чтобы их можно было пересылать по Интернету и их передачу по электронной почте. Клиенты указывают заголовок Accept для того, чтобы сообщить, в каких форматах они предпочитают принимать данные. Серверы указывают заголовок Content-Type, чтобы сообщить клиенту о том, в каком формате передается прилагаемое содержимое.
  • 20. 20 Динамические и статические сайты Статический сайт состоит из статичных html (htm, dhtml, xhtml) страниц составляющих единое целое. Содержит в себе текст, изображения, мультимедиа содержимое (аудио, видео) и HTML-теги. Все изменения вносятся в исходный код документов (страниц) сайта, для чего необходимо иметь доступ к файлам на веб сервере.
  • 21. 21 Динамические и статические сайты Динамический сайт состоит из шаблонов, контента, скриптов и прочего, в виде отдельных файлов. Страница сайта, показываемая в итоге браузеру пользователя, формируется на стороне сервера динамически, по запросу, из страницы-шаблона и отдельно хранимого содержимого. Как правило для отображения любого количества однотипных страниц используется одна страница- шаблон, в которую подгружается соответствующее содержимое.
  • 22. 22 Хронология развития языков web-программирования Картинка честно взята здесь
  • 23. 23 Яковенко Кирилл Сергеевич kirill.yakovenko@gmail.com Омский государственный университет им. Ф. М. Достоевского Факультет компьютерных наук