cookie与session的小例子:

包含cookie记住登录名,session防止用户非法登录2个例子:

问我拿吧,这个下载连接挂了

描述

cookie过程描述

网站为了辨别用户身份、进行 session 跟踪而储存在用户本地终端上的数据(通常经过加密)
用户第一次访问你的网站->在服务器端会将用户的信息设置为cookie(可以理解为制造饼干过程)->通过http协议发送给用户(浏览器),在用户端,cookie以文本的形式保存下来. 
用户第二次访问同一个网站-> 在http协议的请求头中会携带着cookie信息 -> 服务器对cookie进行验证 ->第二次响应 -> 猜你喜欢

session过程描述 :

当客户端访问服务器时,服务器根据需求设置session,将会话信息保存在服务器上,同时session_id,以cookie的形式传递给客户端浏览器,浏览器将这个session_id保存在内存中。
浏览器再次请求都会额外加上这个session_id(也即是cookie的值),服务器根据这个session_id,在服务端来判断使用哪个session文件.

COOKIE与SESSION区别:

一. COOKIE

下面是cookie在浏览器和服务器中请求与响应的过程:

1.    COOKIE的工作原理

cookie过程描述

网站为了辨别用户身份、进行 session 跟踪而储存在用户本地终端上的数据(通常经过加密)

用户第一次访问你的网站->在服务器端会将用户的信息设置为cookie(可以理解为制造饼干过程)->通过http协议发送给用户(浏览器),在用户端,cookie以文本的形式保存下来.

用户第二次访问同一个网站-> 在http协议的请求头中会携带着cookie信息 -> 服务器对cookie进行验证 ->第二次响应 -> 猜你喜欢

set_cookie.php

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Document</title>
  6. </head>
  7. <body>
  8. <h1>设置COOKIE</h1>
  9. <?php
  10. //设置cookie
  11. //Setcookie(名称,值,过期时间,有效路径,有效域名)
  12. setcookie('name','admin94324239',time()+2222,'/','.abc.com');
  13. ?>
  14. </body>
  15. </html>

get_cookie.php

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Document</title>
  6. </head>
  7. <body>
  8. <h1>获取COOKIE</h1>
  9. <?php
  10. echo $_COOKIE['name'];
  11. ?>
  12. </body>
  13. </html>

2.    设置COOKIE

创建语法:

  1. setcookie(名称,值,过期时间,有效路径,有效域名)

说明:

1)        名称, 字符串,  为取出cookie的值服务.

2)        值, 注意值的类型.(必须为string类型)

3)        过期时间, time()+秒数

设置cookie的有效期为一周:

注意!

4)        有效路径, 指的是在哪个路径下可以将cookie的值取出

默认情况下,是当前页面所在的目录及其子目录有效的.

5)        有效域名, 指的是在哪个域名下可以将cookie的值取出

说明: 默认情况下是当前的主域名. 如www.abc.com

3.    读取COOKIE

直接通过超全局数组下标读取

  

  1. echo $_COOKIE[‘cookie的名称’]

4.    删除COOKIE的方法

1)              将cookie的有效时间过期即可.

  1. setcookie(名,值,time()-1)
  2.  
  3. setcookie(名,值,time()-9999999);
  4.  
  5. setcookie(名)

5.    实例:自动记录登录的用户名

前台页面:

后台处理页面:

二.SESSION

1.    SESSION的工作原理

下面是在浏览器详细的工作过程:

session过程描述 :

当客户端访问服务器时,服务器根据需求设置session,将会话信息保存在服务器上,同时session_id,以cookie的形式传递给客户端浏览器,浏览器将这个session_id保存在内存中

浏览器再次请求都会额外加上这个session_id(也即是cookie的值),服务器根据这个session_id,在服务端来判断使用哪个session文件.

从下面可以看出session与cookie息息相关:

设置session:

获取session:

以上代码:

set_session.php

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Document</title>
  6. </head>
  7. <body>
  8. <h1>设置session</h1>
  9. <?php
  10. //开启session
  11. session_start();
  12. //创建session
  13. $_SESSION['username'] = 'itcast_china';
  14.  
  15. ?>
  16. </body>
  17. </html>

