cookie和session

一、会话技术

1.1、HTTP协议

HTTP协议是HyperText Transfer Protocol是超文本运输协议,是浏览器和服务器传输数据的协议。
我们在地址栏输入京东网址,实际发生了什么?

01.png

我们在地址栏输入网址实际上是浏览器给服务器发了请求,服务器会给浏览器做出响应,把css js 图片等返回给浏览器,浏览器再进行解析,显示出页面。

原理图如下:
02.png

http是无状态的,每个客户端去访问服务器的的时候,服务器不会记住每个客户端的信息,如果你第一次访问添加一件商品,然后关闭浏览器,再次访问的时候,所以服务器没有记住客户端的信息,购物车还是空的,这是不合理,所以需要通过下面两个技术来实现保存数据信息的功能。(会话技术)

二、 会话

用户在地址栏里输入网址,浏览各种数据,只要关闭浏览器,这就算一次会话结束。

三、 cookie

3.1概念和设置cookie

cookie是小饼干的意思,在这里是用户在浏览器访问网址的时候,服务器给访问的客户端下达命令,在客户的计算机的硬盘里存储了cookie文件。

我们新建01.php文件,自己设置cookie,格式

setcookie(‘name’,’值’);

我们打开谷歌浏览器,

03.png

点击设置—高级—网站设置

04.png

点开cookie,可以看到自己刚设置的,如果你访问了其他网站,也会很多cookie文件

05.png

原理图如下:

06.png

3.2读取cookie

$_COOKIE[‘名’]

读取cookie的时候一定要先设置后读取,比如我们先访问获取页面,会报错

3.3设置cookie有效期

cookie默认是会话结束就消失,我们可以自己定义时间

setcookie('name','tom',time()+60);

3.4cookie是跨页面的

在01.php设置

setcookie('name','tom',time()+60);

在02.php获取

echo $_COOKIE['name'];

3.5删除cookie

setcookie(‘名’,’值’,time()-3600)

3.6登录案例

访问网站的时候,第一次登录需要用户输入用户名和密码,点击记住用户名,第二次登录时候不用输入用户和密码,自动登录。

07.png

我们写第一个登录正常 第二次把用户名和密码直接显示出来

08.png

3.7cookie特点

1、浏览器访问服务器,服务器命令浏览器在客户端硬盘中存储cookie文件,是键值对的形式,
第二次浏览器访问服务器的时候会携带cookie文件,服务器读取cookie,如果里面有值代表访问
过,否则是第一次访问。
2、cookie是跨越页面。
3、cookie不跨浏览器。我用谷歌访问京东,再用ie去访问京东,它会认为是两个客户。
4、cookie可以存储多个值。
5、cookie可以设置过期时间,而且可以通过设置过期来清除cookie.
6、cookie是保存在浏览器端的,第二次访问会携带,安全性差些

四、 session

4.1概念

session是存储在服务端的。
 
就和我们日常生活中的取钱是一样的,人相当于浏览器,服务器相当于银行,第一次访问的时候携带现金过去,以后给你一张卡,相当于服务器给浏览器一个sessionid(是唯一的),第二次访问的的时候浏览器携带sessionid过去,相当于人第二次去银行直接携带银行卡。

09.png

4.2设置session

session_start();
$_SESSION['name']='tom';//设置session

4.3获取session

session_start();
echo $_SESSION['name'];//获取session

4.4清除session

session_start();
$_SESSION['name']='tom';//设置session
unset($_SESSION['name']);//清除session
原文地址:https://www.cnblogs.com/wjlbk/p/12633443.html