actix-web 中“扩展”的作用是什么?

pan*_*cat 6 rust actix-web

我试图弄清楚Extensions 是如何在actix-web Rust 库中创建的。我认为我缺少请求扩展的概念。请求扩展有什么作用?它们与 HTTP 标头有何不同?

kmd*_*eko 11

扩展用于存储请求本地数据。它们与应用程序数据不同,因为它特定于单个请求。与标头不同,因为它们是在服务器内设置的,而不是由客户端设置的。

这主要用于在中间件和处理程序之间传递数据;例如身份验证或路由前缀处理。它们可以通过提取器在中间件中设置,也req.extensions_mut().insert(...)可以在处理程序中检索。req.extensions().get<...>()ReqData

也可以看看: