Разделы презентаций


Web- программирование Лекция 7. HTTP. Django

Содержание

Модели сетевого взаимодействияДанныеЗаголовок + данные HTTPЗаголовок + данные + адресат TCP(деление на фрагменты)Заголовок + данные + адресат IP(адрес устройства)(деление на фрагменты)Преобразование к формату среды передачи данных (сигналы) Wi-fi/Ethernet/FastEthernet

Слайды и текст этой презентации

Слайд 1Web-программирование Лекция 7. HTTP. Django.
асист. каф. 308 Трутнева Надежда Владимировна
тел: 8-926-880-12-76
почта:

ntrutn@gmail.com

Web-программирование Лекция 7. HTTP. Django.асист. каф. 308 Трутнева Надежда Владимировнател: 8-926-880-12-76почта: ntrutn@gmail.com

Слайд 2Модели сетевого взаимодействия
Данные
Заголовок + данные HTTP


Заголовок + данные + адресат TCP
(деление на

фрагменты)

Заголовок + данные + адресат IP
(адрес устройства)
(деление на фрагменты)

Преобразование к формату

среды передачи данных (сигналы)
Wi-fi/Ethernet/FastEthernet



Модели сетевого взаимодействияДанныеЗаголовок + данные		HTTPЗаголовок + данные + адресат	TCP(деление на фрагменты)Заголовок + данные + адресат	IP(адрес устройства)(деление на

Слайд 3URI, URL, URN
URI (Uniform Resource Identifier) — унифицированный (единообразный) идентификатор

ресурса.
URI — последовательность символов, идентифицирующая абстрактный или физический ресурс. Ранее

назывался Universal Resource Identifier — универсальный идентификатор ресурса.


URI — символьная строка, позволяющая идентифицировать какой-либо ресурс:
документ,
изображение,
файл,
службу,
ящик электронной почты и т. д.

URI, URL, URNURI (Uniform Resource Identifier) — унифицированный (единообразный) идентификатор ресурса.URI — последовательность символов, идентифицирующая абстрактный или

Слайд 4URI, URL, URN
URL — это URI, который, помимо идентификации ресурса,

предоставляет ещё и информацию о местонахождении этого ресурса.

URN —

это URI, который только идентифицирует ресурс в определённом пространстве имён (и, соответственно, в определённом контексте), но не указывает его местонахождения.

urn:ISBN:0-395-36341-1 — это URN, который указывает на ресурс (книгу) 0-395-36341-1 в пространстве имён ISBN, но, в отличие от URL, URN не указывает на местонахождение этого ресурса: в нём не сказано, в каком магазине её можно купить или на каком сайте скачать

URI, URL, URNURL — это URI, который, помимо идентификации ресурса, предоставляет ещё и информацию о местонахождении этого

Слайд 5структура URI
URI = [ схема ":" ] иерархическая-часть [ "?"

запрос ] [ "#" фрагмент ]

схема
схема обращения к ресурсу (часто

указывает на сетевой протокол), например http, ftp, file, ldap, mailto, urn

иерархическая-часть
содержит данные, обычно организованные в иерархической форме, которые, совместно с данными в неиерархическом компоненте запрос, служат для идентификации ресурса в пределах видимости URI-схемы. Обычно иер-часть содержит путь к ресурсу (и, возможно, перед ним, адрес сервера, на котором тот располагается) или идентификатор ресурса (в случае URN).

запрос
этот необязательный компонент URI описан выше.

фрагмент
(тоже необязательный компонент)
структура URIURI = [ схема

Слайд 6РЕГУЛЯРНЫЕ ВЫРАЖЕНИЯ
Регулярные выражения (англ. regular expressions) — формальный язык поиска

и осуществления манипуляций с подстроками в тексте, основанный на использовании

метасимволов. Для поиска используется строка-образец (англ. pattern, по-русски её часто называют «шаблоном», «маской»), состоящая из символов и метасимволов и задающая правило поиска. Для манипуляций с текстом дополнительно задаётся строка замены, которая также может содержать в себе специальные символы.
РЕГУЛЯРНЫЕ ВЫРАЖЕНИЯРегулярные выражения (англ. regular expressions) — формальный язык поиска и осуществления манипуляций с подстроками в тексте,

Слайд 7Структура регулярного выражения
Как правило, регулярное выражение состоит из трёх основных

частей:
1. Якорь – определяет позицию шаблона в строке текста:
^ –

якорь, определяющий начало строки;
$ – якорь, определяющий конец строки.
2. Набор (последовательность) символов – для поиска соответствий в заданных позициях строки текста:
символ "точка" (.) соответствует любому произвольному символу;
алфавитно-цифровые символы и пробел представляют сами себя;
прочие символы – интерпретация зависит от диалекта.
3. Модификатор – задаёт количество повторов предыдущего символа или набора символов (в зависимости от диалекта):
* – любое количество повторов символа/набора, в том числе и нулевое;
? – соответствует нулю или одному экземпляру символа/набора;
+ – соответствует одному или большему количеству экземпляров символа/набора.
Структура регулярного выраженияКак правило, регулярное выражение состоит из трёх основных частей:1. Якорь – определяет позицию шаблона в

Слайд 8Структура регулярного выражения
Пример:
необходимо найти все директивы определения макроконстант в

исходном коде на языке С.

grep '^ *#define.*' *.c *.h

Здесь учтено,

что в начале строки макроопределения может быть вставлено любое количество пробелов или же пробелы отсутствуют. Часть шаблона #define является литеральной, т.е. каждый символ интерпретируется "как есть". Заключительная часть шаблона означает "любые символы в любых количествах".
Структура регулярного выраженияПример: необходимо найти все директивы определения макроконстант в исходном коде на языке С.grep '^ *#define.*'

Слайд 9Определение диапазонов символов
Если возникает необходимость задать символ из определённой группы,

например, только цифровой символ, или только гласную букву нижнего регистра,

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

[012345789] – соответствует одному цифровому символу из заданного набора;
[аеёиоуыэюя] – соответствует одной из перечисленных гласных букв;
[,.:;] – соответствует одному из символов пунктуации.

Определение диапазонов символовЕсли возникает необходимость задать символ из определённой группы, например, только цифровой символ, или только гласную

Слайд 10Определение диапазонов символов
Непрерывные диапазоны символов можно записывать в сокращённой форме

с использованием дефиса: первый пример удобнее записать в виде [0–9].

Допускаются любые сочетания диапазонов и конкретных символов.

Имеется также возможность исключать заданные наборы символов из поиска:

[^0-9] – соответствует любому символу, кроме цифрового;

[^аеёиоуыэюя] – соответствует любой НЕ гласной букве.
Определение диапазонов символовНепрерывные диапазоны символов можно записывать в сокращённой форме с использованием дефиса: первый пример удобнее записать

Слайд 11Модификаторы количества повторений символов
Поиска IP-адреса:
[0-9]*\.[0-9]*\.[0-9]*\.[0-9]
Это приведёт к выводу строк,

содержащих элементы типа 2344.5657.11.00000, не являющихся IP-адресами.

Для уточнения количества

повторений наборов символов применяется модификатор \{min,max\}.
В каждой части IP-адреса может содержаться от одной до трёх цифр, следует учесть, что значение 0 не используется в качестве первого байта обычных IP-адресов. В итоге получим следующий шаблон поиска:
grep '[1-9][0-9]\{0,2\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' *.txt

Модификаторы количества повторений символовПоиска IP-адреса:[0-9]*\.[0-9]*\.[0-9]*\.[0-9] Это приведёт к выводу строк, содержащих элементы типа 2344.5657.11.00000, не являющихся IP-адресами.

Слайд 12Запоминание и повторное использование элемента шаблона
В простых регулярных выражениях части

шаблона, заключённые внутри конструкции \( \), запоминаются и нумеруются, после

чего их можно использовать повторно.

Всего можно запомнить до девяти пронумерованных шаблонов.

Пример. Поиск палиндромов (слов, которые одинаково читаются как слева направо, так и справа налево):

\([a-z]\)\([a-z]\)[a-z]\2\1 – для пятибуквенных палиндромов (например, level, rotor, madam и т.д.)

\([a-z]\)\([a-z]\)\([a-z]\)\3\2\1 – для шестибуквенных палиндромов (например, redder, succus, terret и т.д.)
Запоминание и повторное использование элемента шаблонаВ простых регулярных выражениях части шаблона, заключённые внутри конструкции \( \), запоминаются

Слайд 13Полезные регулярные выражения
Поиска денежной суммы, записываемой в формате "10000 руб.

00 коп."
[0-9]\{1,\} руб\. [0-9]\{2\} коп\.

Необходимое пояснение: если в модификаторе типа

\{min,max\} отсутствует и запятая, и максимальное значение, то такая конструкция задаёт точное количество ожидаемых повторов элемента шаблона. В нашем примере определяются ровно два цифровых символа для обозначения копеек.


Полезные регулярные выраженияПоиска денежной суммы, записываемой в формате

Слайд 14Полезные регулярные выражения
Поиск URL-строки, соответствующей Web-ресурсу в Интернете:
http://[a-zA-Z0-9]\{1,\}\.[-a-zA-Z0-9_]\{1,\}/*

Необходимое пояснение: дефис

теряет своё специальное значение, если он указан в самой первой

позиции сразу после открывающей квадратной скобки в диапазоне. По данному шаблону могут быть найдены и такие "экзотические" URL-строки, как, например, http://my.home-server/
В формате расширенных регулярных выражений этот шаблон можно было бы записать более компактно:
http://[a-zA-Z0-9]+\.[-a-zA-Z0-9_]+/*
Такую запись понимают, например, утилиты egrep и awk.
Полезные регулярные выраженияПоиск URL-строки, соответствующей Web-ресурсу в Интернете:http://[a-zA-Z0-9]\{1,\}\.[-a-zA-Z0-9_]\{1,\}/*Необходимое пояснение: дефис теряет своё специальное значение, если он указан

Слайд 15Полезные регулярные выражения
Поиск любого HTML-тэга:

]+>

Совпадает с любой последовательностью символов за

исключением > в количестве от одного и более, заключённой в

угловые скобки. Иными словами, будет найден и односимвольный тэг

, и более "многословные" тэги, подобные


.

Полезные регулярные выраженияПоиск любого HTML-тэга:]+>Совпадает с любой последовательностью символов за исключением > в количестве от одного и

