session+cookie简单讲解以及持久化登录实现 您所在的位置:网站首页 手机cookie怎么启用 session+cookie简单讲解以及持久化登录实现

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

2023-09-16 06:56| 来源: 网络整理| 查看: 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中

我们存储用户的


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有