session+cookie简单讲解以及持久化登录实现

您所在的位置:网站首页 修改cookie里面的sessionid session+cookie简单讲解以及持久化登录实现

session+cookie简单讲解以及持久化登录实现

2024-07-15 06:46:46| 来源: 网络整理| 查看: 265

目录 前言 持久化登录介绍 cookie cookie介绍 cookie携带账号密码? cookie存储登录标志? session session简介 session的生存周期 session存储登录标志? cookie+session存储用户信息以区分用户 注销 代码实现 实现思路 登录验证后台程序 loginRecv.php 登录成功页面 loginSuccessPage.php 跳转页面subPage1.php 注销服务程序 logoutRecv.php 演示

前言

上次实现了一个最简单的登录功能,用到了mysql和php。【最简单的网页登录注册功能讲解及其实现】,今天来进一步编写登录后续的操作,注意本篇博客的内容基于上一篇博客。我们将在此基础上,实现持久化登录以及用户的身份识别。

持久化登录介绍

http是一种无状态协议,这意味着你在a页面登录,然后访问同一站点的b页面,b页面并不会知道你已经登录了,这是坏的。

持久化登录顾名思义,就是登录一次,终身有效,这样非常方便。我们知道一般的网站登录都会有以下几个特征:

只用登录最初的一次,之后都可以直接登录 在不同页面跳转,不用重新登录 任意页面都能够正确识别登录的用户是谁

我们希望实现以上的功能,我们第一个想法就是每个页面都设置登录验证,这样对程序员来说实现起来非常方便,但是用户体验非常曰狗,我们希望尽可能减少用户输入密码的次数。

那么让用户在请求的时候,携带一些信息吧,这些信息保存在用户本地磁盘,能够表示用户的偏好,或许也能够表示用户的身份

这就是cookie的概念,cookie顾名思义,减少用户的麻烦,给用户“甜头”,使得无状态的http协议具有一定的记忆性,接下来介绍cookie。

cookie cookie介绍

cookie由服务端下发,即请求返回时,服务器在http头中写入cookie信息。

cookie存放于用户的磁盘中,每个站点都有其专属的cookie,每当同一台计算机通过浏览器请求页面时,这台计算机将会发送 cookie,即http的包头都会带上cookie,而后台服务程序也可以接受相应的cookie,并且做出判断。

在这里插入图片描述

cookie携带账号密码?

通过cookie携带账户与密码,我们可以不用输入密码,就将信息传给后台,但是这面临问题:

如果发生页面跳转,会频繁查询用户账户数据库,带来开销 频繁的传输账号密码,信息泄露的风险增加了 cookie存储登录标志?

我们通过cookie存储一个数字,如果是0表示未登录,而如果是1表示登录,这样每次页面跳转,都检查cookie不就好了?可是这么做同样有两个问题:

cookie存在于客户端磁盘,用户可以篡改cookie,比如把cookie改成1强行登录 无法通过简单的状态判断用户的身份,因为无论是a用户还是b用户登录,他们的cookie值都是1

因为登录状态存在于客户端,这是不安全的,我们希望有一些存在于服务器上的信息,这样远程用户不可以篡改这些信息,安全性提高了,这就有了session的概念

session session简介

session又名会话,是一种存在于服务器内存中的【容器】,一个session类似一张map,可以存储【键值对】,通过键找到值的容器。 在这里插入图片描述 每个session都有独立的id,这些id不重复,我们称之为session id,它唯一地标识了session。

一个session可以简单的理解成【和浏览器对应的容器】,每个浏览器仅可以开启一个session,不同的浏览器请求页面,服务器php代码中的session_start()函数会启动不同的session。下面介绍session的生存周期

session的生存周期 从用户请求页面开始,建立session 用户访问同一站点的不同页面,session一直存在且只存在一个 用户关闭浏览器,用户丢失session session仍然存在于服务器上,服务器并未丢失session,除非服务器程序重启 太久未修改的session,会被服务器垃圾删除

session描述了“会话”的概念,即在不同的页面中跳转,客户端与服务器的会话,始终对应到一个session

session存储登录标志?

我们知道,session是存在于服务器的,那么可以用session来存储用户是否登录的信息。每次页面跳转时,查询session中的信息,然后就可以知道用户是否登录了。可是这么做仍然无法标识用户的身份,因为不管是张三还是李四登录,他们的session中的信息都是“登录状态:已登录”。

cookie+session存储用户信息以区分用户

我们需要利用session的特性,我们存储用户的信息在每个用户的session中

我们存储用户的用户名在对应的session中 我们下发一个cookie,这个cookie的内容是session id,即session的唯一标识 用户每次页面跳转请求,cookie中带上session id,我们就可以通过session id找到对应的session,进而区分不同的用户。

值得注意的是,因为cookie是我们下发的,用户无法伪造,而session是存储于服务端的,用户也无法修改其内容。这样保证了一定的安全性。

如下图描述了第一次登录时,服务器创建session以及返回cookie的过程 在这里插入图片描述 下图描绘了后面的若干次页面跳转,无需再次登录,服务器通过cookie中的session id 验证用户登录状态以及区分用户身份 在这里插入图片描述

注销

注销的时候,因为我们知道当前用户对应的时哪一个session,



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