首页 >每日编程 >PHP知识 > 正文

session的工作原理

原创2020-07-30 09:47:57016185

推荐教程:PHP教程

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

相关专题推荐php session (包含图文、视频、案例)

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

php中文网最新课程二维码
  • 相关标签:session php
  • 本文原创发布php中文网,转载请注明出处,感谢您的尊重!
  • 相关文章

    相关视频


    网友评论

    文明上网理性发言,请遵守 新闻评论服务协议

    我要评论
  • SpringMVC:首先DispatcherServlet根据浏览器请求调用对应Controller;然后Controller会将处完业务后结果进行返回;最后DispatcherServlet
    springmvc是:1、浏览器发送请求给DispatcherServlet;2、根据请求找到对应Controller;3、返回ModelAndView;4、找到对应视图对象View并渲染
    本文来自java快速入门栏目,文中详细为大家分析了hashmap,希望可以帮助到大家。
    MVC:1、由客户端发起请求;2、服务端接收请求,并解析请求;3、根据解析出来请求,找到对应控制器,并执行控制器;4、控制器调用模型获取数据,并将数据传给视图;5、视图将数据渲染出来。
    当用户访问到一个服务器,如果服务器启用Session,服务器就要为该用户创建一个SESSION以及SESSION ID,这也就是该用户在该服务器唯一标识。
    tomcat是:1、Tomcat是运行在JVM中一个进程。
    :用户触发浏览请求;浏览器将请求发送到Web服务器;Web服务器接受这个请求,并根据请求文件后缀名判定是否为HTML文件;Web服务器读取正确HTML文件然后将它发送给请求浏览器;用户浏览器解析这些
    这篇文章主要介绍了PHP底层运行机制与,文中通过图文介绍非常详细,对大家学习或者具有一定参考学习价值,需要朋友们下面随着小编来一起学习学习吧。
    冯诺依曼结构计算机基本主要分为存储程序和程序控制,预先要把控制计算机如何进行操指令序列【称为程序】和始数据通过输入设备输送到计算机内存中,每一条指令中明确规定了计算机从哪个地址取数,进行什么操
    Excel环境中用来储存并处表数据文件,称为簿。簿是Excel环境中用来储存并处数据文件,Excel文档就是簿。
    java面试题:1、jsp和servlet有什么区别;2、jsp有哪些内置对象,用分别是什么;3、说一下jsp4种用域;4、session和cookie有什么区别;5、说一下session
    SR锁存器(又称基本RS触发器)是各种触发器电路中结构形式最简单一种。
    phpsession是:首先使用【session_start()】函数,php从session仓库中加载已经存储session变量;然后当执行php脚本时,通过使用【session_register
    PHP SESSIONID生产算法:1、可由php.ini配置hash_func = md5 / sha1;2、PHPSESSIONID = hash_func(客户端IP+当前时间(秒)+当前时间
    存储一个用户信息,更改用户session设置,所有页面都可以用。本文主要和大家分享PHP开发Session以及使用详解,希望能帮助到大家。
    这篇文章主要介绍了php中使用session防止用户非法登录后台方法,详细分析了session防止用户非法登录后台与相关实现技巧,需要朋友可以参考下。
    下面由Laravel教程栏目给大家介绍Laravel生命周期,希望对需要朋友有所帮助!世间万物皆有生命周期,当我们使用任何具时都需要解它,那么用起来就会得心应手,应用开发也是如此。
    PHP MySQL预处语句用是防止MySQL注入,预处语句用于执行多个相同SQL语句,并且执行效率更高;预处语句是创建SQL语句模板并发送到数据库,其预留值使用参数“?”标记。
    php-cgi进程占用cpu资源过多因有:1、一些php扩展与php版本兼容存在问题;2、程序中可能存在死循环,导致服务器负载超高;3、php程序不合使用session;4、程序中存在过度耗时且不可能完成
    vscode移除区中文件夹方法是:1、首先在【文件】菜单上单击【源代码管】,接着单击【区】;2、然后在【管区】选项【名称】下,突出显示区,点击【编辑】;3、最后在【文件夹

    专题推荐

    推荐视频教程
  • PHP每日小知识(第二季)PHP每日小知识(第二季)
  • PHP语法基础与数据库详解教程PHP语法基础与数据库详解教程
  • PHP数据库编程零基础入门到精通PHP数据库编程零基础入门到精通
  • PHP经典算法面试题PHP经典算法面试题
  • 视频教程分类