Слайд 16Полезные регулярные выражения
Вариант шаблона для поиска дат

Расширенные регулярные выражения позволяют

написать несколько громоздкий, но тем не менее корректно работающий шаблон

для поиска дат, имеющих вид "13 ноября 2009 г.":

[12]?[0-9] (янв|фев|мар|апр|мая|июн|июл|авг|сен|окт|ноя|дек).* [0-9][0-9][0-9][0-9] г\.

Недостаток этого шаблона заключается в том, что с его помощью невозможно найти даты из древней истории, например, "13 ноября 245 г." или 1 января 88 г.", но для работы с современными документами он вполне годится (учитываем контекст поиска!).

Полезные регулярные выраженияВариант шаблона для поиска датРасширенные регулярные выражения позволяют написать несколько громоздкий, но тем не менее

Слайд 17Полезные регулярные выражения
Поиск палиндромов в любых языков

\(.\)\(.\)\(.\)\3\2\1

С помощью такого шаблона

можно находить шестисимвольные палиндромы не только на английском, но и

на русском и на любых других языках, а также последовательности символов, не относящихся к алфавитным, например /*!!*/

Полезные регулярные выраженияПоиск палиндромов в любых языков\(.\)\(.\)\(.\)\3\2\1С помощью такого шаблона можно находить шестисимвольные палиндромы не только на

