1、打开两个浏览器窗口访问应用程序会使用同一个session还是不同的session

session cookie是不能跨窗口使用的,当你新开了一个浏览器窗口进入相同页面时,系统会赋予你一个新的session id

(搞错了,是sessionstorage不共享

2、保存session id的几种方式

A.保存session id的方式可以采用cookie,这样在交互过程中浏览器可以自动的按照规则把这个标识发送给服务器。

B.由于cookie可以被人为的禁止,必须有其它的机制以便在cookie被禁止时仍然能够把session id传递回服务器,经常采用的一种技术叫做URL重写,就是把session id附加在URL路径的后面,附加的方式也有两种,一种是作为URL路径的附加信息,另一种是作为查询字符串附加在URL后面。网络在整个交互过程中始终保持状态,就必须在每个客户端可能请求的路径后面都包含这个session id。

C.另一种技术叫做表单隐藏字段。就是服务器会自动修改表单,添加一个隐藏字段,以便在表单提交时能够把session id传递回服务器。(我需要这个)

3、session什么时候被创建

一个常见的错误是以为session在有客户端访问时就被创建,然而事实是直到某server端程序(如Servlet)调用HttpServletRequest.getSession(true)这样的语句时才会被创建。

来源链接:https://www.jianshu.com/p/64241eebc60b

4、session存在的问题

Session是保管在服务器端的,每个用户都会产生一个Session。假如并发访问的用户十分多,会产生十分多的Session,耗费大量的内存。因而像Google、Baidu、Sina这样并发访问量极高的网站,是不太可能运用Session来追踪客户会话的。

而Cookie保管在客户端,不占用服务器资源。假如并发阅读的用户十分多,Cookie是很好的选择。关于Google、Baidu、Sina来说,Cookie或许是唯一的选择。

来源链接:https://juejin.im/entry/5766c29d6be3ff006a31b84e

5、cookie的局限性

Cookie功能需要浏览器的支持。

如果浏览器不支持Cookie(如大部分手机中的浏览器)或者把Cookie禁用了,Cookie功能就会失效。

6、session机制

Session机制决定了当前客户只会获取到自己的Session,而不会获取到别人的Session。各客户的Session也彼此独立,互不可见。(棒!)

7、session的创建

Session在用户第一次访问服务器的时候自动创建。需要注意只有访问JSP、Servlet等程序时才会创建Session,只访问HTML、IMAGE等静态资源并不会创建Session。如果尚未生成Session,也可以使用request.getSession(true)强制生成Session。

Session生成后,只要用户继续访问,服务器就会更新Session的最后访问时间,并维护该Session。用户每访问服务器一次,无论是否读写Session,服务器都认为该用户的Session“活跃(active)”了一次。

8、session的有效期以及修改方式

为防止内存溢出,服务器会把长时间内没有活跃的Session从内存删除。这个时间就是Session的超时时间。如果超过了超时时间没访问过服务器,Session就自动失效了。

Session的超时时间为maxInactiveInterval属性,可以通过对应的getMaxInactiveInterval()获取,通过setMaxInactiveInterval(longinterval)修改。

Session的超时时间也可以在web.xml中修改。另外,通过调用Session的invalidate()方法可以使Session失效。

9、session对浏览器的要求

虽然Session保存在服务器,对客户端是透明的,它的正常运行仍然需要客户端浏览器的支持。这是因为Session需要使用Cookie作为识别标志。

同一机器的两个浏览器窗口访问服务器时,会生成两个不同的Session。但是由浏览器窗口内的链接、脚本等打开的新窗口(也就是说不是双击桌面浏览器图标等打开的窗口)除外。这类子窗口会共享父窗口的Cookie,因此会共享一个Session。

如果客户端浏览器将Cookie功能禁用,或者不支持Cookie怎么办?例如,绝大多数的手机浏览器都不支持Cookie。Java Web提供了另一种解决方案:URL地址重写

来源链接:https://www.cnblogs.com/zhouhbing/p/4204132.html

10、session是一个字典,它是如何保持登录状态的?它是怎样知道两次请求是同一个用户的?

只要 session 在每一个请求中是隔离的,那只需要在 session 中存储 login=True 的键值对,那么只要 session 中有这样的键值对,即可以表明发起该次请求的用户是登录的。每一次请求的 session 是隔离的,那么在 session 中存储 user_id=xxx,如果某两次请求的 user_id 是相同的,那么这两次请求的用户即是相同的。

11、cookie的有效期

默认的 cookie 的有效期是当前会话,意思就是说,只要当前浏览器还没有关闭,就算当前页面关闭或者其他跳转到其他页面,再次回到该页面,cookie 还是保存着的

来源链接:https://windard.com/blog/2017/10/17/Flask-Session

12、在flask中使用session

在flask中使用session的前提是给app指定了一个 secret_key属性,可以通过配置文件来设置此属性。 flask中session是一个全局对象,就像request一样,每一个请求的上下文中都有一个 session 全局对象。

参考链接(链接里有个代码案例):http://litaotju.github.io/flask/2016/06/22/Learning-Flask-session/

13、一些flask session代码样例参考链接

https://www.letiantian.me/2014-06-28-flask-session/

https://www.jianshu.com/p/805f33f096d6

http://litaotju.github.io/flask/2016/06/22/Learning-Flask-session/

14、如果cookie被禁用,如何使用session(以后需要添加这个功能)

session的实现方式有两种

第一种:通过cookies实现。如果浏览器支持cookies,创建session的时候会把sessionID放在 cookies里面;

第二种:通过重写URL。如果浏览器不支持cookies,可以自己编程使用URL重写的方式实现session(访问页面的时候在地址栏里面,URL后会跟上sessionID,效果见展示图2)。

参考链接:https://www.zhihu.com/question/35307626

https://blog.csdn.net/u014225431/article/details/51644180

15、未来需要解决的任务——重复提交出现弹框问题(亲测确实会出现。。。)

之所以出现这种情况,是因为刷新页面时浏览器会重新发送之前已经发送过的最后一个请求。如果最后一个请求是POST,浏览器就会把上次输入的url再次post给服务端。。。

参考链接:https://www.jianshu.com/p/46fd7e66b7d5

16、表单提交时同时提交隐藏字段

https://blog.csdn.net/dengpeng0419/article/details/55045047

下面的两个链接留作参考(如果用的话,index.html还要改成bootstrap框架的,比较繁琐)

https://flask-bootstrap-zh.readthedocs.io/zh/latest/forms.html

https://zhuanlan.zhihu.com/p/23605789

隐藏字段可以用js的  math.random()函数随机生成

17、修改元素的value值(表单提交的隐藏字段就是提交value的值,这个值要用函数随机生成)

https://blog.csdn.net/a491857321/article/details/51780674

18、js随机生成一定位数的密码

https://blog.csdn.net/qq_30100043/article/details/78034852

session、flask session知识的相关收集相关推荐

  1. Flask session

    session会话,是指将用户的信息存在服务器端.不同的框架有不同的实现方式. 在flask中,形式上是操作session对象,本质上还是将数据存在了cookie中 flask-session可以设置 ...

  2. 狂补呼叫中心相关知识,将收集的资料贴于此

    狂补呼叫中心相关知识,将收集的资料贴于此: H.323的协议体系 根据1998年H.323第二版,H.323制定了无QoS(服务质量)保证的分组网络 PBN(packet Based Networks ...

  3. Flask session详细用法

    Flask session概念解释 session是基于cookie实现的,保存在服务端的键值对,形式为{随机字符串:'xxxxxx'},同时在浏览器中的cookie中也会保存相同的随机字符串,用来再 ...

  4. Flask的会话技术:cookie、session以及session持久化问题

    文章目录 一.会话技术 1.介绍 2.详细过程 二.Cookie 1.Cookie介绍 2.Cookie登陆使用 三.Session 1.Session介绍 2.Session登陆使用 3.Sessi ...

  5. flask session伪造

    通过CTF题目进行学习 首先打开题目,查看源代码发下如下注(提)释(示) 看到这个,有经验的大佬们估计可以猜到,八成这题就是要伪造admin登录 习惯性尝试一波弱口令, admin/admin adm ...

  6. 搜索引擎知识图谱相关结构化数据挖掘与去歧处理

          知识图谱的规模 据不完全统计,Google知识图谱到目前为止包含了5亿个实体和35亿条事实(形如实体-属性-值,和实体-关系-实体).其知识图谱是面向全球的,因此包含了实体和相关事实的多语 ...

  7. 会议交流|大模型与图学习等知识图谱相关技术实践探索

    2021年,在疫情隔离和复杂国际形势的背景下,我们越发认识到重视核心基础技术,对保持国家独立自主发展的关键价值,互联网和科技行业也面临着新的挑战和变革机遇,新的AI技术正发挥越来越大的作用,AI技术本 ...

  8. php5.4 session配置,Session

    Session 由 学院君 创建于4年前, 最后更新于 11个月前 版本号 #2 34948 views 11 likes 0 collects 1.简介 由于 HTTP 驱动的应用是无状态的,所以我 ...

  9. PHP session有效期session.gc_maxlifetime

    PHP中的session有效期默认是1440秒(24分钟),也就是说,客户端超过24分钟没有刷新,当前session就会失效.很明显,这是不能满足需要的. 一个已知管用的方法是,使用session_s ...

最新文章

  1. Linux系统主机之间建立信任关系
  2. 给Java初学者的十条小建议,快来收藏吧
  3. Python数据库访问之SQLite3、Mysql
  4. java8 stream案例分析
  5. OpenCV环境搭建(一)
  6. 形位公差符号大全_干货!AutoCAD快捷键大全与功能精解
  7. vs-code-多设备插件同步插件Settings Sync
  8. pcDuino问答:气压传感器BMP085在pcDuino上
  9. 晶圆涨、封测涨、芯片涨、材料涨…涨价的野火烧到哪了?
  10. linux分区修复命令行,Linux技巧:使用Fsck命令修复损坏的分区
  11. Atitit q2016 q0 doc list on home ntpc.docx
  12. 海外邮件收发阻碍多?【企业邮箱怎么申请】
  13. 第一讲 数系发展史纲
  14. 在HTML语言中 标签hr用,在html中hr标签的作用是什么?
  15. Netty学习笔记(一)--- 初识Netty
  16. z-buffer算法
  17. Android文字实现跑马灯效果——两种方法实现
  18. 《MySQL必知必会》的读后感
  19. sql中大于等于小于的写法
  20. 【LittleVGL】stm32f412-discovery探索板-ft6x06驱动问题

热门文章

  1. shell getopt 获取参数
  2. java中事务的介绍
  3. 自己动手写RTP服务器——关于RTP协议
  4. [转]MongoDb环境部署
  5. 数据包分析中Drop和iDrop的区别
  6. Xamarin XAML语言教程构建ControlTemplate控件模板 (三)
  7. Xamarin如何生成Android项目的APK
  8. iOS 9应用开发教程之定制应用程序图标以及真机测试
  9. anki 插入表格_另一种把思维导图和excel表格放入anki的方式
  10. html5 居于页面中心,css笔记:如何让一个div居于页面正中间