21
http://www.denwer.ru/dis/Base/latest).
2. Разработать набор интерактивных, динамических web-страниц со связью с базой данных (от 4 до 6 таблиц), необходимо использование привязки объектов интерфейса к полям таблиц (выпадающие списки и т.д.). Должно также быть две части: пользовательская (для просмотра данных) и администраторская (для ввода и редоктирования данных), причем при входе на администраторскую часть должны осуществляться аутентификация и авторизация. В пользовательской части должны производиться какие-то выборки из базы данных по интерактивно зафиксированным пользователем параметрам с динамическим фор-
мированием |
|
результирующей |
страницы. |
3. |
Проверить |
разработанные |
"страницы". |
2008 (МО-3) (д.б. реализации с использованием 3-ех подходов: PHP, .NET, Java) Тема: Информационная система "Туризм"(описание и базовая информационная модель, методика судейства, SQL-запросы для создания таблиц(NEW!!!)) Варианты:
1."Турист-1" (на входе - "Учетная карточка туриста ТСС РБ", на выходе - результаты произвольного запроса, сформированного по полям 1-5 "Уч.карточки...")
2."Турист-2" (на входе - "Учетная карточка туриста ТСС РБ", на выходе - результаты произвольного запроса, сформированного по полям таблицы №6 "Уч.карточки...")
3."Турист-3" (на входе - "Учетная карточка туриста ТСС РБ", на выходе - результаты произвольного запроса, сформированного по полям таблицы №7, №10 "Уч.карточки...")
4."Турист-4" (на входе - "Учетная карточка туриста ТСС РБ", на выходе - результаты произвольного запроса, сформированного по полям таблицы №8, №11 "Уч.карточки...")
5."Турист-5" (на входе - "Учетная карточка туриста ТСС РБ", на выходе - результаты произвольного запроса, сформированного по полям таблицы №9, №14 "Уч.карточки...")
6."Турист-6" (на входе - "Учетная карточка туриста ТСС РБ", на выходе - результаты произвольного запроса, сформированного по полям таблицы №7, №10 "Уч.карточки...")
7."Турист-7" (на входе - "Учетная карточка туриста ТСС РБ", на выходе - результаты произвольного запроса, сформированного по полям таблицы №12,
№15 "Уч.карточки...") 8. "Турист-8" (на входе - "Учетная карточка туриста ТСС РБ", на выходе - результаты произвольного запроса, сформированного по полям таблицы №13, №15 "Уч.карточки...") 9. "Поход-Заявка-МКК" (на входе - "Маршрутная книжка"(разделы №1, №2(член МКК)), на выходе - результаты произвольного запроса, сформированного по полям раздела №1 "Марш.книжки" и "Журнал МКК"(с возможностью выборки по годам и полям) 10. "Чемпионат - Участники - Судейство" (на входе Форма №1 судейства, на выходе Форма №5 для различных "Классов" и "Видов туризма")
22
Лабораторная работа № 4 Взаимодействие прикладных программ с помощью протоколов электрон-
ной почты и протоколов прикладного уровня
Цель работы: изучение принципов работы протоколов электронной почты, разработка прикладных программ, осуществляющих взаимодействие и передачу данных друг другу на основе прикладных протоколов.
Для выполнения лабораторной работы требуется написать программу, которая выполняется под управлением ОС типа Windows или UNIX и исполь-
зует для взаимодействия с другими программами заданный протокол электронной почты или иной прикладной протокол сети Internet. Для разработки программы рекомендуется использовать среду Delphi версии 3.0 или старше под управлением ОС типа Windows.
Краткие теоретические сведения Протокол электронной почты SMTP
Электронная почта - это средство передачи сообщений между любыми двумя ЭВМ, имеющими соединение в сети. Принцип работы электронной почты предельно прост (и в этом сродни работе обычной, "бумажной" почты) - для того, чтобы передать сообщение, достаточно только иметь текст сообщения и знать адрес получателя. Пользователь электронной почты не должен заботится о том, каким образом и с помощью каких средств должно быть передано его сообщение. Электронная почта - это принадлежность не только сети Internet, она использовалась (и используется) также в других сетях, но с появлением всемирной сети это средство получило истинно всемирный размах, сравнявшись по широте возможностей со своим "бумажным" аналогом, а в чем-то даже превосходя его.
SMTP (Simple Mail Transfer Protocol - простой протокол электронной поч-
ты) принят в качестве стандартного метода передачи электронной почты в сети Internet. Этот протокол во многом подобен протоколу FTP. Название его вполне соответствует сути - с ним достаточно просто работать. В качестве транспортного протокола SMTP использует TCP,соединение устанавливается через порт с номером 25. Для обслуживания этого соединения используется специальная программа, которая именуется почтовым сервером. Для формирования сообщения и установления соединения используется почтовая программа (утилита) пользователя.
Главной целью протокола SMTP является надежная и эффективная доставка электронных почтовых сообщений. Для реализации протокола требуется только надежный канал связи. Средой для SMTP может служить отдельная ло-
23
кальная сеть, система сетей или же вся всемирная сеть Internet. Если между отправителем и получателем письма имеется непосредственная связь, адрес пользователя имеет вид имя_пользователя@адрес_ЭВМ. Когда получатель находится на ЭВМ, которая не поддерживает соединение по протоколу SMTP, и передача происходит через промежуточный сервер, то адрес получателя письма
может |
иметь |
иной |
вид, |
напри- |
мер, имя_пользователя%имя_сервера@адрес_ЭВМ. |
Адреса |
ЭВМ в се- |
||
ти Internet представляют собой имя домена и преобразуются в IP-адреса согласно протоколу DNS.
Протокол SMTP базируется на следующей модели коммуникаций: в ответ на запрос пользователя почтовая программа-отправитель сообщения устанавливает двухстороннюю связь с программой-приемником (почтовым сервером). Получателем может быть оконечный или промежуточный адресат. Если необходимо, почтовый сервер может установить соединение с другим сервером и передать сообщение дальше. SMTP-команды генерируются отправителем и посылаются получателю. На каждую команду должен быть получен отклик.
Перечень команд протокола SMTP приведен в табл. 3. Это внутренние команды протокола. Если пользователь использует для работы с электронной почтой некоторую утилиту, то эти команды ему недоступны. Они представляют интерес только при программировании взаимодействия программ на основе этого протокола.
|
|
Таблица 3. |
Внутренние команды протокола SMTP |
||
|
|
|
Команда |
|
Описание команды |
|
|
|
|
|
|
DATA |
|
Сообщение (за командой следует текст сообщения) |
|
|
|
|
|
|
EXPN |
|
Расширение списка получателей |
|
|
|
|
|
|
HELO |
|
Используется при инициализации обмена при установлении соединения |
|
|
|
|
|
|
HELP |
|
Запрос о помощи |
|
|
|
|
|
|
|
Адрес отправителя |
|
|
|
|
|
|
|
NOOP |
|
Никаких действий (пустая команда) |
|
|
|
|
|
|
QUIT |
|
Разрыв соединения |
|
|
|
|
|
|
RCPT |
|
Адрес получателя (таких команд может быть несколько) |
|
|
|
|
|
|
RSET |
|
Закончить текущую транзакцию |
|
|
|
|
|
|
SAML |
|
Послать письмо на терминал пользователя и в почтовый ящик |
|
|
|
|
|
|
|
24 |
|
|
|
|
SEND |
|
Послать письмо на терминал |
|
|
|
|
|
|
SOML |
|
Если можно, послать письмо на терминал, иначе - в почтовый ящик |
|
|
|
|
|
|
TURN |
|
Изменить направление передачи (отправитель и получатель меняются |
|
|
местами) |
|
|
|
|
|
|
VRFY |
|
Проверить имя пользователя |
|
|
|
|
|
|
Через систему электронной почты передаются сообщения, которые должны иметь строго определенный формат. Этот формат достаточно прост. Любое почтовое сообщение можно разделить на три части: "конверт", заголовки и собственно текст. "Конверт" используется почтовым сервером, он содержит две команды - MAIL и RCPT (то, как они передаются серверу, описано ниже). Заголовок используется почтовой программой пользователя. Он содержит девять специальных полей: Received, From, To, Date, Subject, Message-Id, X-Phone, X- Mailer, Reply-To. Назначение этих полей понятно из их названия. Каждое из этих полей содержит имя, за которым после двоеточия идет его значения. При желании, пользователь может ознакомится с содержимым всех полей заголовка письма.
Текст сообщения должен передаваться в виде 7-разрядных символов ASCII. Конец сообщения представляет собой строку, содержащую только символы точки (".") и перевода строки. Если по каким-то причинам такая строка непосредственно встречается внутри текста сообщения, то передающая сторона автоматически дублирует точку, чтобы принимающая сторона не приняла ее за конец сообщения (на принимающей стороне дублированный символ точки
вначале строки заменяется на одну точку).
С7-битной кодировкой сообщений связана проблема пересылки писем, написанных на национальных языках, в т.ч. и на русском, поскольку для русского алфавита требуется 8-битная кодировка. Большинство современных почтовых серверов поддерживают не только 7-битные, но и 8-битные кодировки, однако, для совместимости со старыми почтовыми системами может использоваться специальная схема преобразования 8-битных кодов в 7-битные (естественно, при этом увеличивается объем сообщения, поскольку один 8-битный символ заменяется на специальную последовательность 7-битных).
Более сложная проблема заключается в том, что нет единого стандарта на кодировку русского алфавита, и поэтому на сторонах отправителя и получателя могут использоваться различные кодировки. Для того чтобы сообщение, посланное отправителем в одной кодировке, было понятно адресату, который использует другую кодировку, почтовый сервер использует специальные таблицы смены кодировок. С помощью них текст сообщения, посланного в одной кодировке, преобразуется в другую кодировку. Чтобы сервер знал, какую кодировку использовать, информация об исходной кодировке включается почтовой системой отправителя в текст или в заголовок сообщения (в зависимости от исполь-
25
зуемой системы). Одно сообщения в процессе своего прохождения через почтовые сервера может претерпеть несколько перекодировок. В случае, когда у сервера нет информации об используемой кодировке или тип кодировки указан неверно (непонятен серверу), текст сообщения может исказиться.
Передача сообщения по протоколу SMTP происходит следующим образом: после установления соединения стороны обмениваются кодами аутентификации (с помощью команд HELO), затем одна из них посылает команду MAIL, в которой указан адрес отправителя и сведения о письме. Если получатель готов к приему сообщения, он посылает положительный отклик. Далее отправитель посылает одну или несколько команд RCPT, в которых идентифицирует адресатов сообщения. Если получатель может принять сообщение для указанного адресата, то он снова выдает положительный отклик на каждую команду. После этого передается команда DATA за которой следует само письмо (сколько бы не было адресатов, само письмо передается только один раз). В конце сеанса отправитель дает команду QUIT.
Конечно, маловероятно, что при приеме почтовым сервером сообщения, адресованному некоторому пользователю ЭВМ, этот пользователь установит с сервером непосредственную связь по протоколу SMTP. Обычно сервер размещает сообщение в почтовом ящике пользователя. Почтовый ящик - это некоторое промежуточное хранилище электронных сообщений, позволяющее почтовому серверу осуществить их передачу адресату не сразу, а в тот момент, когда он установит связь с сервером. Обычно сообщения хранятся в почтовом ящике не вечно - по истечении некоторого времени почтовый сервер удаляет их оттуда. Политика обслуживания почтовых ящиков регламентируется администратором системы.
Для того, чтобы получить сообщение из своего почтового ящика, почтовая программа пользователя соединяется с сервером уже не по протоколу SMTP, а по специальному почтовому протоколу получения сообщений. Такой протокол позволяет работать с почтовым ящиком: забирать сообщения, удалять сообщения, сортировать их и выполнять другие операции. Самым популярным в настоящее время протоколом такого рода является протокол POP3 (Post Office Protocol v.3). Он предусматривает соединение с почтовым сервером на основе транспортного протокола TCP через порт 110. Другой, более сложный, известный протокол - IMAP4.
Общая схема пересылки сообщения от отправителя к адресату с использованием прикладных протоколов электронной почты представлена на рис. 4.
Во многих версиях ОС UNIX протокол SMTP, а также другие почтовые протоколы, реализован в простейших утилитах типа sendmail или mmdf. Первая из них может служить как почтовым клиентом, так и почтовым сервером. Обычно она работает в фоновом режиме и ждет поступления сообщений от пользователя или извне. В ОС типа Windows NT ту же роль играет утилита,
именуемая mdaemon (mail daemon).
Для непосредственного взаимодействия с пользователем существует простейшая программа, именуемая mail или mailx. Однако в современных ОС ею мало кто пользуется, поскольку существует большое количество прикладных