cookie

1.什么是cookie?

HTTP协议本身是无状态的。什么是无状态呢,即服务器无法判断用户身份。Cookie实际上是一小段的文本信息(key-value格式)。客户端向服务器发起请求,如果服务器需要记录该用户状态,就使用response向客户端浏览器颁发一个Cookie。客户端浏览器会把Cookie保存起来。当浏览器再请求该网站时,浏览器把请求的网址连同该Cookie一同提交给服务器。服务器检查该Cookie,以此来辨认用户状态。

打个比方,我们去银行办理储蓄业务,第一次给你办了张银行卡,里面存放了身份证、密码、手机等个人信息。当你下次再来这个银行时,银行机器能识别你的卡,从而能够直接办理业务。

2.机制:

当用户第一次访问并登陆一个网站的时候,cookie的设置以及发送会经历以下4个步骤:

客户端发送一个请求到服务器

服务器发送一个HttpResponse响应到客户端,其中包含Set-Cookie的头部

客户端保存cookie,之后向服务器发送请求时,HttpRequest请求中会包含一个Cookie的头部

服务器返回响应数据

3:属性:

NAME=VALUE键值对,可以设置要保存的 Key/Value,注意这里的 NAME 不能和其他属性项的名字一样

Expires过期时间,在设置的某个时间点后该 Cookie 就会失效

Domain生成该 Cookie 的域名,如 domain="www.baidu.com"

Path该 Cookie 是在当前的哪个路径下生成的,如 path=/wp-admin/

Secure如果设置了这个属性,那么只会在 SSH 连接时才会回传该 Cookie

4.cookied使用:

cookie 是由服务端创建的,由浏览器端保存的。所以创建对象我们应该在服务端创建 cookie,cookie 的创建方法:

(1):

创建一个 CookieServlet

在 Servlet 的 doPost()方法中编写如下代码:

(2):

在浏览器中访问该 Servlet,会发现响应头中出现如下内容: Set-Cookie: username=zhangsan

如此就成功的向浏览器设置了一个 Cookie,当我们在刷新页面时会发现浏览器的请求头中出现如下代码:

Cookie: username=zhangsan

(3):同样我们还可以同时设置多个 Cookie:

浏览器会按以下形式发送 Cookie:

Cookie: username=zhangsan; password=123456; age=20

5.读取cookie:

cookie 被设置进入浏览器后,每次请求都会携带 cookie 的值,所以我们需要从 request 中取出 cookie 进行解析。

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值