Смекни!
smekni.com

Протокол HTTP (стр. 6 из 6)

Например, при обращении к модулю «somemodule» при подключении к серверу, привязанному к адресу 123.123.123.123 и порту 8080, при включенной системе безопасности, зная имя пользователя – «mylogin» – и пароль – «mypassword» – строка адреса, которая должна быть введена в браузере, будет выглядеть следующим образом:http://123.123.123.123:8080/somemodule?login=mylogin&password=mypassword

В случае отключенной системы безопасности строка изменится:http://123.123.123.123:8080/somemodule

При возникновении какой-либо ошибки при обработке запроса – как со стороны корректности запроса, так и со стороны возможности выполнить запрошенные действия – в окно браузера выдается сообщение об ошибке.

Ошибка может возникнуть в одной из следующих ситуаций:

· Полученный сервером запрос некорректен – указана неверная версия протокола HTTP, неподдерживаемый метод или сама структура запроса содержит ошибки.

· Запрошенный модуль не может быть найден, либо он поврежден.

· Указанные имя пользователя и пароль недействительны.

2.5.3 Завершение работы сервера

Завершение работы сервера возникает в результате приема серверным процессом сигнала SIGINT, соответствующего нажатию клавиатурной комбинации Ctrl+C. Однако, если сервер запущен в фоновом режиме (режиме демона), воздействие на него с помощью клавиатуры не представляется возможным. В этом случае следует послать процессу сигнал с помощью команды оболочки kill или killall:

· kill –INTpid, в этом случае необходимо знать PID запущенного процесса;

· killall –INTlinspy – здесь поиск процесса ведется по имени исполняемого файла.

Вторая команда включена в файл shutdown.sh, представляющий собой сценарий оболочки и завершающий работу программы.

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

Заключение

Разработанная программа позволяет удаленно наблюдать за состоянием компьютера, работающего под управлением операционной системы Linux. В программе реализована частичная поддержка протокола HTTP/1.1, что позволяет подключиться к ней с помощью браузера, работающего под управлением любой современной операционной системы. Также программа с минимальными изменениями может быть перенесена на большинство современных UNIX-подобных систем в силу того, что при разработке использовались исключительно средства APIPOSIX.

Программа полностью удовлетворяет требованиям технического задания, обеспечивая:

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

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

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

· Обеспечение безопасности за счет необходимости указывать имя пользователя и пароль при подключении к серверу; программа использует собственный файл учетных записей.

· Возможность подключения с помощью любого браузера, поддерживающего протокол HTTP/1.0 или HTTP/1.1.

Хотя для решения административных задач уже существуют готовые программные решения, а в качестве HTTP‑сервера в среде Linux, как правило, используется сервер Apache, разработанная программа имеет перед ними определенные преимущества:

· Скорость работы, обеспечиваемая небольшим размером программы и простотой логики ее работы.

· Простота доступа к системной информации Linux.

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

Список использованной литературы

1. M.Mitchel, J.Oldham, A.Samuel Advanced Linux Programming / Indianapolis, Indiana: Williams, 2004 – 288 с.

2. RFC 1945 – HTTP/1.0 Protocol

3. RFC 2616 – HTTP/1.1 Protocol

4. E.Nemeth, G.Snyder, S.Seebass, T.Hein UNIX System Administration Handbook 3rd Edition / New Jersey: Prentice Hall, 2003 – 925 c., илл.

5. R.Stevens, B.Fenner, A.Rudoff UNIX Network Programming / Addison Wesley, 2003 – 1024 c., илл.