HTTP(超文本传输协议)定义了通过万维网(WWW)传输文本、图形、视频和所有其他数据所有的规则。HTTP是一种无状态的协议,说明每次请求的处理都与之前或之后的请求无关。虽然这种简化实现对于HTTP的普及做出了卓越的贡献,但对于希望创建复杂的Web应用程序的开发人员来说,这点有点困扰。为了解决这个问题,出现了一种在客户端机器上存储少量信息(cookie)。

由于cookie大小限制、数量及其他原因,开发人员又提出了一种解决方案:session会话处理。

一.Cookie的应用

  //1 创建一个Cookie
//Cookie是在你的客户机存的一个小文件,这个文件包含你登录的信息
//第一个参数表示Cookie的名,第二个表示Cookie的值,第三个参数过期时间
setcookie('name','lee',time()+(7*24*60*60)); //2 读取本机的Cookie,采用一个超级全局变量$_COOKIE
//有个特性,setcookie并不是即使生成,它会慢一拍,意思就是第一次刷新只是覆盖了原来的,获取的还是原来的,但用的时候对我们没影响
echo $_COOKIE['name']; //3 用变量检测判断Cookie是否存在
echo isset($_COOKIE['name']); //4 删除Cookie
setcookie('name',''); //将值设置为空即可
setcookie('name','lee',time()-1); //通过过期时间也可以 //5 Cookie的限制
//1、必须在HTML文件的内容输出之前设置;
//2、不同的浏览器对Cookie的处理不一致,且有时会出现错误的结果。
//3、限制是在客户端的。一个浏览器能创建的Cookie数量最多为30个,并且每个不能超过4KB,每个WEB站点能设置的Cookie总数不能超过20个。

Cookie登录例子:如果username和指定的姓名相同就登录

demo1:

<form method="post" action='demo2.php'>
姓名:<input type='text' name='username' />
<input type='submit' name='send' value='提交' />
</form>

demo2.php:

  //例子:如果username和指定的姓名相同,那么就生成一个cookie
//完成登录
if (isset($_POST['username']) && $_POST['username']=='dangxm') {
//如果成功,生成一个Cookie,再跳转
setcookie('name','dangxm');
header('Location:demo3.php');
}else {
header('Location:demo.php');
}

demo3.php:

<?php
if (isset($_COOKIE['name'])){
echo '欢迎光临:'.$_COOKIE['name'];
}else {
echo '非法登录';
} ?>

二.Session会话处理

  //Session会话处理,存在服务端,一般存放1440秒
//如果没有进行任何操作,会自动销毁,可以通过php.ini来修改默认时间
//即时性的,不会像Cookie慢半拍 //1 开启会话,只要用到,必须开启,一般放在文件开头
session_start();
//2 创建session
$_SESSION['name']='lee';
//3 取值
echo $_SESSION['name'];
//4 判断是否存在
if(isset($_SESSION['name'])){
echo $_SESSION;
}else {
echo "session不存在";
}
//5 删除session:unset();
unset($_SESSION['name']);
session_destroy();//销毁所有session,一般放在session_start();后用来销毁之前创建的所有session

Cookie使用于会员登录,购物车
因为不占有服务器资源,所以会员特别多,购物车特别多,就用Cookie
 
session一般用于后台管理登录,人少
安全性,一段时间不操作会自动登录

