什么是 "Session/Cookie Transport"?

What is "Session/Cookie Transport"?

我正在使用 ArangoDB 构建一个应用程序。
在手册中,它说有一种叫做 Cookie 传输和会话传输的东西。 https://docs.arangodb.com/3.0/Manual/Foxx/Sessions/Transports/Cookie.html

这些似乎等同于 cookie 和会话,就像您通过 express-session 模块获得的一样。 但是,我看不懂:
1.为什么这些东西叫'transport(s)'?
2. Cookie传输和cookie一样吗?
我在 nginx 后面使用 elixir/phoenix 和其他网络服务器,这些服务器必须能够访问 cookie。

传输是 object 的一种类型。您可以像这样创建这样的 object:

// use cookie based session
const cookieTransport = require('@arangodb/foxx/sessions/transports/cookie');
const myTransport = cookieTransport( ... );

// -OR-

// use header based session
const headerTransport = require('@arangodb/foxx/sessions/transports/header');
const myTransport = headerTransport( ... );

您可以像这样使用传输 object myTransport 例如:

sessionsMiddleware({ ..., transport: myTransport });

详情见https://docs.arangodb.com/3.3/Manual/Foxx/Sessions/

您还可以将多个 Transport objects 作为数组传递给 sessions 中间件。如果您不想更改任何默认值,您可以传递 transport: ['header', 'cookie'] 以支持 cookie 以及基于 header 的 session 传输。

传输定义 session ID 在 client-side 上的处理方式,是否应使用 cookie 或 HTTP header 或两者都用于传输 session服务器的 ID。