以下は、 の使用方法を説明する 1 つの例の一部ですgen_tcp
。ただし、ほとんどすべてのチュートリアルでエコー サーバーが表示されますが、実際の HTTP 要求の解析は行われません。
handle_connect(Socket, BinaryList, Count) ->
io:format("handle_connect ~p~n", [self()]),
case gen_tcp:recv(Socket, 0) of
{ok, Binary} ->
io:format("request is :~s~n", Binary),
case gen_tcp:send(Socket, Binary) of
ok ->
handle_connect(Socket, BinaryList, Count);
{error, Reason} ->
io:format("send failed~n"),
gen_tcp:close(Socket)
end;
によって受信された Erlang のデータをどのように解析できるかについて興味がありますgen_tcp:recv/\[2,3\]
。のコードにざっと目を通しましlib/inets-5.7.1/src/http_server
たが、モジュールが多すぎて、HTTP 要求の解析の基本がどうなるかまだわかりません。
HTTP リクエストを解析する方法と、Web フレームワークがとるアプローチを誰か教えてもらえますか? ありがとう〜