Слайд 18Полезные регулярные выражения
Поиск ошибок в текстах, как "для для".

\

\

Здесь применяются ещё два элемента регулярных выражений: \< для обозначения

начальной границы слова и \> для обозначения конечной границы слова. Таким образом, мы запоминаем только отдельные слова, а не любые последовательности символов. Выражение ..* соответствует любому слову, состоящему по крайней мере из одного символа. В результате мы сможем найти такие опечатки-повторения, как "и и", "не не", "для для" и т.п.

Слайд 19Ограничение размера совподающей части шаблона
"Петров" "охранник"
"Иванов" "отдел снабжения" "экспедитор"
"Сидоров" "администрация"

"директор"
".*"
".*" ".*"


”[^”]*”


Здесь после открывающей кавычки должно следовать любое количество символов,

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

Слайд 20Python. Регулярные выражения.
Регулярные выражения компилируются в объекты шаблонов, имеющие методы

для различных операций, таких как поиск вхождения шаблона или выполнение

замены строки.
Python. Регулярные выражения.Регулярные выражения компилируются в объекты шаблонов, имеющие методы для различных операций, таких как поиск вхождения

Слайд 21Python. Регулярные выражения.
Объекты шаблонов имеют несколько методов и атрибутов.
http://docs.python.org/howto/regex.html

Python. Регулярные выражения.Объекты шаблонов имеют несколько методов и атрибутов. http://docs.python.org/howto/regex.html

Слайд 22НТТP-протокол
HyperText Transfer Protocol (HTTP) - это протокол высокого уровня, обеспечивающий

необходимую скорость передачи данных, требующуюся для распределенных информационных систем гипермедиа.

HTTP используется проектом World Wide Web с 1990 года.

HTTP основывается на парадигме запросов/ответов. Запрашивающая программа (обычно она называется клиент) устанавливает связь с обслуживающей программой-получателем (обычно называется сервер) и посылает запрос серверу в следующей форме: метод запроса, URI, версия протокола, за которой следует MIME-подобное сообщение (MIME-Многоцелевое Расширение Почты Internet), содержащее управляющую информацию запроса, информацию о клиенте и, может быть, тело сообщения. Сервер отвечает сообщением, содержащим строку статуса (включая версию протокола и код статуса - успех или ошибка), за которой следует MIME-подобное сообщение, включающее в себя информацию о сервере, метаинформацию о содержании ответа, и, вероятно, само тело ответа.

