问题标签 [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.
haskell - Warp/WAI 内部异常处理
我正在开发一个 Warp / WarpTLS 应用程序和一堆中间件(没有 yesod),所有这些都处理自己的异常。
目前我想处理在 Warp 和 WarpTLS 中引发的异常,我不清楚会发生哪些异常,以及提供的处理程序setOnException
是否足以处理所有异常(例如包括 TLS 异常)。
这是我的理解:
- 根据文档, setOnException可用于捕获 warp 内部异常(以及应用程序异常)
- Warp使用实例公开InvalidRequest 。
Exception
- 检查defaultOnExceptionResponse的 src表明这
ConnectionError
可能是从 Warp 中引发的。
我的问题:
- 如果我提供一个处理程序,
setOnException
我可以确定所有内部异常都会在那里结束吗? - 即使我使用 WarpTLS 和 1) 是否成立
runTLS
? runSettings
(Warp) 和runTLS
(WarpTLS)可能会抛出什么样的异常?
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 的标头。不确定这是一个错误还是我误读了什么?
haskell - 从同一个`main`运行两个warp服务器是否安全?
s 代码库中似乎有一些“全局变量”(unsafePerformIO
+ NOINLINE
) 。尽管如此,从同一个函数warp
运行两个实例是否安全?warp
main
haskell - 将动态字符串解析为 HostPreference
使用Warp 库,该setHost
函数将不接受动态String
值作为主机值,但它会对字符串文字非常满意:
当值是字符串文字时,一切正常,但是当它是动态生成的字符串时,我找不到任何方法让它工作。这正是我需要的,因为主机值来自环境变量。