cookie和session详解

目录

为什么要使用cookie

Cookie是什么

Cookie验证实验

00.php登录代码:

login.php后端接收代码

666.php登录成功后跳转代码

Session

什么是session

Session原理


为什么要使用cookie

        HTTP最大的特点是无连接无状态,使用Cookie和Session的技术就是为了解决这个问题,简单来说,就是让浏览器在一段时间内认识你。

Cookie是什么

        从安全的角度出发,当我们去访问网站,有些内容或者文件只有登录或者进行身份验证后才能访问,但是我们不可能访问一个内容或者文件,就进行一次登录,很影响用户的体验,所以我们使用cookie技术将我们进行一个身份验证,只要通过一次验证就可以带着cookie访问文件。

Cookie验证实验

开始之前先对下面代码进行一个分析:

        登录代码创建一个登录页面,这里我将登录页面命名为00.php在登录框输入账号和密码,将输入的密码交给login.php代码也就是后端接收带代码,后端接收代码将前端传入的用户名和密码,与数据库进行对比,如果匹配上将跳转到666.php页面,如果失败将提示登录失败,

那么如何验证cookie的作用

我们发现666.php只有通过login.php的验证才能访问到,如果选择直接进行访问,将会提示黑客攻击,此时就可以验证cookie在访问文件时起到了验证身份的作用

00.php登录代码:

<!DOCTYPE html>

<html>

<head>

    <meta charset="UTF-8">

    <title>登录</title>

</head>

<body>

    <div>

        <b>登录</b>

        <form action="login.php" method="post">

            <p><span>用户名:</span><input type="text" name="user" required="" /></p>

            <p><span>密码:</span><input type="password" name="pass"/ required=""></p>

            <p><input type="reset" name=""/> <input type="submit" name=""/></p>

        </form>

        <a href="register.html">新用户注册</a>

    </div>

</body>

</html>

login.php后端接收代码

<meta charset="utf-8">

<?php

    $conn = mysqli_connect('localhost','root','root','security') or die('数据库连接失败');

    $conn->query("SET NAMES 'UTF8'");



    $user = $_POST['user'];

    $pass = $_POST['pass'];

    $sql="SELECT * FROM users where username='{$user}' and password='{$pass}'";



    $result=$conn->query($sql);

    $row = mysqli_num_rows($result);

       //若表中存在输入的用户名和密码,row=1;若表中用户名不存在或密码错误,则row=0



    if($row == 1){

        echo $row['user']."登陆成功!";

    }

    else{

        echo"登录失败,请重新登录!";

    }     

?>

666.php登录成功后跳转代码

<meta charset="utf-8">

<?php

    $user=$_COOKIE['user'];

    if($user !=''){

        echo '这里是管理页面';

    } else{

        echo '停止黑客攻击';

    }

?>

Session

什么是session

        http是无状态协议,每次请求都是独立的线程。所以为了维护上下文信息,追踪同一个用户。Session是另一种记录客户状态的机制,不同的是Cookie保存在客户端浏览器中,而Session保存在服务器上。客户端浏览器访问服务器的时候,服务器把客户端信息以某种形式记录在服务器上。这就是Session。客户端浏览器再次访问时只需要从该Session中查找该客户的状态就可以了。Session是服务器端会话技术,在一次会话的多次请求间共享数据,将数据保存在服务器端的HTTPSession对象中。

Session原理

(1)Session会为每一次会话分配一个Session对象

(2)同一个浏览器发起的多次请求,同属于一次会话(Session)

(3)首次使用到Session时,服务器会自动创建Session,并创建Cookie存储SessionId发送回客户端

  • 13
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值