会话控制:Cookie和session的更多相关文章

  1. http协议。会话控制cookie、session

    http协议是无状态的协议.每次访问页面的http协议都是独立的,正是因为http协议是无状态的,所以导致访问一个页面后再去访问另一个页面的时候,一些数据会消失,比如:用户的登录信息就会消失.那么怎么 ...

  2. 会话控制cookie和session

    Cookie Cookie简介 HTTP是无状态协议,服务器不能记录浏览器的访问状态,也就是说服务器不能区分中两次请求是否由一个客户端发出.这样的设计严重阻碍的Web程序的设计.如:在我们进行网购时, ...

  3. 会话控制——Cookie和Session

    Cookie简介 l  HTTP是无状态协议,服务器不能记录浏览器的访问状态,也就是说服务器不能区分中两次请求是否由一个客户端发出.这样的设计严重阻碍的Web程序的设计.如:在我们进行网购时,买了一条 ...

  4. 会话技术: Cookie 和 Session

    会话技术 会话技术:从浏览器开始访问服务器,到关闭浏览器,这期间发生了许多次请求和响应,这个过程就叫做一次会话. Cookie 和 Session 都是处理会话技术的两种具体实现,Cookie将数据保 ...

  5. 会话技术cookie和session详解

    什么是会话 会话可简单理解为:用户开一个浏览器,点击多个超链接,访问服务器多个web资源,然后关闭浏览器,整个过程称之为一个会话. 会话技术解决了什么问题 每个用户与服务器进行交互的过程中,各自会有一 ...

  6. PHP-会话控制Cookie和Session

    会话控制:就是为了我们在访问页面和页面之间的跳转是,能够识别到你的登录状态,已经你的登录时长等 在php的会话控制当中,涉及到两个概念Cookie和Session Cookie 会话控制 原理:在登录 ...

  7. 会话管理---Cookie与Session

    会话可简单理解为:用户开一个浏览器,点击多个超链接,访问服务器多个web资源,然后关闭浏览器,整个过程称之为一个会话. 保存会话数据的两种技术:Cookie,Session Cookie是客户端技术, ...

  8. 会话跟踪Cookie与Session

    会话跟踪用来跟踪用户的整个会话,常用的是Session和Cookie.Cookie通过客户端记录信息确定用户身份,Session通过在服务器端记录信息确定用户身份. 1.Cookie  1.1概念及使 ...

  9. Servlet 会话技术cookie和session

    会话技术 Cookie技术:会话数据保存在浏览器客户端. Session技术:会话数据保存在服务器端. 一.Cooke技术 1. 特点 Cookie技术:会话数据保存在浏览器客户端. 2 .Cooki ...

随机推荐

  1. 使用VelocityTracker来完成MotionEvent移动速率计算

    先看效果图 关键代码(此处记录单点): switch (event.getAction()){ case MotionEvent.ACTION_DOWN: if (veloctiy==null) { ...

  2. 分布式缓存Redis使用心得

    一.缓存在系统中用来做什么 1. 少量数据存储,高速读写访问.通过数据全部in-momery 的方式来保证高速访问,同时提供数据落地的功能,实际这正是Redis最主要的适用场景. 2. 海量数据存储, ...

  3. 更好的pip工作流

    转自:http://codingpy.com/article/a-better-pip-workflow-recommended-by-kenneth/ 现在大家开发Python应用时,在代码库的根目 ...

  4. prototype 原型

    在我刚学习javascript的时候对于原型的概念很模糊,现在也不是很懂,希望下面的文章对有相同问题的朋友有帮助,如果有误希望指正: prototype用于通常用于构造函数中,公用方法的继承上.构造函 ...

  5. CSS3-transform 转换/变换

    transform 向元素应用 2D 或 3D 转换.该属性允许我们对元素进行旋转.缩放.移动或倾斜. 兼容性: Internet Explorer 10.Firefox.Opera 支持 trans ...

  6. mui日期插件$, each遍历,EventListener事件监听,json格式

    (function($) { $.init(); var result = $('#result')[0]; var btns = $('.btn'); btns.each(function(i, b ...

  7. java中的System类

    System类代表系统,系统级的很多属性和控制方法都放置在该类的内部.该类位于java.lang包. 由于该类的构造方法是private的,所以无法创建该类的对象,也就是无法实例化该类.其内部的成员变 ...

  8. Java并发编程之阻塞队列

    1.什么是阻塞队列? 队列是一种数据结构,它有两个基本操作:在队列尾部加入一个元素,从队列头部移除一个元素.阻塞队里与普通的队列的区别在于,普通队列不会对当前线程产生阻塞,在面对类似消费者-生产者模型 ...

  9. pair correlation ggpair ggmatrix

    https://zhuanlan.zhihu.com/p/23400450 首发于 R语言数据分析与可视化 关注专栏 登录 写文章     R 语言矩阵散点图 EasyCharts· 15 天前 散点 ...

  10. mysql5.7导入csv文件

    环境: Windows10企业版X64 mysql5.7免安装版(从5.6版本开始,官方不再提供64位的msi版本) 运行mysqld.exe启动mysql进程. 用root登录mysql: mysq ...