问题标签 [inets]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
erlang - inets httpd:无法让简单的 esi 脚本工作
这是我用来配置 httpd 服务器的 proplist_file:
对于 esi 脚本,关键属性是:
根据inets 文档:
ESI 属性 - 需要 mod_esi
{erl_script_alias, {URLPath, [AllowedModule]}}
URLPath = string() 和 AllowedModule = atom()。erl_script_alias 将所有匹配 url-path 的 URL 标记为 erl 方案脚本。匹配的 URL 映射到特定的模块和函数,例如:请求
http://your.server.org/cgi-bin/example/httpd_example:yahoo
将引用httpd_example:yahoo/3
httpd_example:yahoo/2 ,如果不存在,则http://your.server.org/cgi-bin/example/other:yahoo
不允许执行。
我的目录结构是:
我不确定将httpd_example
模块放在哪里,所以我把它放在了几个地方。
esi_mod.erl:
这是 shell 中报告的服务器信息:
这是我的要求:
错误日志:
[时间戳] 127.0.0.1 访问 /cgi-bin/example/httpd_example:get_data 失败,原因:“httpd_file: Can't open ./htdocs/cgi-bin/example/httpd_example:get_data: File not found”
根据报错信息,请求路径:
转换为:
这意味着请求路径被附加到./htdocs
. 啊??
apache - inets httpd cgi 脚本:如何检索 json 数据?
我尝试过的 cgi 脚本无法从我的 inets httpd 服务器检索 json 数据。
为了在 cgi 脚本中检索 json 数据,您需要能够读取请求的主体,其中将包含以下内容:
使用 perl cgi 脚本,我可以读取如下请求的正文:
我认为这是读取服务器管道到脚本标准输入的间接方式,因为在 python cgi 脚本中我必须编写:
当我从apache
服务器请求 cgi 脚本时,我的 perl 和 python cgi 脚本可以成功地从 apache 获取 json 数据。但是当我从我的inets httpd
服务器请求相同的 cgi 脚本时,我的 perl cgi 脚本对请求正文没有读取任何内容,并且我的 python cgi 脚本挂起然后服务器超时。我的 cgi 脚本能够"a=1&b=2"
从服务器检索格式化为格式的数据inets httpd
——在这种情况下,perl 和 python 中的 cgi 工具会自动为我解析数据,因此我无需尝试读取请求的正文,而是访问结构那个cgi创建的。
这是我的 httpd 服务器配置(server.conf
):
我用这个程序()启动我的 httpd 服务器s.erl
:
我的 cgi 脚本 ( 1.py
):
我的 cgi 脚本 ( 1.pl
):
在终端窗口中启动服务器:
卷曲请求:
我的目录结构:
ssl - 长生不老药:将 :inets:start 放入函数有什么优点/缺点?
目前我在hello/0函数中有:inets.start和:ssl.start 。是否有文档讨论将初始化代码放入该函数与其他地方的优缺点?
erlang - Erlang 的 mod_esi 可以重定向吗?
我正在尝试学习在 Erlang 中进行 Web 应用程序开发,现阶段仅使用标准库的 inets 模块。
我遇到的问题是我想验证来自发布查询的数据,然后重定向回带有错误消息的表单页面或欢迎页面。
基本上,我需要做的是得到一个看起来像
虽然mod_esi:deliver/2
让我添加标题key: value
字段,但我看不到如何替换默认值
HTTP/1.1 303 OK
进行重定向。
虽然我确信牛仔、elli 等可以轻松做到这一点,但在学习第三方应用程序之前,我想知道mod_esi
其他 inets 模块是否可以做到这一点。
我所拥有的是一个名为 handler 的模块,它具有返回http://erlang.org/doc/manform/3
的功能(遵循http://erlang.org/doc/man/mod_esi.html#Module:Function-3 ) /mod_esi.html#deliver-2根据需要。
erlang - Erlang:如何从 'erl_script_alias' 到 root url 的别名?
这是我拥有的inets配置文件:
使用此配置文件,我可以访问:
我已经知道将{script_alias, {"/cgi-bin/"...更改为{script_alias, {"/"...可以让我从 访问 cgi 脚本https://example.com/
,但是如何使用erl_script_alias获得相同的行为?例如:访问https://example.com/
和访问/erl/functions/function
?