zoukankan      html  css  js  c++  java
  • 访问Django出现Session冲突

    前言:
    某天在同一台服务器直接ip不同端口运行两个web服务,当时没想过会出现什么问题,结果登录A站点,没有问题。再切到登录B站点,使用出问题了,直接回到登录页面,当时不清楚是什么问题,后来一查,打开浏览器查看存储,发现seesion冲突

    一、Session原理

    1、什么是Session
    Session是一个服务端会话技术,利用这个技术,服务器能够识别与之通讯的客户端。
    该客户端与服务端交互过程中,一些信息可以保存在Session中。

    2、Session实现原理

    Web服务器对浏览器的识别是建立在Cookie上面的,Session由服务端生成,其token(也就是session id)会保存在浏览器上。具体的客户端识别流程如下:

     当用户使用浏览器访问Web服务时,Web服务会根据Session Id查找内存中是否有对应的Session对象,如果没有Session Id,则web服务会为浏览器创建一个Session对象,并生成Session Id返回到浏览器Cookie保存。

    浏览器下次请求时再把该Cookie带上则可以被Web服务识别了。

    如果存在对两个相同域名、不同端口进行访问Web应用且Cookie的Key值刚好相同,则Cookie存储就会出现冲突,如果刚好这个key存储Session ID,则发生了Session冲突。

    二、Session冲突出现原因及解决

    1、Session冲突出现原因
    在浏览器中,Cookie的保存是以域名进行划分的,如下:
    如果存在对两个相同域名、不同端口进行访问Web应用且Cookie的Key值刚好相同,则Cookie存储就会出现冲突,如果刚好这个key存储Session ID,则发生了Session冲突。

    2、Session冲突的解决办法
    从前面分析可以知道,要避免Session冲突,就要打破以下两个条件之一:

    相同域名
    SessionId在Cookie存储相同的Key值
    

    参考链接:

    https://blog.csdn.net/guanjianzhuo/article/details/90577565
    

    总结:

    后来用nginx运行,使用不同的域名就解决了session冲突的问题了  

      

  • 相关阅读:
    ListView 操作
    Delphi 浏览器WebBrowser
    XE6 c++builder Edit垂直居中
    HTML 表格标签
    HTML 标签说明
    Ubuntu下如何解压缩zip,tar,tar.gz,tar.bz2文件
    Ubuntu 12.04下mysql的安装与配置
    Ubuntu12.04下apache服务器的安装也配置
    Ubuntu12.04下tomcat的安装与配置
    Ubuntu 12.04下jdk的安装与配置
  • 原文地址:https://www.cnblogs.com/lucktomato/p/15464107.html
Copyright © 2011-2022 走看看