Session与Cookie(一)Cookie

2022-06-15  本文已影响0人  fanren

前言

开发中,我们为什么要使用Session与Cookie?
在前端开发中,我们一般都是使用HTTP协议传输数据的,而HTTP协议是无状态的协议。一旦数据交换完毕,客户端与服务器端的连接就会关闭,再次交换数据需要建立新的连接。这就意味着服务器无法从连接上跟踪会话。

A和B两个人,同时发起了HTTP请求,对于服务器来说,它根本没有办法区分两次的请求,具体是谁发出的。

为了解决HTTP这一个缺陷,陆续出现了Cookie与Session

一、什么是Cookie?

由于HTTP是一种无状态的协议,服务器单从网络连接上无从知道客户身份。怎么办呢?就给客户端们颁发一个通行证吧,每人一个,无论谁访问都必须携带自己通行证。这样服务器就能从通行证上确认客户身份了。这就是Cookie的工作原理。

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

服务器还可以根据需要修改Cookie的内容。

二、Cookie的属性

1. name

该Cookie的名称。Cookie一旦创建,名称便不可更改

2. value

该Cookie的值。如果值为Unicode字符,需要为字符编码。如果值为二进制数据,则需要使用BASE64编码

3. maxAge

该Cookie失效的时间,单位秒。

注意:从客户端读取Cookie时,包括maxAge在内的其他属性都是不可读的,也不会被提交。浏览器提交Cookie时只会提交name与value属性。maxAge属性只被浏览器用来判断Cookie是否过期。

4. secure

该Cookie是否仅被使用安全协议传输。安全协议。安全协议有HTTPS,SSL等,在网络上传输数据之前先将数据加密。默认为false

5. path

该Cookie的使用路径。如果设置为“/sessionWeb/”,则只有contextPath为“/sessionWeb”的程序可以访问该Cookie。如果设置为“/”,则本域名下contextPath都可以访问该Cookie。注意最后一个字符必须为“/”

6. domain

可以访问该Cookie的域名。如果设置为“.google.com”,则所有以“google.com”结尾的域名都可以访问该Cookie。注意第一个字符必须为“.”

Cookie是不可跨域名的。域名www.google.com颁发的Cookie不会被提交到域名www.baidu.com去。这是由Cookie的隐私安全机制决定的。隐私安全机制能够禁止网站非法获取其他网站的Cookie。

7. comment

该Cookie的用处说明。浏览器显示Cookie信息的时候显示该说明

8. version

该Cookie使用的版本号。0表示遵循Netscape的Cookie规范,1表示遵循W3C的RFC 2109规范

三、设置Cookie

js设置Cookie:

document.cookie = "username=sam;expires=15/05/2018 00:00:00"
上一篇下一篇

猜你喜欢

热点阅读