📜  如何从 cookie 创建和读取值?

📅  最后修改于: 2021-11-06 11:22:05             🧑  作者: Mango

Web 服务器托管网站。客户端-服务器向网络服务器发出数据请求,网络服务器获取所需的页面并通过发送请求的页面来响应客户端。 Web 服务器使用 HTTP(超文本传输协议)与客户端-服务器通信。 HTTP 是一种无状态协议,这意味着一旦事务结束并且连接关闭,服务器就不需要保留用户信息。 Web 浏览器是使用 HTTP 与 Web 服务器通信的客户端-服务器的示例。 HTTP 防止客户端与网络服务器的长时间接触,一旦请求得到服务,连接就会自动关闭。但通常需要存储用户信息以备将来参考。 cookie 最常见的用途之一是用于身份验证。 Cookie 的作用是即使在连接丢失时也能保留用户信息。 Cookie 是存储在计算机上的文本文件中的数据。

Cookies 包含五个可变字段:

  • Expires:指定cookie 何时到期。如果留空,cookie 会在连接丢失时立即过期。
  • 域名:指定网站的域名。
  • Name=Value: Cookie 以名称-值对的形式存储。
  • 路径:指定设置 cookie 的网页或目录。
  • 安全:指定 cookie 是否可以被任何服务器(安全或非安全)检索。

但是,cookie 只能存储少量数据,例如userIDsessionID 。清除 cookie 将注销其登录的每个站点的用户。可以使用 cookie 使 HTTP 成为有状态的。有状态的 Web 应用程序存储来自先前请求的信息,并可以将其用于服务未来的请求。

工作原理:当客户端或网页浏览器与网页服务器建立连接时,网页服务器以cookie的形式向浏览器发送一些数据。浏览器可以接受或拒绝 cookie。如果浏览器接受它,cookie 将存储在客户端设备的硬盘中。服务器上的 CGI 脚本可以读取和写入存储在客户端的 cookie 值,因此当客户端再次访问同一个网站时,它会从浏览器中检索 cookie 数据。 JavaScript 可用于使用 Document 对象的 cookie 属性来操作 cookie。 JavaScript 可以读取、创建、修改和删除当前网页的 cookie。下面的代码演示了如何使用 JavaScript 从 cookie 创建和读取值。

使用 JavaScript 创建 cookie:此函数使用字段名称、字段值和到期日期创建 cookie。路径留空,以便它适用于当前网页。但是,我们可以指定任何其他网页或目录名称。

程序:

function createCookie(fieldname, fieldvalue, expiry) {
    var date = new Date();
    date.setTime(date.getTime()+ (expiry*24*60*60*1000));
    var expires = "expires=" + date.toGMTString();
    document.cookie = fieldname + "=" + fieldvalue + 
                      ";" + expires + ";path=/";
}

使用 JavaScript 读取 cookie:此函数检索存储在浏览器中的 cookie 数据。 cookie字符串在从服务器发送到浏览器时会自动编码。因此,在检索实际数据之前需要对其进行解码。接下来,将解码后的字符串拆分为一个数组以获取所有 cookie 名称-值对。循环遍历数组以查找字段名称和相应的字段值。如果找到 cookie,则返回该值,否则函数返回空字符串。

程序:

function readCookie(cname) {
    var name = cname + "=";
    var decoded_cookie = decodeURIComponent(document.cookie);
    var carr = decoded_cookie.split(';');
    for(var i=0; i

使用 JavaScript 创建和读取 cookie:当网页加载时, runApp()函数被调用,它检查浏览器中是否存在一个 cookie,否则会为它创建一个新的 cookie。

程序:




    
        Create and read cookies
        using JavaScript
    
      
    



输出:

  • 创建 Cookie:
  • 读取饼干: