web程序员入门必学之会话技术cookie


概念

可以使在同一台浏览器向同一个服务器的多次请求之间,将数据持久化存储的一种技术!

为什么需要会话技术?

因为B/S请求响应模式是无状态无记忆的,任意的请求间,不存在任何的联系,不能将请求状态保持下去!

正式由于B/S的这种特点,导致了我们用户无法实现连续的业务逻辑,比如:购物!填写资料!

分类

cookie技术:基于浏览器端的一种技术

session技术:基于服务器端的一种技术

COOKIE初步

基本原理

允许服务器端,在浏览器端存储数据的一种技术!

所以,cookie技术其实是浏览器端的一种技术,它的基本特点如下:

1,允许服务器向浏览器发送指令,用来存储和管理存放在浏览器端上的cookie数据

2,如果浏览器存储了某台服务器所设置的cookie数据,那么浏览器再次向服务器请求的时候,浏览器会主动携带这些cookie数据到服务器端

web程序员入门必学之会话技术cookie_第1张图片

基本操作:cookie的本质还是数据,只要是数据,基本操作就是增删改查

设置(增删改):cookie的增删改都是通过setCookie这个函数来完成的,基本的语法格式如下:

setCookie(名字,值)

web程序员入门必学之会话技术cookie_第2张图片

web程序员入门必学之会话技术cookie_第3张图片

如何删除?删除,就是设置这个cookie的变量为空字符串!修改cookie就是cookie变量的名字不变,值发生了改变!

获取cookie的值(查)

所谓的获取cookie变量的值就是获取浏览器在请求服务器的时候携带的cookie数据!

web程序员入门必学之会话技术cookie_第4张图片

获取cookie变量的值,是使用超全局数组变量$_COOKIE完成对cookie数据的获取!

php会将浏览器上发送请求时携带的所有的cookie数据存放到$_COOKIE数组变量中,供php的脚本使用!

web程序员入门必学之会话技术cookie_第5张图片

其中,每一个$_COOKIE中的元素,都对应着一个cookie变量,其中,变量的名字就是cookie元素的键key,变量的值就是cookie元素的值value

思考:如果此时,我们换一个浏览器再次请求10cookie2.php,能不能获得数据?

回答:不能!在firefox下查询cookie数据:在工具---选项----隐私

web程序员入门必学之会话技术cookie_第6张图片

COOKIE的属性

COOKIE的有效期

默认的是:

一个会话周期结束,也就是浏览器关闭的时候,cookie的有效期就结束了!里面的数据也就没有了!

也可以设置有效期:

我们可以通过设置setCookie函数的第三个参数对cookie的有效期进行设置!

有效期是使用一个时间戳来表示的!

注意:

浏览器在向服务器发送请求时候,会检测cookie数据是否过期,只有没有过期的数据,在请求的时候才会携带!

有效期的特殊值:

0默认值,表示一个会话周期

time() – 1 :是删除一个cookie的最最标准的做法,只要是一个过去的时间就行

web程序员入门必学之会话技术cookie

PHP_INT_MAX逻辑上表示永久有效的cookie(到2038年)

web程序员入门必学之会话技术cookie

COOKIE的有效路径

所谓的有效路径,就是该cookie变量在哪能访问在哪不能访问!

默认的是:

cookie在当前目录以及当前目录的子目录是有效的!但是,如果在某一个子目录设置了一个cookie变量,其父目录是无法访问的!

web程序员入门必学之会话技术cookie_第7张图片

web程序员入门必学之会话技术cookie_第8张图片

web程序员入门必学之会话技术cookie_第9张图片

web程序员入门必学之会话技术cookie

web程序员入门必学之会话技术cookie

COOKIE的有效域

这里的域指的就是域名!

cookie都是基于域名来保存的!默认的,cookie只能在当前的域名下才有效!

http://www.shop.com/11cookie2.php的域名是www.shop.com

但是,随着互联网的发展,出现了子域的概念,也就是说,我们可以通过设置,是的cookie的有效域,扩展到某个一级域名下的所有的子域!

比如:shop.com是一级域名,www.shop.com和bbs.shop.com一样都是二级域名!

web程序员入门必学之会话技术cookie_第10张图片

可以通过修改COOKIE的第5个参数,第5个参数如果为空字符串,也就是使用默认值,但是也可以手动配置!

web程序员入门必学之会话技术cookie_第11张图片

web程序员入门必学之会话技术cookie_第12张图片

COOKIE的仅安全传输

意思是:是否仅安全传输,默认值是false,如果为true,意思就是仅安全连接的时候才传输!

什么是安全传输?就是以https://开头的,https是一种加密后了的http协议,更安全!

web程序员入门必学之会话技术cookie

web程序员入门必学之会话技术cookie

COOKIE的仅HTTPONLY

是否仅HTTPONLY!默认的,浏览器存储的cookie数据是可以在其他的任意的脚本进行处理的,比如JS中!

web程序员入门必学之会话技术cookie_第13张图片

但是,如果将COOKIE的第7个参数设置为true(默认值为false),表示仅仅在http请求中使用,也就是说,其他的脚本就不能使用了!

web程序员入门必学之会话技术cookie

web程序员入门必学之会话技术cookie_第14张图片

注意:cookie的值,仅仅支持字符串的类型!

web程序员入门必学之会话技术cookie

web程序员入门必学之会话技术cookie_第15张图片

web程序员入门必学之会话技术cookie_第16张图片

你可能感兴趣的:(java)