当前位置:首页 > 技术教程 > 技术文章 > 正文内容

session的工作原理

atao5年前 (2020-06-18)技术文章3727

Session 工作原理

  1、创建Session

  当用户访问到一个服务器,如果服务器启用Session,服务器就要为该用户创建一个SESSION,在创建这个SESSION的时候,服务器首先检查这个用户发来的请求里是否包含了一个SESSION ID,如果包含了一个SESSION ID则说明之前该用户已经登陆过并为此用户创建过SESSION,那服务器就按照这个SESSION ID把这个SESSION在服务器的内存中查找出来,如果客户端请求里不包含有SESSION ID,则为该客户端创建一个SESSION并生成一个与此SESSION相关的SESSION ID。这个SESSION ID是唯一的、不重复的、不容易找到规律的字符串,这个SESSION ID将被在本次响应中返回到客户端保存,而保存这个SESSION ID的正是COOKIE,这样在交互过程中浏览器可以自动的按照规则把这个标识发送给服务器。

  2、使用Session

  我们知道在IE中,我们可以在工具的Internet选项中把Cookie禁止,那么会不会出现把客户端的Cookie禁止了,那么SESSIONID就无法再用了呢?找了一些资料说明,可以有其他机制在COOKIE被禁止时仍然能够把Session id传递回服务器。

  经常被使用的一种技术叫做URL重写,就是把Session id直接附加在URL路径的后面一种是作为URL路径的附加信息,表现形式为:

  http://…。/xxx;jSession=ByOK3vjFD75aPnrF7C2HmdnV6QZcEbzWoWiBYEnLerjQ99zWpBng!-145788764;

  另一种是作为查询字符串附加在URL后面,表现形式为:

  http://…。。/xxx?jSession=ByOK3vjFD75aPnrF7C2HmdnV6QZcEbzWoWiBYEnLerjQ99zWpBng!-145788764

  还有一种就是表单隐藏字段。就是服务器会自动修改表单,添加一个隐藏字段,以便在表单提交时能够把Session id传递回服务器。

  

session11.png

Session作用

  Session的根本作用就是在服务端存储用户和服务器会话的一些信息。典型的应用有:

  1、判断用户是否登录。

  2、购物车功能。

Session实例问题

  现有系统A,B; 假设A系统是可以独立运行的web系统,即可以和浏览器直接处理session, B系统是基于mobile的,需要调用A系统的功能接口,

  在保持A不改变的情况下,即登陆验证,session存储都不变的情况下,B系统能处理前端用户的请求。

  这里提供的方案是使用PHP实现

  在用户登陆成功后,将保存的session的session-id返回给B系统,然后B系统每次请求其他接口都带session_id。

  A系统在session_start前加上session_id(session_id);

  这样B系统就能安全的调用A

以上就是session的工作原理的详细内容,更多请关注php中文网其它相关文章!

扫描二维码推送至手机访问。

版权声明:本文由武景涛的博客发布,如需转载请注明出处。

本文链接:http://yizhanhongtu.cn/post/4.html

分享给朋友:

相关文章

PHP获取今天、明天、上周、本周、上月、本月、本季度、上季度时间段方法

PHP获取今天、明天、上周、本周、上月、本月、本季度、上季度时间段方法

strtotime()函数123//date('n') 第几个月 //date("w") 本周周几 //date("...

PHP获取和操作配置文件php.ini的几个函数介绍

PHP获取和操作配置文件php.ini的几个函数介绍

1.ini_get()获取配置参数,ini_set()设置配置参数<?php echo ini_get('display_errors'); //1 //...

PHP开发api接口,如何做才算是安全的

PHP开发api接口,如何做才算是安全的

php的api接口在实际工作中,使用PHP写api接口是经常做的,PHP写好接口后,前台就可以通过链接获取接口提供的数据,而返回的数据一般分为两种情况,xml和json,在这个过程中,服务器并不知道,...

MySQL中,21个写SQL语句的好习惯

MySQL中,21个写SQL语句的好习惯

每一个好习惯都是一笔财富,本文分 SQL 后悔药、SQL 性能优化、SQL 规范优雅三个方向,分享写 SQL 的 21 个好习惯。1. 写完 SQL 先 explain 查看执行计划。【SQL 性能优...

php版微信公众平台之微信网页登陆授权示例详解

php版微信公众平台之微信网页登陆授权示例详解

之前在项目中遇到网页授权登录这个需求,就对此做些总结记录。OAuth2.0授权:OAuth是一个开放协议,允许用户让第三方应用以安全且标准的方式获取该用户在某一网站、移动或桌面应用上存储的个人信息,而...

Redis Desktop Manager简单介绍及配置使用

Redis Desktop Manager简单介绍及配置使用

Redis Desktop Manager 简单的来讲就是Redis可视化工具,可以让我们看到Redis中存储的内容。一、下载Redis Desktop Manager百度网盘下载地址:https:/...