ВУЗ:
Составители:
Рубрика:
- 39 -
5. Лабораторная работа № 5. Разработка серверного сетевого
приложения на основе сокетов (однопотоковый WEB-сервер)
Цель работы – приобретение практических знаний и навыков в разработ-
ке сетевых программ, использующих технологию сокетов (логических
гнезд).
Теоретическая часть. При обмене информацией между клиентским при-
ложением (броузером) и WEB-сервером используется протокол HTTP (Hy-
perText Transfer Protocol).
Простой запрос по HTTP 0.9 состоит
только из команды и имени ресурса;
сервер в ответ направляет клиенту запрашиваемый ресурс (обычно HTML-
файл) или сообщение о невозможности обслуживания. Большинство совре-
менных броузеров поддерживают обладающий многими усовершенствова-
ниями формат HTTP 1.1 (описан в RFC-2068), ведутся работы по внедрению
формата HTTP NG (New Generation); эти форматы допускают запросы не-
скольких файлов при одном подсоединении к серверу, благодаря чему
суще-
ственно увеличивается скорость обмена информацией.
Полные форматы запросов и ответа для HTTP 1.0 являются многостроч-
ными сообщениями, которые заканчиваются пустой строкой. Эти заголовки
сообщений информируют друг друга о версии HTTP, посредством которой
каждый из них может поддерживать связь, о размере и дате запрашиваемого
ресурса, о типе ресурса, который клиент может принять, а также о командах,
поддерживаемых сервером и др. Согласно спецификации HTTP 1.0 запросы
и ответы HTTP оформляются в формате сообщения Internet Message Format.
Полный запрос (HTTP 1.0) состоит минимум из одной строки заголовка
HTTP и строки запроса. После строки запроса могут следовать строки общего
заголовка, строки заголовка запроса, строки заголовка сущности, а в конце
обязательно пустая строка. Типичный запрос выглядит следующим образом
(каждая строка завершается кодами ‘Возврат каретки’ и ‘Перевод строки’ -
#13#10, комментарии выделены символами { } согласно Pascal-нотации);
{ Команда (метод) GET, запрашивающая стартовую страницу сайта (обычно
это INDEX.HTML, INDEX.HTM или DEFAULT.HTM). Однако можно запросить
и произвольный файл: GET имя_файла HTTP/1.0#13#10 }
GET / НТТР/1.0#13#10
{ Команда Pragma, предписывающая выдать данные по этому
запросу без кэширования (‘актуальные данные’) }
Pragma: no-cache#13#10
{ Клиент хочет принимать массив битов как изображения GIF и JPEG }
Accept: image/x-bitmap, image/gif, image/jpeg#13#10
{ Текущая дата машины клиента }
5. Лабораторная работа № 5. Разработка серверного сетевого приложения на основе сокетов (однопотоковый WEB-сервер) Цель работы – приобретение практических знаний и навыков в разработ- ке сетевых программ, использующих технологию сокетов (логических гнезд). Теоретическая часть. При обмене информацией между клиентским при- ложением (броузером) и WEB-сервером используется протокол HTTP (Hy- perText Transfer Protocol). Простой запрос по HTTP 0.9 состоит только из команды и имени ресурса; сервер в ответ направляет клиенту запрашиваемый ресурс (обычно HTML- файл) или сообщение о невозможности обслуживания. Большинство совре- менных броузеров поддерживают обладающий многими усовершенствова- ниями формат HTTP 1.1 (описан в RFC-2068), ведутся работы по внедрению формата HTTP NG (New Generation); эти форматы допускают запросы не- скольких файлов при одном подсоединении к серверу, благодаря чему суще- ственно увеличивается скорость обмена информацией. Полные форматы запросов и ответа для HTTP 1.0 являются многостроч- ными сообщениями, которые заканчиваются пустой строкой. Эти заголовки сообщений информируют друг друга о версии HTTP, посредством которой каждый из них может поддерживать связь, о размере и дате запрашиваемого ресурса, о типе ресурса, который клиент может принять, а также о командах, поддерживаемых сервером и др. Согласно спецификации HTTP 1.0 запросы и ответы HTTP оформляются в формате сообщения Internet Message Format. Полный запрос (HTTP 1.0) состоит минимум из одной строки заголовка HTTP и строки запроса. После строки запроса могут следовать строки общего заголовка, строки заголовка запроса, строки заголовка сущности, а в конце обязательно пустая строка. Типичный запрос выглядит следующим образом (каждая строка завершается кодами ‘Возврат каретки’ и ‘Перевод строки’ - #13#10, комментарии выделены символами { } согласно Pascal-нотации); { Команда (метод) GET, запрашивающая стартовую страницу сайта (обычно это INDEX.HTML, INDEX.HTM или DEFAULT.HTM). Однако можно запросить и произвольный файл: GET имя_файла HTTP/1.0#13#10 } GET / НТТР/1.0#13#10 { Команда Pragma, предписывающая выдать данные по этому запросу без кэширования (‘актуальные данные’) } Pragma: no-cache#13#10 { Клиент хочет принимать массив битов как изображения GIF и JPEG } Accept: image/x-bitmap, image/gif, image/jpeg#13#10 { Текущая дата машины клиента } - 39 -
Страницы
- « первая
- ‹ предыдущая
- …
- 37
- 38
- 39
- 40
- 41
- …
- следующая ›
- последняя »