专业3 Cookie 和Session的使用及原理
Cookie的使用及原理
什么是cookie
cookie是一种用来跟踪和识别用户上网信息的会话控制技术,它将跟踪后的信息存储在客户端的浏览器上
cookie如何使用
第一步:设置cookie即可(告诉浏览器,有cookie要存储值了)
setcookie('cookie的键名','cookie的值')
第二步:取出cookie的值,cookie的值可以使用PHP的超全局预定义数组$_COOKIE直接取即可
echo $_COOKIE['cookie的键名']
如果想要删除cookie
第一种:清除浏览器的缓存就能删除cookie了
第二种:代码删除
//给cookie重新设置过期时间,时间为过去时
setcookie("username","",time()-1);
cookie的分类
cookie分为会话cookie和持久cookie
会话cookie指:未给cookie设置过期时间,当浏览器关闭cookie的值就会消失
//会话cookie,未设置过期时间,当关闭浏览器,值就删除了
setcookie("username","root");
持久cookie值:给cookie设置过期时间,只有当过期时间到cookie的值才会消失
setcookie("username","root",time()+20);
session
Session的使用及原理 什么是session session也是一种和cookie一样的会话控制技术,它将跟踪后的信息以文件的形式存储在服务器端,所以说session相对于cookie而言更加安全 session如何使用 第一步:设置session,设置之前一定要使用session_start()开启session //开启session,在开启之前不允许有任何输出
session_start();
//设置session
$_SESSION['username']="admin";
第二步:取出session <h1>欢迎,
<font color="red">
<?php
//只要用的$_SESSION的地方,必须要先开启
session_start();
//输出键为username的值即可
echo $_SESSION['username']
?>
</font>登录
</h1>
删除session session_start();
//删除指定下标的session数据,同时session文件中的数据也会被删除掉
//unset($_SESSION['name']);
//清空session数组,同时将session文件销毁
session_destroy();
session的存储位置 session将跟踪和识别后的记录以文件的形式保存在服务器端,那么文件的保存位置由PHP的配置文件中的:session.save_path来决定 文件的存储名是一个32位的sessionID,如何得知哪个文件是你的存储的session数据呢,可以打印cookie数组来查看: print_r($_COOKIE);
//得到
Array(
'name' => 'admin',
'PHPSESSID' => 'gmf800he5068ns1apmkg865i26'
)
其中PHPSESSID指向的就是一个32位的随机数,简称sessionID
session的运行原理 当页面遇到session_start()时,服务器端会准备产生一个32位的sessionID,在产生前会先查看本地的cookie中是否存在,如果cookie中已有sessionID,那么session认为会话未结束,不再产生新的sessionID,接下来的操作依旧和上一个sessionID存储的文件进行关联。 如果本地的cookie中不存在sessionID则说明会话是一个新会话,此时服务器端会将产生的新sessionID发送一份寄存在本地的cookie,同时会创建一个以sessionID命名的文件来进行对会话内容存储。
如何让session不过期 通过原理我们发现,session是关闭浏览器后就消失的一种保存方式。 session的存储内容和sessionID
有关,如果能让sessionID持久保存,则服务器端不会在每次重新打开浏览器后遇到session_start()时生成新的sessionid了。
实现: //开启session
session_start();
//设置session
$_SESSION['name']="admin"; //让sessionid不过期
//session_name():获取sessionID的名称
//session_id():获取sessionID的值
//第三个参数就是给其增加上过期时间
setcookie(session_name(),session_id(),time()+60*24);
专业3 Cookie 和Session的使用及原理的更多相关文章
- 转:cookie和session(一)——原理
文章来自于:http://blog.csdn.net/half1/article/details/21645545 一.cookie和session是什么? cookie是服务器留在客户端中的小文 ...
- Flask中cookie和session设置与csrf原理攻防
Flask之操作cookie app.py from flask import Flask, request, Response app = Flask(__name__) @app.route('/ ...
- cookie和session的区别及其原理
1.为什么要有cookie/session? HTTP是一种无状态的协议,为了分辨链接是谁发起的,需自己去解决这个问题.不然有些情况下即使是同一个网站每打开一个页面也都要登录一下.而Session和C ...
- [转]cookie、session、sessionid 与jsessionid
cookie.session.sessionid 与jsessionid,要想明白他们之间的关系,下面来看个有趣的场景来帮你理解. 我们都知道银行,银行的收柜台每天要接待客户存款/取款业务,可以有几种 ...
- cookie、session、sessionid的区别
我们都知道银行,银行的收柜台每天要接待客户存款/取款业务,可以有几种方案: 1.凭借柜台职员的记忆,由收柜台职员来为每位顾客办理存款/取款业务,单凭职员的记忆力,要记到每位顾客的相貌,并迅速这个顾客当 ...
- cookie、session、sessionid ,jsessionid 的区别
本文是转载虫师博客的文章http://www.cnblogs.com/fnng/archive/2012/08/14/2637279.html cookie.session.sessionid 与js ...
- 前端Cookie与Session的区别
我们在实际生活中总会遇到这样的事情,我们一旦登录(首次输入用户名和密码)某个网站之后,当我们再次访问的时候(只要不关闭浏览器),无需再次登录.而当我们在这个网站浏览一段时间后,它会产生我们浏览的记录, ...
- 前端页面——Cookie与Session有什么区别
我们在实际生活中总会遇到这样的事情,我们一旦登录(首次输入用户名和密码)某个网站之后,当我们再次访问的时候(只要不关闭浏览器),无需再次登录.而当我们在这个网站浏览一段时间后,它会产生我们浏览的记录, ...
- Session与Cookie(自定义Session)
一.会话管理 会话管理: 管理浏览器客户端 和 服务器端之间会话过程中产生的会话数据. 域对象: 实现资源之间的数据共享. request域对象 context域对象 会话技术: Cookie技术:会 ...
随机推荐
- Uwl.Admin.Core开源框架(三) 使用RabbitMQ
Uwl.Admin.Core中使用RabbitMQ消息队列: 本文负责讲解RabbitMQ的使用 Uwl.Admin.Core使用的技术有: *.Async和Await 异步编程 *.Reposito ...
- ABC182 F Valid payments
解法一 首先不妨来思考一下怎样的一个付钱方案是最优的,假设需要支付 \(Y\) 元,第 \(a_i\) 种钱币支付了 \(s_i\) 张,那么必须有:\(s_i < \frac{a_{i + 1 ...
- spring filter详解
一.Filter基本工作原理 1.Filter 程序是一个实现了特殊接口的 Java 类,与 Servlet 类似,也是由 Servlet 容器进行调用和执行的. 2.当在 web.xml 注册了一个 ...
- 《Effective Python》笔记——第2章 函数
一.函数出错的时候抛异常,而不要返回None pass 二.闭包 书里的例子不好,参考https://www.cnblogs.com/Lin-Yi/p/7305364.html 在一个外函数中定义了一 ...
- 给 zsh 自定义命令添加参数自动补全
有时我会自定义一些 zsh 命令,以便提升某些高频操作的效率.本文记录我给一个自定义命令添加参数自动补全的方法. 场景 我自定义了一个 zsh 命令 gmt,执行 gmt <b2>,可以将 ...
- Note -「群论」学习笔记
目录 前置知识 群 置换 Burnside 引理与 Pólya 定理 概念引入 引例 轨道-稳定子(Orbit-Stabilizer)定理 证明 Burnside 引理 证明 Pólya 定理 证明 ...
- mysql data local的使用导入与导出数据到.txt
一.先创建表 CREATE TABLE stu(id INT UNSIGNED AUTO_INCREMENT,NAME VARCHAR(15) UNIQUE, /* 唯一约束 , 可以不填写,如果填写 ...
- 公式编辑器CVE-2018-0798样本分析
当前样本是一个RTF文档,内嵌一个公式编辑器对象,该对象利用Office编辑器漏洞CVE-2018-0798执行shellcode,对EQNEDT32.exe进行代码注入,执行恶意代码. 使用 ...
- shell脚本部署zookeeper-3.4.10 [含注释]
文章目录 zk_install.sh conf/config conf/zoo_template.cfg package zk_install.sh #!/bin/bash base_path=$(c ...
- 【计理01组04号】JDK基础入门
java.lang包 java.lang包装类 我们都知道 java 是一门面向对象的语言,类将方法和属性封装起来,这样就可以创建和处理相同方法和属性的对象了.但是 java 中的基本数据类型却不是面 ...