cookie学习

author author     2022-11-24     790

关键词:

什么是Cookie?

? ? Cookie是由W3C组织提出,最早由NetScape社区发展的一种机制。

? ? Cookie是存储于访问者的计算机中的变量。每当同一台计算机通过浏览器请求某个页面时,就会发送这个cookie。

? ? Cookie的作用就是用于解决"如何记录客户端的用户信息":

? ? ? ? ①当用户访问web页面时,他的名字可以记录在Cookie中。

? ? ? ? ②在用户下一次访问该页面时,可以在Cookie中读取用户访问记录。

? ? Cookie实际上是一小段文本信息(上限为4kb)。客户端请求服务器,如果服务器需要记录该用户状态,就使用response向客户端浏览器颁发一个Cookie。客户端浏览器可以把Cookie保存起来。当浏览器再请求该网站时,浏览器把请求的网址连同该Cookie一同提交给服务器。服务器检查该Cookie,以此来辨认用户状态。服务还可以根据需要修改Cookie的内容。

Cookie的属性

这是笔者着重注意讲述的点

属性名 说明
name Cookie的名称,Cookie一旦创建,名称便不可更改
value Cookie的值,如果值为Unicode字符,需要为字符编码。如果为二进制数据,则需要使用BASE64编码。该值会在浏览器再次发起请求时,传递给服务器
maxAge Cookie失效的时间,单位秒。如果为整数,则该Cookie在maxAge秒后失效。如果为负数,该Cookie为临时Cookie,关闭浏览器即失效,浏览器也不会以任何形式保存该Cookie。如果为0,表示删除该Cookie。默认为-1。 该值可以在服务器运行时动态设置
secure 该Cookie是否仅被使用安全协议传输。安全协议。安全协议有HTTPS,SSL等,在网络上传输数据之前先将数据加密。默认为false。 可以在服务器运行时动态设置
path Cookie的使用路径。如果设置为“/sessionWeb/”,则只有contextPath为“/sessionWeb”的程序可以访问该Cookie。如果设置为“/”,则本域名下contextPath都可以访问该Cookie。注意最后一个字符必须为“/”。该值只有在生成cookie的时候设置有效,后面设置无效。如果需要动态设置path,可以先利用maxAge属性设置为0,把cookie删除了,然后在重新生成cookie的时候,设置path(这时候记得把maxAge=0去掉)
domain 可以访问该Cookie的域名。如果设置为“.google.com”,则所有以“google.com”结尾的域名都可以访问该Cookie。设置规则同path属性
comment 该Cookie的用处说明,浏览器显示Cookie信息的时候显示该说明。
version Cookie使用的版本号。0表示遵循Netscape的Cookie规范,1表示遵循W3C的RFC 2109规范

Cookie的Domain属性

我们重点说一下这个Domain属性。一般在实现单点登录的时候会经常用到这个属性,通过在父级域设置Cookie,然后在各个子级域拿到存在父级域中的Cookie值。比如刚才设置的username属性,在blog.csdn.net下同样可以访问到,用户不用重新登录就可以拿到第一次登录进来时候的用户信息,因为这些用户信息都是存在父级域".csdn.net"下面,其他页面也可以拿到。

当在"blog.csdn.net"这个域名下存入一个Cookie;如:
document.cookie = "blogCookie=blog;path=/;domain=.blog.csdn.net";
然后你会发现在mp.csdn.net下看不到blogCookie这个属性。这个就是所谓的Cookie跨域的问题。

总结:
domain表示的是cookie所在的域,默认为请求的地址,如网址为www.study.com/study,那么domain默认为www.study.com。而跨域访问,如域A为t1.study.com,域B为t2.study.com,那么在域A生产一个令域A和域B都能访问的cookie就要将该cookie的domain设置为.study.com;如果要在域A生产一个令域A不能访问而域B能访问的cookie就要将该cookie的domain设置为t2.study.com。注意:一般在域名前是需要加一个"."的,如"domain=.study.com"。

参考:https://blog.csdn.net/longgeg...

原文地址:https://segmentfault.com/a/1190000017051879

cookie的学习(代码片段)

cookie的一些知识①cookie是在服务器端创建的②cookie是保存在浏览器这端(response.addCookie)③cookie.setMaxAge设置生命周期,如果不设置,随浏览器关闭而消亡④cookie可以被多个浏览器共享⑤如果cookie重名则新的替换旧的⑥一个web应用可... 查看详情

express学习——cookie和session

express学习(三)——cookie和sessioncookie存在浏览器中,最大只能保存4K数据,不安全session存在服务器中,不能独立(先读取cookie再读取session),较安全cookie工具发送cookie:基本的东西先写好:constexpress=require(‘express‘);varserver=ex... 查看详情

4.29学习笔记-cookie的使用

如何用cookie实现自动登入在第一次登入时将登入的信息存入cookie之中,在下次登入调用cookie,cookie中有账号信息直接登入,没有则进入登入界面。  查看详情