get_session.php

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Document</title>
  6. </head>
  7. <body>
  8. <h1>获取session</h1>
  9. <?php
  10. //开启session
  11. session_start();
  12. //获取session
  13. echo $_SESSION['username'];
  14. ?>
  15. </body>
  16. </html>

2.    开启SESSION会话功能

(1)在创建session之前必须先开启会话

(2)方法: session_start();

(3)位置: 原则开启之前只要不超过4KB都可以开启. 建议,在当前页面的最前面开启.

(4)在一个页面中,只能开启一次.

(5)Session_start(); //在开启时会判断,当前会话是否已经开启,如果已经开启则不会再生成一个id号.

(6)不管是创建session,还是使用(判断,删除等)session都必须先开启.

3.    获取当前的SESSION的ID值

  1. echo session_id();

4.    添加SESSION数据

(1)$_SESSION['名称'] = 值

session的值可以是多类型的:

5.    读取SESSION数据

数组通过下标(session名称)获取值.

  1. <?php
  2. //开启session
  3. session_start();
  4. //获取session
  5. echo $_SESSION['username'];
  6. ?>

6.    删除SESSION数据

(1)unset  //销毁变量

  1. unset($_SESSION[名])

(2)session_destroy();  //删除当前的session文件

  彻底删除session,  两个函数接合使用.

7.    实例:防止用户非法登录

看小例子

8.问题:

如果用户将浏览器的cookie禁用,问session还能使用吗?为什么?如何解决?

答:不能使用. 因为session是基于cookie的.

解决方法:

自己来传session_id即SID:

test.php

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Document</title>
  6. </head>
  7. <body>
  8. <h1>禁止cookie怎么办?</h1>
  9. <?php
  10. session_start();
  11. $_SESSION['username'] = 'abc';
  12. ?>
  13. <a href="test.php?<?php echo SID; ?>">自己来传!</a>
  14. </body>
  15. </html>

index.php

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Document</title>
  6. </head>
  7. <body>
  8. <h1>获取SID并设置为当前的session_id</h1>
  9. <?php
  10. //从地址栏中得到session_id,并设置为当前的session_id;
  11. if(isset($_GET['PHPSESSID'])){
  12. //设置为当前的session_id
  13. session_id($_GET['PHPSESSID']);
  14. }
  15. session_start();
  16. echo $_SESSION['username'];
  17.  
  18. ?>
  19. </body>
  20. </html>

9.    SESSION的垃圾回收:

什么是SESSION的垃圾回收?

SESSION垃圾回收时间(session.gc_maxlifetime),

回收的概率(session.gc_probability, session.gc_divisor)

在php.ini中:

三.SESSION相关配置

  1. session.name = PHPSESSID
  2. session.auto_start =0 // 0 表示不开启.
  3. session.cookie_lifetime=0 //代表浏览器关闭,会话结束
  4. session.cookie_path=/ //指定了要session会话 cookie 的有效路径
  5. session.cookie_domain //指定了要session会话 cookie 的有效域名
  6. 脚本设置:
  7.     (a)ini_set('session.cookie_path', '/');
  8.     (b)ini_set('session.cookie_domain', '.mydomain.com');
  9.     (c)ini_set('session.cookie_lifetime','1800');"

例子:设置10内有效的session

  1. //set_session.php 设置10秒内有效的session
  2. <?php
  3. session_start();
  4. ini_set('session.cookie_lifetiem','10');
  5. session_start();
  6. $_SESSION['username'] = 'abc';
  7. ?>
  8.  
  9. //get_session 获取10秒内有效的session
  10. <?php
  11. session_start();
  12. echo $_SESSION['username'];
  13.  
  14. ?>