НТТP-протоколHyperText Transfer Protocol (HTTP) - это протокол высокого уровня, обеспечивающий необходимую скорость передачи данных, требующуюся для распределенных

Слайд 23НТТP-протокол
Каждое HTTP-сообщение состоит из трёх частей, которые передаются в указанном

порядке:

Стартовая строка (Starting line) - определяет тип сообщения;
Заголовки (Headers) -

разная полезная информация, которая характеризует тело сообщения, параметры передачи и прочие сведения;
Тело сообщения (Message Body) - это сгенерированный html-код, который браузер потом будет отображать. Обязательно должно отделяться от заголовков пустой строкой.
НТТP-протоколКаждое HTTP-сообщение состоит из трёх частей, которые передаются в указанном порядке:Стартовая строка (Starting line) - определяет тип

Слайд 24НТТP-протокол

НТТP-протокол

Слайд 25НТТP-протокол

НТТP-протокол

Слайд 26НТТP-протокол. Методы.
Метод HTTP (англ. HTTP Method) — последовательность из любых

символов, кроме управляющих и разделителей, указывающая на основную операцию над

ресурсом. Обычно метод представляет собой короткое английское слово, записанное заглавными буквами. Названия метода чувствительны к регистру.
НТТP-протокол. Методы.Метод HTTP (англ. HTTP Method) — последовательность из любых символов, кроме управляющих и разделителей, указывающая на

Слайд 27НТТP-протокол. Методы.

НТТP-протокол. Методы.

Слайд 28НТТP-протокол. Методы.

НТТP-протокол. Методы.

Слайд 29НТТP-протокол. Методы.

НТТP-протокол. Методы.

Слайд 30НТТP-протокол. Методы.

НТТP-протокол. Методы.

Слайд 31НТТP-протокол. Методы.

НТТP-протокол. Методы.

Слайд 32НТТP-протокол. Код состояния.
Код состояния информирует клиента о результатах выполнения запроса

и определяет его дальнейшее поведение. Набор кодов состояния является стандартом,

и все они описаны в соответствующих документах.

Каждый код представляется целым трехзначным числом. Первая цифра указывает на класс состояния, последующие - порядковый номер состояния. За кодом ответа обычно следует краткое описание на английском языке.
НТТP-протокол. Код состояния.Код состояния информирует клиента о результатах выполнения запроса и определяет его дальнейшее поведение. Набор кодов

Слайд 33НТТP-протокол. Код состояния.

НТТP-протокол. Код состояния.

Слайд 34НТТP-протокол. Код состояния.

НТТP-протокол. Код состояния.

Слайд 35НТТP-протокол. Код состояния.

НТТP-протокол. Код состояния.

Слайд 36НТТP-протокол. Код состояния.

НТТP-протокол. Код состояния.

Слайд 37НТТP-протокол. Код состояния.

НТТP-протокол. Код состояния.

Слайд 38НТТP-протокол. Заголовки.
Заголовок HTTP (HTTP Header) — это строка в HTTP-сообщении,

содержащая разделённую двоеточием пару вида «параметр-значение». Как правило, браузер и

веб-сервер включают в сообщения более чем по одному заголовку. Заголовки должны отправляться раньше тела сообщения и отделяться от него хотя бы одной пустой строкой (CRLF).
НТТP-протокол. Заголовки.Заголовок HTTP (HTTP Header) — это строка в HTTP-сообщении, содержащая разделённую двоеточием пару вида «параметр-значение». Как

Слайд 39НТТP-протокол. Заголовки.
Все HTTP-заголовки разделяются на четыре основных группы:

General Headers (Основные

заголовки) — должны включаться в любое сообщение клиента и сервера.
Request

Headers (Заголовки запроса) — используются только в запросах клиента.
Response Headers (Заголовки ответа) — присутствуют только в ответах сервера.
Entity Headers (Заголовки сущности) — сопровождают каждую сущность сообщения.
Сущности (entity, в переводах также встречается название "объект") — это полезная информация, передаваемая в запросе или ответе. Сущность состоит из метаинформации (заголовки) и непосредственно содержания (тело сообщения).
НТТP-протокол. Заголовки.Все HTTP-заголовки разделяются на четыре основных группы:General Headers (Основные заголовки) — должны включаться в любое сообщение

Слайд 40НТТP-протокол. Заголовки.

НТТP-протокол. Заголовки.

Слайд 41НТТP-протокол. Заголовки.

НТТP-протокол. Заголовки.

Слайд 42НТТP-протокол. Заголовки.

НТТP-протокол. Заголовки.

Слайд 43НТТP-протокол. Тело сообщения.

НТТP-протокол. Тело сообщения.

Слайд 44Спасибо за внимание !
ВОПРОСЫ???

Спасибо за внимание !ВОПРОСЫ???

Обратная связь

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика