我扫描了 RFC 6265 但没有找到以下问题的答案。
我想在单个 Web 应用程序的多个服务器前面放置一个简单的循环负载均衡器。负载均衡器不提供粘性会话。因此,客户端通常会根据连续的请求从一个应用程序服务器跳到另一个应用程序服务器。
在第一个连接上,客户端没有 SID,并且被随机路由到服务器 A。
服务器 A 使用会话 cookie(即随机数)进行响应。
在下一次连接时,客户端将来自服务器 A 的 SID 包含在 HTTP 标头中。这次,客户端被随机路由到服务器 B。服务器 B 看到的 SID(希望如此!)与它发出的任何 SID 都不匹配。会发生什么?服务器 B 是否只是忽略“坏”SID,或者抱怨,或者忽略请求,或者什么?
我的想法是,我根本不想使用会话cookie。我想避免粘性的所有复杂性。但我也知道我的服务器可能会生成——更重要的是寻找——会话cookie。
我怎样才能确保服务器忽略(或者更好的是不设置)会话cookie?
我正在使用nodeJS的最新(0.9.8)google-api-nodejs-client库.我正在使用服务帐户和JWT作用域进行https:\\googleapis.com/auth/gmail.send身份验证(以及/ auth/drive FWIW).
我尝试发送电子邮件(base64urlencoded),如下所示:
req = mail.users.messages.send(
{
auth: jwtClient, // really works with google drive
userId: actual@gmail.com // actually a legit gmail address
resource: {
raw: message // base64encode(urlencode(RFC822 msg))
}
}, (err, res) => { console.log(err); }
);
Run Code Online (Sandbox Code Playgroud)
并且回调接收到这个非常有用的对象:
{"code": 400,"errors":[{"domain":"global","reason":"failedPrecondition","message":"Bad Request"}]}
Run Code Online (Sandbox Code Playgroud)
我知道google-api-nodejs-client是alpha并且GMail API本身正在发展(消息对资源等).因此,一些在线信息 - 包括谷歌自己的文档 - 是可以理解的不一致.我正在寻找任何建议,因为错误似乎非常通用.