HTTP Cookie

Cookie相关的Http头
Set-Cookie Header
在程序中生成expire
 

Cookie相关的Http头

    有 两个Http头部和Cookie有关:Set-Cookie和Cookie。
    Set-Cookie由服务器发送,它包含在响应请求的头部中。它用于在客户端创建一个Cookie
    Cookie头由客户端发送,包含在HTTP请求的头部中。注意,只有cookie的domain和path与请求的URL匹配才会发送这个cookie。

Set-Cookie Header 
    Set-Cookie响应头的格式如下所示:

        Set-Cookie: <name>=<value>[; <name>=<value>]...
                    [; expires=<date>][; domain=<domain_name>]
                    [; path=<some_path>][; secure][; httponly]

    expires=<date>: 设置cookie的有效期,如果cookie超过date所表示的日期时,cookie将失效。
                    如果没有设置这个选项,那么cookie将在浏览器关闭时失效。
                    注意:date是格林威治时间(GMT),使用如下格式表示:
                        DAY, DD MMM YYYY HH:MM:SS GMT

                        DAY
                            The day of the week (Sun, Mon, Tue, Wed, Thu, Fri, Sat).
                        DD
                            The day in the month (such as 01 for the first day of the month).
                        MMM
                            The three-letter abbreviation for the month (Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec).
                        YYYY
                            The year.
                        HH
                            The hour value in military time (22 would be 10:00 P.M., for example).
                        MM
                            The minute value.
                        SS
                            The second value.

    domain=<domain_name> : 
    path=<some_path>:
                    注:临时cookie(没有expires参数的cookie)不能带有domain选项。
                    当客户端发送一个http请求时,会将有效的cookie一起发送给服务器。
                    如果一个cookie的domain和path参数和URL匹配,那么这个cookie就是有效的。

                    一个URL中包含有domain和path,可以参考http://www.w3school.com.cn/html/html_url.asp
 


    secure   : 表示cookie只能被发送到http服务器。
    httponly : 表示cookie不能被客户端脚本获取到。

 

 在程序中生成expires 

    C的方式 
        time_t curTime = time(NULL);
        tm * gmTime = gmtime(&curTime);

        char strExperis[50];
        strftime(strTimeBuf, 100, " %a, %d %b %Y %X GMT;", gmTime);

    JavaScript的方式 
        var d = new Date();
        var expires = d.toGMTString();

 

Windows中的InternetSetCookie 

在Windows中我们可以使用InternetSetCookie来设置Cookie,假如说,A和B两个进程使用Cookie通信,那么会有如下几种情况:

 > A写Global Cookie,B写Session Cookie,此时,A中无法获取Cookie

 > A写Session Cookie,B写Session Cookie,此时,A与B中的Cookie互不影响

 > A写Session Cookie,B写Global Cookie,此时A中的Cookie被Global Cookie覆盖,它们共享一份Global Cookie

    注:这种情况的后果下,如果有任意一个进程再写Session Cookie,那么其他进程将获取不到Cookie 

 

转载于:https://www.cnblogs.com/hdtianfu/archive/2013/05/30/3108295.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您好!对于HTTP Cookie的管理,可以使用Cookie管理器来处理。Cookie是Web服务器发送给浏览器并存储在用户计算机上的小型文本文件,用于跟踪和存储用户的信息。 在开发中,可以使用各种编程语言和框架来处理Cookie。以下是一些常见的方法: 1. 在后端使用服务器端编程语言(如Python、Java、PHP等)的相关库和框架,通过设置响应头部来设置和管理Cookie。这可以通过HTTP请求和响应头中的Set-Cookie字段来实现。 2. 在前端使用JavaScript来处理Cookie。可以使用document.cookie对象来读取、设置和删除Cookie。例如,通过document.cookie = "key=value"来设置Cookie,通过document.cookie = "key=; expires=Thu, 01 Jan 1970 00:00:00 UTC"来删除Cookie。 3. 在框架和库中使用Cookie管理器。许多流行的Web开发框架和库(如Django、Express、Flask等)都提供了内置的Cookie管理功能,使开发者能够轻松地设置、读取和删除Cookie。 使用Cookie管理器可以实现以下功能: - 设置和更改Cookie的值和过期时间。 - 读取和获取Cookie的值。 - 删除Cookie。 - 处理Cookie的安全性,例如设置Secure和HttpOnly标志以提高安全性。 请注意,Cookie管理器通常是特定于编程语言、框架或库的。具体的实现方式可能会有所不同,建议查阅相关文档或官方文档以了解更多详细信息和用法示例。 希望这些信息能对您有所帮助!如果您还有其他问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值