【发布时间】:2010-12-29 01:12:53
【问题描述】:
asp cookie 和 javascript cookie 有什么区别。 asp cookie是指使用response.cookie创建的cookie & 哪个更好?
【问题讨论】:
标签: asp.net javascript cookies
asp cookie 和 javascript cookie 有什么区别。 asp cookie是指使用response.cookie创建的cookie & 哪个更好?
【问题讨论】:
标签: asp.net javascript cookies
我发现两者之间存在细微差别。 在一个站点中,我通过 asp(经典 asp)操作 cookie,例如设置它们以使用户知道他查看了哪些项目,或者保存“向我发送有关此的更多信息”的列表,以便用户在浏览时保存到cookies他想知道的项目。
顺便说一句,当我调用函数来发送电子邮件时,我想删除 cookie,但如果我使用 JavaScript 设置 cookie,然后我发出 document.cookies 的警报,我有这样的东西:
发给我=; ASPESSIONID........=........;viewed=N01;lastvied=NA002;sendme=NA%202322...
这很奇怪,还因为,稍后再引用该 cookie,我将始终采用第一个,似乎 JavaScript 将 asp cookie 视为 1 cookie,而 asp 可以毫无问题地看到 JavaScript cookie。 ..有人有同样的事情吗?
【讨论】:
有一个非常小的区别。这是时间 - asp 使用服务器时间,而 javascript 使用来自访问者 PC 的时间。因此,如果服务器时间不正确,则会产生一种性能影响。示例:服务器时间为 10:00(比实际时间晚 5 分钟),访客 PC 的正确时间为 10:05。在这种情况下,cookie 可能会少活 5 分钟。 (我没有发明论据,只是示例,起源“php power programming”)
除此之外,cookie 的设置有一个显着差异 - 只有服务器端编程语言可以设置 httponly cookie wikipedia owasp - 客户端脚本(JScrip/JavaScript 等)无法访问 cookie .这使它不太容易受到 XSS wikipedia 的攻击。
理论上最好使用“asp cookie”。
【讨论】:
Cookie 由两个 HTTP 协议标头控制 - Cookie 和 Set-Cookie。 Cookie 标头用于 HTTP 请求,而 Set-Cookie 标头用于 HTTP 响应。 Response.Cookie 表示 Set-Cookie 标头,而在 javascript 中,您主要控制 cookie 集合的内部集合,该集合(集合)用于以下 HTTP 请求的 Cookie 标头填充。
【讨论】:
底层的“cookie”本身没有区别,只有设置/读取它的方法。实际上,两者都是在请求/响应标头中发送到浏览器和从浏览器发送的客户端 cookie。
不同之处在于 cookie 可以在客户端上使用 javascript(例如使用 document.cookie)或在服务器上从 ASP.NET 中操作(例如使用 Request.Cookies 和 Response.Cookies)。
事实上,如果你真的想的话,你可以在同一个 cookie 上混合 ASP.NET 和 Javascript cookie 操作。
[顺便说一句-我假设您指的是 ASP.NET。虽然您在问题文本中只说 ASP,但问题被标记为 ASP.NET]
【讨论】: