remix (1119427)
Текст из файла
Московский государственный университет им. М. В. ЛомоносоваФакультет вычислительной математики и кибернетикиИ. Г. ГоловинПрактикум на ЭВМ.Модельный веб-серверМетодическое пособие для студентов 2 курсаl%“*"=2009УДК 519.68ББКПечатается по решению Редакционно-издательского совета факультетавычислительной математики и кибернетикиМГУ им. М. В. ЛомоносоваРецензенты:проф., д.ф.-м.н. И.
В. Машечкиндоцент, к.ф.-м.н. А. Н. ТерехинИ. Г. ГоловинПрактикум на ЭВМ. Модельный веб-сервер: Методическое пособие длястудентов II курса. — М.: Издательский отдел факультета ВМиК МГУ им.М.В.Ломоносова (лицензия ИД № 05899 от 24.09.2001), 2009 – 34 с.ISBN-13 978-5-89407-408-5Описывается задание практикума на ЭВМ для студентов II курса факультета ВМиК.
Приведена постановка задачи, методические рекомендациипо выполнению задания, варианты задания.Для студентов факультета ВМК в поддержку основного лекционногокурса «Системы программирования» и для преподавателей, ведущих практические занятия по этому курсу.ISBN-13978-5-89407-439-9© Издательский отдел факультетавычислительной математикии кибернетикиМГУ им.
М. В. Ломоносова, 2009© И. Г. Головин, 2009Материалы для студентов ВМиК http://cmcmsu.no-ip.info/Оглавление1. Введение........................................................................................... 52. Постановка задачи .......................................................................... 63. Основные понятия...........................................................................
73.1. Унифицированный идентификатор ресурса3.2. HTTP-запрос3.2.33.2.4Метод GET...................................................................................................... 10Метод HEAD................................................................................................... 113.3. HTTP-ответ3.3.311Коды состояния, возвращаемые модельным сервером............................... 123.4.
HTTP-заголовок3.4.33.4.43.4.53.4.63.4.73.4.83.4.93.4.103.4.118913Заголовок Date ................................................................................................ 14Заголовок Host ................................................................................................ 14Заголовок Referer............................................................................................ 14Заголовок User-agent ......................................................................................
15Заголовок Server ............................................................................................. 15Заголовок Content-length................................................................................ 15Заголовок Content-type...................................................................................
15Заголовок Allow.............................................................................................. 15Заголовок Last-modified ................................................................................ 164. Методические указания по выполнению первого этапазадания ........................................................................................... 174.1. Внутренняя организация сервера4.2. Общий интерфейс шлюза — основные понятия4.2.31719Пример CGI-программы ................................................................................ 205.
Методические указания по выполнению второго этапазадания ........................................................................................... 226. Методические указания по выполнению третьего этапазадания ........................................................................................... 256.1. Способы встраивания программ на модельных языкахв веб-сервер6.2. Описание модельных языков6.2.36.2.42627Модельный язык программирования ........................................................... 28Модельный JavaScript (MJS) ......................................................................... 286.2.4.1.6.2.4.2.6.2.4.3.6.2.4.4.6.2.4.5.6.2.4.6.6.2.4.7.Переменные ...............................................................................................................................
28Простые типы данных и операции ......................................................................................... 29Составные типы данных .......................................................................................................... 29Встроенные объекты MJS .......................................................................................................
31Универсальные значения и операции..................................................................................... 33Преобразования типов.............................................................................................................. 34Синтаксис MJS ..........................................................................................................................
357. Список литературы ....................................................................... 37Введение1. ВведениеДанное пособие содержит описание задания по практикуму на ЭВМ длястудентов 2 курса факультета ВМиК МГУ. Задание поддерживает основнойкурс «Системы программирования», читаемый в четвертом семестре, ипредназначено для выполнения в среде операционной системы семействаUNIX на языке Си++. Методическая цель задания — закрепить следующиезнания и навыки:— работа в системе программирования Си/Си++ в ОС семейства— UNIX;— разработка сетевых серверных приложений, использующих механизм сокетов (sockets);— использование элементов теории формальных языков для реализации трансляторов с языков программирования.Предполагается, что задание будет выполняться в течение четвертогосеместра (в течение восьми недель), однако по усмотрению преподавателявыполнение задания можно начать и третьем семестре, поскольку заданиесостоит из трех частей.
Первые две части не требуют знаний, преподаваемыхв четвертом семестре (прежде всего — элементов теории формальных языкови основ построения трансляторов) и поэтому могут выполняться и в третьемсеместре (на языке Си).Конкретный вариант задания и сроки его выполнения определяются,разумеется, конкретным преподавателем.
Можно варьировать следующиеаспекты:— набор реализуемых запросов и заголовков протокола HTTP;— внутренняя организация сервера;— способ встраивания программ на модельном языке в сервер;— конкретный вариант синтаксиса и семантики модельного языка (набор типов данных и операций над ними, операторов, стандартныхфункций).В пособии приведены минимальные требования, которые должны бытьреализованы.На официальном сайте кафедры алгоритмических языковhttp://www.al.cs.msu.ru можно найти дополнительные варианты задания.5Постановка задачи2. Постановка задачиЗадание практикума разбивается на следующие подзадачи:— Реализация модельного веб-сервера, поддерживающая описанноениже подмножество протокола HTTP.— Реализация поддержки общего шлюзового интерфейса (CGI)в разработанном веб-сервере.— Реализация интерпретатора модельного языка описания сценариевдля написания CGI-сценариев (варианты языков описаны ниже).Язык реализации — Си++ [1].На каждом из шагов задания необходимо разработать тестовые программы, демонстрирующие работоспособность программы, реализованнойна соответствующем шаге.
Набор этих программ конкретизируется ниже вметодических указаниях по реализации задания.6Основные понятия3. Основные понятияВеб-сервер – это частный случай архитектуры «клиент-сервер». В этой архитектуре программа-сервер принимает и обрабатывает запросы от программ-клиентов. Веб-архитектура характеризуется двумя особенностями:во-первых, в качестве транспортного протокола используется семействопротоколов TCP/IP, и при этом между клиентом и сервером устанавливаетсяпотоковое (или надежное) соединение (подробнее об этом говорится в курсе«Операционные системы»[3]). Во-вторых (и это главное), в качестве прикладного протокола взаимодействия между клиентом и сервером используется протокол HTTP (hyper-text transport protocol) – протокол передачи гипертекста.
Поэтому веб-серверы также часто называются HTTP-серверами.Ниже мы будем использовать название «веб-сервер».HTTP-протокол использует простую модель «запрос-ответ». Веб-серверпринимает от веб-клиентов (обычно такими клиентами являютсявеб-браузеры, но могут быть и программы — поисковые роботы, клиентывеб-служб и т.д.) HTTP-запросы, обрабатывает их и посылает клиентуHTTP-ответ. Запрос клиента, как правило, содержит так называемый URI(uniform resource identifier) — «унифицированный идентификатор ресурса».Этот идентификатор содержит ссылку на местонахождение какого-либо ресурса на сервере. Примеры ресурсов — простой текст, гипертекст, изображение, звуковой файл и т.д.
Характеристики
Тип файла PDF
PDF-формат наиболее широко используется для просмотра любого типа файлов на любом устройстве. В него можно сохранить документ, таблицы, презентацию, текст, чертежи, вычисления, графики и всё остальное, что можно показать на экране любого устройства. Именно его лучше всего использовать для печати.
Например, если Вам нужно распечатать чертёж из автокада, Вы сохраните чертёж на флешку, но будет ли автокад в пункте печати? А если будет, то нужная версия с нужными библиотеками? Именно для этого и нужен формат PDF - в нём точно будет показано верно вне зависимости от того, в какой программе создали PDF-файл и есть ли нужная программа для его просмотра.