如何将cookie的名称和值序列化为JavaScript中的Set-Cookie头字符串

如何将cookie的名称和值序列化为JavaScript中的Set-Cookie头字符串

在本文中,您将了解如何将带有名称和值的cookie序列化为Set-Cookie头字符串。基本上,我们在这里尝试通过兼容的set-cookie字符串格式传递cookie。

Cookie: Cookie是由Web服务器在用户浏览网站时创建的小块数据,并存储在用户计算机上供将来使用。

Set-Cookie: 用于通过Web服务器在用户系统上设置cookie的HTTP响应头。

语法:

Set-Cookie : <cookie-name> = <cookie-value>

其中,

  • <cookie-name>可以包含除以下字符以外的任意字符:
( ) < > @ , ; : \ " / [ ] ? = { }
  • <cookie-value>可以加引号,也可以不加。

方法: 要序列化这个cookie,我们可以使用javascript中的一个方法, encodeURIComponent() 。encodeURIComponent()函数通过用表示字符的UTF-8编码的一个、两个、三个或四个转义序列替换每个字符来对URI进行编码。因此,这将帮助我们替换所有不兼容的字符。

示例:

encodeURIComponent(‘G F G’) // 输出 : G%20F%20G

我们需要创建一个名为 serializeCookie 的函数,它接受两个参数: cookie_namecookie_value

function serializeCookie(cookie_name , cookie_value){ … }

该函数返回以下格式的字符串: < cookie-name>=<cookie-value> with encodeURIComponent(),如下所示:

function serializeCookie(cookie_name , cookie_value){ 

return `{encodeURIComponent(cookie_name)}={encodeURIComponent(cookie_value)}`; 

} 

示例1: 以下是上述方法的实现:

HTML

<!DOCTYPE html> 
<html> 
  
<head> 
    <title>Page Title</title> 
</head> 
  
<body> 
    <h1 style="color:green"> 
          GeeksForGeeks</h1> 
    <h3>How to serialize a cookie name-value 
        pair into a Set-Cookie header string in JavaScript?</h3> 
</body> 
<script> 
    const serializeCookie = (name, val) => 
`{encodeURIComponent(name)}={encodeURIComponent(val)}`; 
    document.body.append(serializeCookie('foo', 'bar')); 
  
</script> 
</html>

输出:

如何将cookie的名称和值序列化为JavaScript中的Set-Cookie头字符串

解释: foo是<cookie-name>,bar是使用箭头函数serializeCookie()进行编码的<cookie-value>,编码结果为foo=bar。

示例2: 这里你正在创建一个完整的Set-Cookie头部:

HTML

<!DOCTYPE html> 
<html> 
  
<head> 
    <title>Page Title</title> 
</head> 
  
<body> 
    <h1 style="color:green"> 
          GeeksForGeeks</h1> 
    <h3>How to serialize a cookie name-value pair 
        into a Set-Cookie header string in JavaScript?</h3> 
</body> 
<script> 
    const serializeCookie = (name, val) => 
    `{encodeURIComponent(name)}={encodeURIComponent(val)}`; 
    document.body.append(`{serializeCookie('foo', 'bar')}; 
    {serializeCookie('Path', 'http://example.com/path/to/page')}; 
    Secure;{serializeCookie('Expires', 'Wed, 21 Oct 2015 07:28:00 GMT')}; 
    HttpOnly;{serializeCookie('SameSite', 'Lax')}`); 
</script> 
</html>

输出 :

如何将cookie的名称和值序列化为JavaScript中的Set-Cookie头字符串

解释: 使用与上面相同的方法,其中有一个serializeCookie函数,它返回一个完整的Set-Cookie头值,其中包含以序列化形式的参数,例如path,Secure和HttpOnly。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程