Cookie 的标准大小:
一般来说,Cookie 是 HTTP 客户端(可能是浏览器)作为请求的一部分发送的令牌。由于 HTTP 无状态协议 cookie 是告诉服务器谁是实际客户端的唯一方法。就拿浏览器来说吧,浏览器对存储cookie有一定的限制,要通过What is the maximum size of a cookie, and how many can be stored in a browser for each web site?
由于 cookie 是每个请求的一部分,因此在 cookie 中存储更大的令牌/值/字符串将占用大量带宽。所以绝对不建议存储大数据。
煎茶的连接:
Express 框架内部依赖于连接框架来管理会话、cookie 和 .您可以从这个https://github.com/visionmedia/express/blob/master/package.json 中识别。您可以通过 JSON 中的依赖项键。
Connect 在会话/Cookie 管理中的作用:
在 cookie 生成中,Secret "String" 在避免 cookie 篡改方面发挥着关键作用。在内部,程序将生成编码字符串并将其作为 cookie 的一部分附加。明确地说,您会在浏览器中看到名称为“connect.sid”的 cookie(这是默认的,但您可以覆盖名称)。您可以使用任何开发人员附加组件在浏览器本身中阅读。
针对“connect.sid”的值存储包含两部分。第一个是“会话 ID”,第二个是“签名”。如下所示,
<session id encoded> . <signature>
生成这种cookie格式的代码部分如下,
function session(options){
...
...
return function session(req, res, next) {
...
...
// set-cookie
res.on('header', function(){
...
...
/*******************************************************/
/*********** Cookie Generating Code ********************/
var val = 's:' + signature.sign(req.sessionID, secret);
val = cookie.serialize(key, val);
debug('set-cookie %s', val);
res.setHeader('Set-Cookie', val);
/*********** Cookie Generating Code *******************/
});
...
...
签名生成:
连接在“cookie-signature”模块中实现的调用sign()函数。您可以从本页https://npmjs.org/package/cookie-signature 中的示例轻松了解 sign() 函数的工作原理,并且您可以从中深入了解
https://github.com/visionmedia/node-cookie-signature/blob/master/index.js
结论:
最后,“秘密”字符串 express 将作为 cookie 的一部分作为签名。所以你可以使用任何长度的“秘密”字符串,除非它(sessionid 和签名)超过了标准浏览器支持的大小。