cookie与session(略谈)
cookie
(储存在用户本地终端上的数据)
"_octo=GH1.1.969433396.1497770397; _ga=GA1.2.1764394916.1497770397; _gat=1; tz=Asia%2FShanghai"
cookie存在于浏览器当中的
服务器返回的响应头里面的信息:cookie的格式,键值对
Set-Cookie:PHPSESSID=ot684bvd4n6mlpmsg2pbsubb14; expires=Mon, 19-Jun-2017 07:24:17 GMT; path=/
cookie 是存在于客户端浏览器的,是可以设置的,也可以获取的 document.cookie = ""; document.cookie
同域名下面的cookie是共享的 studyit.com/login studyit.com/index
根目录下面的cookie信息,是可以被所有的子目录访问的,但是子目录的cookie信息,是不能被父级访问到的
类似 于作用域
不同域名之间的cookie信息不能互相访问,不共享
cookie是可以设置过期时间的,默认的生命周期就是页面关闭的时候
<script>
document.cookie="name=zhangsan;age=20;";//虽然用分号隔开了,但是内容不能全部获取到
document.cookie="name=zhangsan;";
document.cookie="age=20;";
//这样写是不会将前面的给覆盖掉,但是大小是有限制的,大约在4k
//因为浏览器每次发送请求的时候都会默认携带cookie,如果cookie的数据太大了会影响传输速度和访问效率
console.log(document.cookie);
// 因为cookie就是一个字符串,设置的时候,没有问题,但是获取里面的某相cookie值的时候,非常的不方便,因此可以使用 jquery.cookie这个插件来完成 </script>
- Session
Session是存在服务器端的,相当于有一个session存区,每当浏览器发送请求的时候,如果不是第一次请求的话,都会携带之前的cookie信息到服务器端,这个时候,就可以和session存储区的sessionid进行匹配,如果匹配成功,则证明是已经登录的用户,如果没有,则证明没有登录过,或是没有访问
Session也是有过期时间的,默认是20分钟。这个20分钟是一个滑动时间
- 利用cookie实现登陆
因为只能请求过服务器之后,才会由服务器给浏览器发送一条session字符串,存储到浏览器的cookie当中
第二次请求的时候,浏览器就会携带着存储到cookie中的信息一并发送给服务器
服务器接受请求,并获得cookie中的信息,然后和session存储区的数据进行匹配,如果匹配成功,则证明之前已经登陆过
则可以进行后续的跳转,否则跳转到登陆页面
php方式测试cookie
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<p>使用PHP的方式测试...</p>
</body>
</html>
<script>
var xhr = new XMLHttpRequest();
xhr.open('get','setCookie.php');
xhr.send();
</script>
setCookie.php:
<?php
header("Content-type:text/html;charset=utf-8");
// echo '请求成功了';
setcookie('gender','mmmm');
// cookie也是可以在服务器端进行设置的,是可以跟随响应报文,返回到浏览器端,存储在浏览器的cookie当中
// 当再次再来访问的时候,会获取到带来的cookie信息,和服务器的session存储区内的信息进行匹配,如果匹配成功则可以进行其它的访问操作
// var_dump($_COOKIE); // $_COOKIE可以接收发送过来的所有的cookie信息
echo json_encode($_COOKIE); // json_encode 是将 $_COOKIE中的内容转换成对象形式的字符串 ?>
session与cookie 小结:
- Cookie:
- cookie是存在于浏览器端的
- 每次浏览器发送请求都会携带cookie信息,如果是第一次请求一般是没有cookie
- cookie是可以同域名下面的页面共享的,不同域名下面的cookie不共享
- 父级目录下面的cookie,子级目录是可以获取到的,但是子级下面的cookie,父级获取不到
- cookie是有过期时间的,一般默认时间是页面关闭,时间是可以自己设置的
- cookie的格式是一个字符串,是一个键值对形式
- cookie是有大小限制的,一般是4k,如果数据太大的话,会影响传递速度或是效率
- Document.cockie可以用来设置或是获取cookie信息
- Session:
- session存储于服务器端,依赖于cookie
- 服务器端相当于有一个session存储区
- session没有大小限制
使用jQuery.cookie.js这个插件来设置cookie
首先这个插件是依赖于jQuery的,因此使用的时候一定要先引入jQuery文件,然后再使用插件
$.cookie("name","zhangsan");
$.cookie(),这个方法获取的是一个对象,因此存取cookie就变的非常方便
<title>Title</title>
<script src="views/public/assets/jquery/jquery.js"></script>
<script src="views/public/assets/jquery-cookie/jquery.cookie.js"></script>
<script>
// $.cookie('name','lisi');
// console.log($.cookie());
// console.log($.cookie('sex')); //使用这种方式来获取cookie的值就方便多了 $.cookie('name','zhangsan',{path:'/',expires:new Date('2017-06-20 18:00:00')});
</script>
</head>
<body>
<p>这是使用jquery.cookie.js在设置cookie了...</p>
</body>
cookie与session(略谈)的更多相关文章
- 浅谈JS中的!=、== 、!==、===的用法和区别 JS中Null与Undefined的区别 读取XML文件 获取路径的方式 C#中Cookie,Session,Application的用法与区别? c#反射 抽象工厂
浅谈JS中的!=.== .!==.===的用法和区别 var num = 1; var str = '1'; var test = 1; test == num //tr ...
- 浅谈cookie 和session 的区别
具体来说 cookie 是保存在“客户端”的,而session是保存在“服务端”的 cookie 是通过扩展http协议实现的 cookie 主要包括 :名字,值,过期时间,路径和域: 如果cooki ...
- (进阶篇)浅谈COOKIE和SESSION关系和区别
COOKIE介绍 cookie 常用于识别用户.cookie 是服务器留在用户计算机中的小文件.每当相同的计算机通过浏览器请求页面时,它同时会发送 cookie.通过 PHP,您能够创建并取回 coo ...
- 浅谈cookie和session
Cookie简介 Cookie(复数形态Cookies),中文名称为“小型文本文件”,指某些网站为了辨别用户身份或存储用户相关信息而存储在用户本地终端(Client Side) 上的数据(通常为加密数 ...
- 浅谈cookie与session的区别
cookie用的是在客户端保持状态的方案(它是在用户端的会话状态的存贮机制),前端也可以来设置他 所有浏览器都识别,并且会缓存在浏览器中. cookie是以key=value这种键值对的形式保存,每个 ...
- 浅谈cookie、session
揭秘Cookie: cookie说的直白点就是保存在用户浏览器端的一个键值对,举个例子,你现在登录了京东商城,你把浏览器关闭之后,你再打开京东,你还是可以对你的账户继续操作,已经购买的商品,订单都是可 ...
- 浅谈Cookie、Session与Cache的区别
以前实现数据的缓存有多种方法,如客户端的Cookie,服务器端的Session.Application. 一.Cookie Cookie是保存客户端的一组数据,主要用来保存用户的个人信息,主要存放浏览 ...
- 浅谈cookie 和 session
一. cookie 定义:保存在浏览器本地上的一组组键值对 特点: 由服务器让浏览器进行设置的 浏览器保存在浏览器本地 下次访问时自动携带 应用: 登录 保存浏览习惯 简单的投票 使用cookie的原 ...
- 【转】Cookie和Session区别和联系详解
会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话.常用的会话跟踪技术是Cookie与Session.Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端 ...
随机推荐
- PHP 基础篇 - PHP 错误级别详解
一.前言 最近经常看到工作 2 年左右的童鞋写的代码也会出现以静态方法的形式调用非静态方法,这是个 Deprecated 级别的语法错误,代码里不应该出现的.对方很郁闷,说:为什么我的环境可以正常运行 ...
- UVA10020:Minimal coverage(最小区间覆盖)
题目: http://acm.hust.edu.cn/vjudge/contest/view.action?cid=68990#problem/M 题目需求:数轴上有n个闭区间[ai,bi],选择尽量 ...
- mysql 系统变量和session变量
mysql系统变量包括全局变量(global)和会话变量(session),global变量对所有session生效,session变量包括global变量.mysql调优必然会涉及这些系统变量的调整 ...
- visual studio NuGet
http://www.cnblogs.com/dudu/archive/2011/07/15/nuget.html 首先打开程序包管理器控制台:工具→Nuget程序包管理器→程序包管理器控制台 Ins ...
- 如何获知PHP程序占用多少内存(复制)
想要知道编写的 PHP 脚本需要占用多少内存么?很简单,直接使用 PHP 查看当前分配给 PHP 脚本的内存的函数 memory_get_usage() 就可以了 下面是使用示例: 复制代码 代码如下 ...
- java.sql.SQLException: Streaming result set com.mysql.jdbc.RowDataDynamic@27ce24aa is still active. No statements may be issued when any streaming result sets are open and in use on a given connection
在Sqoop往mysql导出数据的时候报了这个错误,一开始还以为是jar包没有打进去或者打错位置了,未解便上网查询. Error reading from database: java.sql.SQL ...
- Linux_Vi_命令
Linux Vi 命令 ************************************************************************* 在vi中使用命令的方法是:冒 ...
- Jquery Easy UI Datagrid 上下移动批量保存数据
DataGrid with 上下移动批量保存数据 通过前端变量保存修改数据集合,一次性提交后台执行 本想结合easyui 自带的$('#dg').datagrid('getChanges'); 方法来 ...
- 利用URLConnection来发送POST和GET请求
URL的openConnection()方法将返回一个URLConnection对象,该对象表示应用程序和 URL 之间的通信链接.程序可以通过URLConnection实例向该URL发送请求.读取U ...
- QML中的state 状态
QML中的状态其实很好理解,任何事物在某一事件都是有一个状态的. 比如你看到的一个窗口,这个时候里面的文字和图片正处于某个状态中.比如一个超链接,你点击了,发现颜色变了,你按了Ctrl+A,整个窗体好 ...