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

PDF
Лекция #1. Основы Web-технологий
PDF
Лекция #3. Введение в языки разметки web-страниц
PPTX
Протокол HTTP
PPTX
Мировые информационные ресурсы. Лекция 5
PPTX
HTML
PPTX
Мировые информационные ресурсы. Лекция 4
PDF
Web лекция 1
PDF
Лекция #4. Каскадные таблицы стилей
Лекция #1. Основы Web-технологий
Лекция #3. Введение в языки разметки web-страниц
Протокол HTTP
Мировые информационные ресурсы. Лекция 5
HTML
Мировые информационные ресурсы. Лекция 4
Web лекция 1
Лекция #4. Каскадные таблицы стилей

What's hot (20)

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

Viewers also liked (20)

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

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

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

Лекция #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 Яковенко Кирилл Сергеевич [email protected] Омский государственный университет им. Ф. М. Достоевского Факультет компьютерных наук