Erlang - Webprogrammierung
In Erlang ist die inets libraryist verfügbar, um Webserver in Erlang zu erstellen. Schauen wir uns einige der in Erlang verfügbaren Funktionen für die Webprogrammierung an. Man kann den HTTP-Server, auch als httpd bezeichnet, implementieren, um HTTP-Anforderungen zu verarbeiten.
Der Server implementiert zahlreiche Funktionen wie -
- Secure Sockets Layer (SSL)
- Erlang Scripting Interface (ESI)
- Common Gateway Interface (CGI)
- Benutzerauthentifizierung (unter Verwendung von Mnesia, Dets oder einer Nur-Text-Datenbank)
- Allgemeines Protokolldateiformat (mit oder ohne Unterstützung für disk_log (3))
- URL-Aliasing
- Aktionszuordnungen
- Verzeichnislisten
Die erste Aufgabe besteht darin, die Webbibliothek über den Befehl zu starten.
inets:start()
Der nächste Schritt besteht darin, die Startfunktion der Inets-Bibliothek zu implementieren, damit der Webserver implementiert werden kann.
Im Folgenden finden Sie ein Beispiel für die Erstellung eines Webserverprozesses in Erlang.
Zum Beispiel
-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]).
Die folgenden Punkte müssen über das obige Programm beachtet werden.
Die Portnummer muss eindeutig sein und darf von keinem anderen Programm verwendet werden. Dashttpd service würde an diesem Port Nr. gestartet werden.
Das server_root und document_root sind obligatorische Parameter.
Ausgabe
Es folgt die Ausgabe des obigen Programms.
{ok,<0.42.0>}
Um a zu implementieren Hello world web server Führen Sie in Erlang die folgenden Schritte aus:
Step 1 - Implementieren Sie den folgenden Code -
-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>" ]).
Step 2- Führen Sie den Code wie folgt aus. Kompilieren Sie die obige Datei und führen Sie die folgenden Befehle in auserl.
c(helloworld).
Sie erhalten die folgende Ausgabe.
{ok,helloworld}
Der nächste Befehl ist -
inets:start().
Sie erhalten die folgende Ausgabe.
ok
Der nächste Befehl ist -
helloworld:start().
Sie erhalten die folgende Ausgabe.
{ok,<0.50.0>}
Step 3 - Sie können jetzt auf die URL zugreifen - http://localhost:8081/erl/hello_world:service.