javascript - 为什么 cookies 是字符串而不是对象?

标签 javascript cookies

我正在尝试了解有关 cookie 的所有知识。来自探索document.cookie以及相关的方法 我了解到获取 cookie 并不像想象的那么简单。是的,获取和设置 cookie 的函数非常简单,但是为什么 cookie 是字符串,而看起来它们作为对象使用会更好呢?

例如,获取 cookie 需要:

function getCookie(cname) {
    var name = cname + "=";
    var ca = document.cookie.split(';');
    for(var i=0; i<ca.length; i++) {
        var c = ca[i];
        while (c.charAt(0)==' ') c = c.substring(1);
        if (c.indexOf(name) != -1) return c.substring(name.length,c.length);
    }
    return "";
}

但是如果 cookie 是一个对象,我们是否可以只使用类似的东西:

document.cookie(cookiename)?

我知道对于那些遵循 js 标签的人来说,这听起来一定太基础了。但我只是想了解使用 cookie 字符串的选择,因为它们似乎使用如此广泛,它们肯定值得拥有自己的内置 js 方法来查看、获取和设置?

最佳答案

我做了一些研究,我想做一个猜测。

Cookie 的创建是为了让网站记住一些小的特定信息,例如用户偏好。具体来说,它们是 94 年 Netscape 的某个人在开发电子商务应用程序时创建的。他应用了一种称为“magic cookie”的方法,这是一种常见的 Web 编程方法( http://en.m.wikipedia.org/wiki/Magic_cookie )。

从那时起,就一直需要存储用户交易的一些简单的 url 参数。您知道的技术是存储一个特定的简单文本文件,其中包含要记住的参数。当 Internet Explorer 将其集成到其 v2 浏览器中时,它似乎就传播开来了。

我猜的组合是: 1. 需要简单地存储一些有关交易的关键信息。 2. 事实上,它们是安全的,因此不能包含任何类型的函数或代码片段 可能导致了 cookie 的不进化。

维基百科上有很多关于 cookie 历史的内容,我建议您阅读。我刚刚读了它们,发现它们 super 有趣。

我建议的最后一件事是尽快了解 cookie,并开始阅读/研究 Localstorage ( http://en.m.wikipedia.org/wiki/Web_storage )。

优点是可以使用json对象来管理存储的数据。 缺点是没有与您的服务器共享数据的版本(无论如何,一种特殊类型的 cookie 可以完成这项工作)。

我希望我有用!

关于javascript - 为什么 cookies 是字符串而不是对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25704770/

相关文章:

node.js - 为什么我的 cookie 在页面刷新时被删除?快速 session 、redis 和 react

c# - 为什么 IE9+ 上的网络浏览器不支持 document.createEvent 以及如何修复它?

javascript - 在 iOS/Safari 上无法关闭焦点触发的 Bootstrap Popover 错误

javascript - 如何在类函数内发送ajax请求

Java HttpURLConnection - 带 Cookie 的 POST

javascript - 添加 Cookie 以维护 jQuery Mobile 页面的字体大小

javascript - Echart以特定方式配置饼图例

javascript - 添加从页面到灯箱的链接

带有针对不同区域语言的脚本的 HTML 头?

javascript - 带有 cookie 的错误