javaee学习-cookie使用范例

Java中的javax.servlet.http.Cookie类用于创建一个CookieCookie类的主要方法No.方法类型描述1Cookie(String name, String value)构造方法实例化Cookie对象,传入cooke名称和cookie的值2public String getName()普通方法取得Cookie的名字3pu 查看详情

java学习---cookie工具

CookieUtils.javaimportjava.io.UnsupportedEncodingException;importjava.net.URLDecoder;importjava.net.URLEncoder;importjavax.servlet.http.Cookie;importjavax.servlet.http.HttpServletRequest;importjavax.s 查看详情

关于cookie的一些学习笔记

0x00发现自己对一些原理性的东西实在是太不了解最近看了《cookie之困》记一下笔记 0x01因为http是无状态的所以需要cookie和session来保持http的会话状态和缓存信息设置cookie服务器写入  Set-Cookie:user=1;domain=.xxx.com;path=/脚本写入... 查看详情

javaweb学习之路cookie

1.Cookies的原理1)首先浏览器向服务器发出请求。2)服务器就会根据需要生成一个Cookie对象,并且把数据保存在该对象内。3)然后把该Cookie对象放在响应头,一并发送回浏览器。4)浏览器接收服务器响应后,提出该Cookie保存在... 查看详情

javaweb学习之路cookie

1.Cookies的原理1)首先浏览器向服务器发出请求。2)服务器就会根据需要生成一个Cookie对象,并且把数据保存在该对象内。3)然后把该Cookie对象放在响应头,一并发送回浏览器。4)浏览器接收服务器响应后,提出该Cookie保存在... 查看详情

cookie入门与学习

...并且兼容性还不错,IE8+以上浏览器都支持。那我们直接学习Webstor 查看详情

django学习日记-cookie

obj.set_cookie(path=‘‘,domin=‘‘,secure=False,httponly)path用于从该cookie被指定的url使用,domin指定使用的域名(www.baidu.com为二级域名,baidu.com为顶级域名),都只能在当前域名和路径下使用,secure:当用https时设为True,仅仅HTTP网络传输可... 查看详情

cypress学习8-cookies使用(代码片段)

前言cy.getCookie()根据cookie的name名称,获取对应cookie的value值cy.get(‘#getCookie.set-a-cookie‘).click()//cy.getCookie()yieldsacookieobjectcy.getCookie(‘token‘).should(‘have.property‘,‘value‘,‘123ABC‘)cy.getCookies 查看详情

django学习手册-cookie/session(代码片段)

cookie"""cookie属性:obj.set_cookie(key,value,....)obj.set_signed_cookie(key,value,salt="加密盐",....)参数:key键value=“” 值max_age=None超时时间expires=None超时日期path="/"cookit生效的路径,/表示根路径,特殊的,跟路径的cookie可以被任何url被任何url 查看详情

第十一章django框架学习——cookie和session

第十一章Django框架学习——Cookie和session 一、Cookie简介二、装饰器版登录校验三、session简介四、如何在CBV中使用装饰器 一、Cookie简介什么是Cookie(what):Cookie具体指的是一段小信息,它是服务器发送出来存储在浏览器上... 查看详情

koa2学习使用cookie(代码片段)

Koa2学习(七)使用cookieKoa2的ctx上下文对象直接提供了cookie的操作方法set和getctx.cookies.set(name,value,[options])在上下文中写入cookiectx.cookies.get(name,[options])读取上下文请求中的cookieconstKoa=require(‘koa‘)constapp=newKoa()app.use(asy 查看详情

flask学习-62.cookies设置与使用(代码片段)

前言Cookie是保存到客户端的,用户通过浏览器访问网站保存到本地,Flask通过Response将cookie写到浏览器上,下一次访问,浏览器会根据网站域名(或IP_携带cookie过来.Flask中处理cookies在Flask中对cookie的处理主要有3个方... 查看详情

cookie学习笔记

SESSION:每个浏览器有自己的一个独一无二的编号,服务器通过此识别不同的浏览器COOKIE:服务器端写到客户端的一些小文本信息 cookie是一个名值段,结构有些像map,它记录着服务端与客户端之间的一些信息,由此客户端再去... 查看详情

cookies显示用户上次访问的时间学习笔记(代码片段)

Cookie.setMaxAge(72460*60)Cookie.setPath(“/day0X”);Httpwatch观察Cookie.setMaxAge(0)删除同名Cookieimportjava.io.IOException;importjava.util.Date;importjavax.servlet.ServletException;importjavax.servlet.http. 查看详情

cypress学习8-cookies使用(代码片段)

前言cy.getCookie()根据cookie的name名称,获取对应cookie的value值cy.get(‘#getCookie.set-a-cookie‘).click()//cy.getCookie()yieldsacookieobjectcy.getCookie(‘token‘).should(‘have.property‘,‘value‘,‘123ABC‘)cy.getCookies()获取浏览器全部cookiescy.getCookies().should... 查看详情