В Erlang библиотека inets доступна для создания веб-серверов в Erlang. Давайте посмотрим на некоторые функции, доступные в Erlang для веб-программирования. Можно реализовать HTTP-сервер, также называемый httpd для обработки HTTP-запросов.
Сервер реализует множество функций, таких как —
- Уровень защищенных сокетов (SSL)
- Erlang Scripting Interface (ESI)
- Общий интерфейс шлюза (CGI)
- Аутентификация пользователя (с использованием Mnesia, Dets или простой текстовой базы данных)
- Общий формат файла журнала (с поддержкой disk_log (3) или без нее)
- URL Aliasing
- Action Mappings
- Списки каталогов
Первая задача — запустить веб-библиотеку с помощью команды.
inets:start()
Следующим шагом является реализация функции запуска библиотеки inets, чтобы можно было реализовать веб-сервер.
Ниже приведен пример создания процесса веб-сервера в Erlang.
Например
-module(helloworld). -export([start/0]). start() -> inets:start(), Pid = inets:start(httpd, [{port, 8081}, {server_name,"httpd_test"}, {server_root,"D://tmp"},{document_root,"D://tmp/htdocs"}, {bind_address, "localhost"}]), io:fwrite("~p",[Pid]).
Следующие пункты должны быть отмечены о вышеупомянутой программе.
-
Номер порта должен быть уникальным и не использоваться никакими другими программами. Служба httpd будет запущена на этом порту нет.
-
Server_root и document_root являются обязательными параметрами.
Номер порта должен быть уникальным и не использоваться никакими другими программами. Служба httpd будет запущена на этом порту нет.
Server_root и document_root являются обязательными параметрами.
Выход
Ниже приведен вывод вышеуказанной программы.
{ok,<0.42.0>}
Чтобы реализовать веб-сервер Hello world в Erlang, выполните следующие шаги:
Шаг 1 — Реализуйте следующий код —
-module(helloworld). -export([start/0,service/3]). start() -> inets:start(httpd, [ {modules, [ mod_alias, mod_auth, mod_esi, mod_actions, mod_cgi, mod_dir, mod_get, mod_head, mod_log, mod_disk_log ]}, {port,8081}, {server_name,"helloworld"}, {server_root,"D://tmp"}, {document_root,"D://tmp/htdocs"}, {erl_script_alias, {"/erl", [helloworld]}}, {error_log, "error.log"}, {security_log, "security.log"}, {transfer_log, "transfer.log"}, {mime_types,[ {"html","text/html"}, {"css","text/css"}, {"js","application/x-javascript"} ]} ]). service(SessionID, _Env, _Input) -> mod_esi:deliver(SessionID, [ "Content-Type: text/html\r\n\r\n", "<html><body>Hello, World!</body></html>" ]).
Шаг 2 — Запустите код следующим образом. Скомпилируйте вышеуказанный файл и затем выполните следующие команды в erl .
c(helloworld).
Вы получите следующий вывод.
{ok,helloworld}
Следующая команда —
inets:start().
Вы получите следующий вывод.
ok
Следующая команда —
helloworld:start().
Вы получите следующий вывод.
{ok,<0.50.0>}
Шаг 3 — Теперь вы можете получить доступ к URL — http: // localhost: 8081 / erl / hello_world: service .