English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Erlangでは、inetsライブラリを使用してErlangでwebサーバーを構築できます。Erlangでwebプログラミングに使用される一部の関数を見てみましょう。HTTPサーバー(httpdと呼ばれることもあります)を実現してHTTPリクエストを処理できます。
サーバーは多くの機能を実現しています、例えば-
安全スロックレベル(SSL)
Erlangスクリプトインターフェース(ESI)
汎用网关インターフェース(CGI)
ユーザー認証(Mnesia、Dets、またはテキストデータベースを使用)
一般的なログファイルフォーマット(disk_log(サポートまたはサポートしない)}3))
URLエイリアス
アクションマッピング
ディレクトリリスト
最初の作業は、コマンドでWebライブラリを起動することです。
inets:start()
次に、Webサーバーを実装するためにinetsライブラリのstart関数を実装する必要があります。
以下はErlangでWebサーバーメッセージを生成する例です。
-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は必須のパラメータです。
以下は上記プログラムの出力です。
{ok,<0.42.0>}
ErlangでHello worldウェブサーバーを実装するには、以下の手順を実行してください-
ステップ 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。