COOKIE与SESSION的详解的更多相关文章

  1. (进阶篇)Cookie与 Session使用详解

    1.Cookie和Session简介与区别 在非常多时候,我们需要跟踪浏览者在整个网站的活动,对他们身份进行自动或半自动的识别(也就是平时常说的网站登陆之类的功能),这时候,我们常采用Cookie与 ...

  2. Cookie与 Session使用详解

    Cookie概念 在浏览某些 网站 时,这些网站会把 一些数据存在 客户端 , 用于使用网站 等跟踪用户,实现用户自定义 功能. 是否设置过期时间: 如果不设置 过期时间,则表示这个 Cookie生命 ...

  3. Cookie和Session机制详解

    会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话.常用的会话跟踪技术是Cookie与Session.Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端 ...

  4. cookie和session的详解和区别

    会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话.常用的会话跟踪技术是Cookie与Session.Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端 ...

  5. Cookie 和 Session 关系详解

     什么是 Cookie 和 Session ? 什么是 Cookie HTTP Cookie(也叫 Web Cookie或浏览器 Cookie)是服务器发送到用户浏览器并保存在本地的一小块数据,它会在 ...

  6. 【转】Cookie/Session机制详解

    Cookie/Session机制详解   会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话.常用的会话跟踪技术是Cookie与Session.Cookie通过在客户端记录信息 ...

  7. cookie session token详解

    cookie session token详解 转自:http://www.cnblogs.com/moyand/ 发展史 1.很久很久以前,Web 基本上就是文档的浏览而已, 既然是浏览,作为服务器, ...

  8. Chrome的cookie放在哪里了,Cookie/Session机制详解

    Chrome的cookie放在哪里了,Cookie/Session机制详解:https://blog.csdn.net/u010002184/article/details/82082951

  9. Hibernate Session & Transaction详解

    Hibernate Session & Transaction详解 HIbernate中的Session Session是JAVA应用程序和Hibernate进行交互时使用的主要接口,它也是持 ...

随机推荐

  1. vue 基本知识

    1,内置事件对象event 原生JS事件中是直接通过传入 e 或者 event 就可以获取,但在vue中要传入 $event 才可以获取到内置事件对象 <body> <button ...

  2. DLINK 企业路由器内网部署web开启端口转发后还需要开启是否支持端口回流功能

    跑后台使用的服务器,配置一般都很低,带宽只有2Mb 一些大型文件比如app的更新包使用这种服务器不可行 但是公司的网络是100Mb对等静态ip专线 所以能利用起来,每年将会省下8万块 说干就干,这个步 ...

  3. hbase设计方案1

    好的方案应该挺多的,比如:可以将[日.周.月]以3,2,1来表示(拼接到ROW_KEY中){离线跑job时候,可以分为月job(每月末run一下,周job(每周末run一下),日job(每天run一下 ...

  4. 卷积神经网络中的通道 channel

    卷积神经网络中 channels 分为三种:    (1):最初输入的图片样本的 channels ,取决于图片类型,比如RGB, channels=3    (2):卷积操作完成后输出的 out_c ...

  5. leetcode 321 Create Max Number

    leetcode 321 Create Max Number greedy的方法,由于有两个数组,我们很自然的想到从数组1中选i个数,数组2中选k-i个数,这样我们只需要遍历max(0, k-数组2长 ...

  6. bert 预训练模型路径

    google的bert预训练模型: BERT-Large, Uncased (Whole Word Masking): 24-layer, 1024-hidden, 16-heads, 340M pa ...

  7. loj2324 「清华集训 2017」小 Y 和二叉树

    https://loj.ac/problem/2324 太智障,一开始以为中序遍历的第一个点一定是一个叶子,想了个贪心.然而,手算了一下,第一个点都过不了啊. input 5 2 3 4 1 3 3 ...

  8. php连接数据库查询方法(还少一种pdo方法)

    <?php header("content-type:text/html;charset=utf-8"); $conn = mysql_connect("local ...

  9. 点击按钮使用window.open打开页面后,再次点击按钮会再打开一个页面,如何解决?

    点击按钮使用window.open打开页面后,再次点击按钮会再打开一个页面,如何解决? window.open("page1.html","win1"); 这句 ...

  10. 7 个令人兴奋的 JavaScript 新特性

    前言 一个ECMAScript标准的制作过程,包含了Stage 0到Stage 4五个阶段,每个阶段提交至下一阶段都需要TC39审批通过.本文介绍这些新特性处于Stage 3或者Stage 4阶段,这 ...