Алгоритм работы http-парсера

13
Алгоритм работы HTTP- парсера

Upload: guestbd1ac4

Post on 15-Jun-2015

2.070 views

Category:

Education


7 download

TRANSCRIPT

Алгоритм работы HTTP-парсера

Что такое HTTP?

HTTP (англ. Hyper Text Transfer Protocol — «протокол передачи гипертекста») — протокол прикладного уровня передачи данных.

Основой HTTP является технология «клиент-сервер»

Что такое HTTP?

Основным объектом манипуляции в HTTP является ресурс, на который указывает URI (англ. Uniform Resource Identifier) в запросе клиента.

Пример HTTP-запросаGET /exam/ HTTP/1.1Host: www.ifmo.ruUser-Agent: Mozilla/5.0 (X11; U; Linux i686; ru; rv:1.9b5) Gecko/2008050509 Firefox/3.0b5Accept: text/htmlConnection: close

Что такое парсинг?

Парсинг — это процесс сопоставления линейной последовательности лексем формальной грамматикой. Результатом обычно является дерево разбора.

Синтаксический анализатор (парсер) — это программа или часть программы, занимающаяся сбором, анализом и преобразованием требуемой информации.

Область применения

• Языки программирования• Структурированные данные• SQL-запросы (DSL-язык)• математические выражения• регулярные выражения • формальные грамматики• Лингвистика

Краткий обзор грамматики HTTPНекоторые примеры конструкций протокола HTTP

name = definition − > название правила и его определениеrule1 | rule2 − > последовательность возможных вариантов[rule] − > опциональные элементы*rule − > повторение элемента (по умолчанию, от 0 до ∞)"literal" − > литеральный текст

Примеры правил

message-header = field-name ":" [ field-value ] CRLFfield-name = tokenfield-value = *( field-content | LWS )

Алгоритм работы парсера

Виды алгоритмов парсеров

Нисходящий парсер (англ. top-down parser)• LL-анализатор

Восходящий парсер (англ. bottom-up parser)• LR-анализатор• GLR-анализатор

Алгоритм LL-анализатора

Синтаксический анализатор состоит из: Входной буфер Таблица синтаксического анализа Стек

Пример грамматики

1. S → F

2. S → (S + F)

3. F → 1

Алгоритм LL-анализатора

Входной буфер

(1+1)

Таблица синтаксического анализа

  ( ) 1 + $S 2  — 1 - -

F  —  — 3 - -

Алгоритм LL-анализатора

Состояния Стека

[ S, $ ] [ (, S, +, F, ), $ ] [ S, +, F, ), $ ] [ F, +, F, ), $ ][ 1, +, F, ), $ ] [ F, ), $ ] [ ]

Спасибо

Студенты гр. 3158: Клочков Д., Поликарпов С., Николин М.