Лекция #2. Принцип организации world wide web

23
WEB-ПРОГРАММИРОВАНИЕ Лекция #2. Организация взаимодействия в World Wide Web Яковенко К. С Омский государственный университет им. Ф. М. Достоевского Факультет компьютерных наук

Upload: -

Post on 16-Jun-2015

655 views

Category:

Education


4 download

DESCRIPTION

Web-программирование Лекция #2. Организация взаимодействия в World Wide Web Цикл лекций читается в Омском государственном университете им. Ф.М.Достоевского на факультете компьютерных наук. Лектор: Яковенко Кирилл Сергеевич.

TRANSCRIPT

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‐путь>?<параметры>#<якорь>

ftphttphttpsfilemailtoxmpp

user:passworduser

google.ruwww.google.ru188.43.64.216localhost:8000127.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.1Host: ru.wikipedia.orgUser-Agent: Mozilla/5.0 (X11; U; Linux i686; ru; rv:1.9b5) Gecko/200 Firefox/3.0b5Accept: text/htmlConnection: close(пустая строка)

Ответ сервера:HTTP/1.1 200 OKDate: Wed, 11 Feb 2009 11:20:59 GMTServer: ApacheX-Powered-By: PHP/5.2.4-2ubuntu5wm1Last-Modifed: Wed, 11 Feb 2009 11:20:59 GMTContent-Language: ruContent-Type: text/html; charset=utf-8Content-Length: 1234Connection: 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

Яковенко Кирилл Сергеевич[email protected]

Омский государственный университет им. Ф. М. ДостоевскогоФакультет компьютерных наук