下面是解释如何使用的一个示例的一部分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 框架采用什么方法?谢谢~