问题标签 [haskell-warp]

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.

0 投票
0 回答
85 浏览

haskell - Warp/WAI 内部异常处理

我正在开发一个 Warp / WarpTLS 应用程序和一堆中间件(没有 yesod),所有这些都处理自己的异常。

目前我想处理在 Warp 和 WarpTLS 中引发的异常,我不清楚会发生哪些异常,以及提供的处理程序setOnException是否足以处理所有异常(例如包括 TLS 异常)。

这是我的理解:

  1. 根据文档, setOnException可用于捕获 warp 内部异常(以及应用程序异常)
  2. Warp使用实例公开InvalidRequest 。Exception
  3. 检查defaultOnExceptionResponse的 src表明这ConnectionError可能是从 Warp 中引发的。

我的问题:

  1. 如果我提供一个处理程序,setOnException我可以确定所有内部异常都会在那里结束吗?
  2. 即使我使用 WarpTLS 和 1) 是否成立runTLS
  3. runSettings(Warp) 和runTLS(WarpTLS)可能会抛出什么样的异常?
0 投票
1 回答
83 浏览

haskell - maxTotalHeaderLength 是否按预期工作?

Warp 有一个settingsMaxTotalHeaderLength默认为 50*1024 的字段:https ://hackage.haskell.org/package/warp-3.3.10/docs/src/Network.Wai.Handler.Warp.Settings.html#defaultSettings

我想这意味着50KB?但是,当我尝试发送一个 ~33KB 的标头时,服务器会抛出错误的请求:

结果:

(注意请求大小为33098)

同样的事情也适用于 32.5KB 的头文件。

我真正的问题实际上是我需要设置settingsMaxTotalHeaderLength = 160000发送大小约为 55KB 的标头。不确定这是一个错误还是我误读了什么?

0 投票
1 回答
105 浏览

haskell - 从同一个`main`运行两个warp服务器是否安全?

s 代码库中似乎有一些“全局变量”(unsafePerformIO+ NOINLINE) 。尽管如此,从同一个函数warp运行两个实例是否安全?warpmain

0 投票
2 回答
29 浏览

haskell - 将动态字符串解析为 HostPreference

使用Warp 库,该setHost函数将不接受动态String值作为主机值,但它会对字符串文字非常满意:

当值是字符串文字时,一切正常,但是当它是动态生成的字符串时,我找不到任何方法让它工作。这正是我需要的,因为主机值来自环境变量。