zoukankan      html  css  js  c++  java
  • requests和session的区别

    简单说 request对象和session对象的最大区别是生命周期

    -request

    request对象的生命周期是针对一个客户端(说确切点就是一个浏览器应用程序)的一次请求,当请求完毕之后,request里边的内容就会被释放 。

    简单说就是你在页面上的一个操作,request.getParameter()就是从上一个页面中的url、form中获取参数。

    但如果一个request涉及多个类,后面还要取参数,可以用request.setAttribute()和request.getAttribute()。

    但是当结果输出之后,request就结束了。 

    -session

    session可以跨越很多页面。

    而session的生命周期也是针对一个客户端,但是却是在别人设置的会话周期内(一般是20-30分钟),session里边的内容将一直存在,即便关闭了这个客户端浏览器 session也不一定会马上释放掉的。

    可以理解是客户端同一个IE窗口发出的多个请求。

    这之间都可以传递参数,比如很多网站的用户登录都用到了。

    -比较

    request占用资源比较少,安全性也比较高,可是相对来说缺乏持续性。

    session则相对来说对资源的消耗会大点,安全性相对来说也会稍微低点,可是它能实现比如会话跟踪技术。

    如果可以使用request的情况下,尽量使用request 因为相对于服务器来说资源的消耗还是比较重要的。


    在传递页面过程中request传递到下一页面就不能再传递了,而sesison却不如此,即request仅限于2个相邻的页面

    每按一个网页上的一个链接就是一个新的request,当服务器返回给浏览器一个response时,request就结束了,此时保存在request中的对象就不存在了,

    但是当你用一个浏器连到服务器上时application-server会新开一个session给你,当连接超时或浏览器关闭时session才销毁。

    所以session可以跟踪用户的状态。


    session相当于是一个客户端的全局变量,

    比如A机与服务器第一次访问时设置session.setAttribute("aaa")="ComputerA".则在A机继续访问的任意一个页面都可以取的session.getAttribute("aaa")的值是ComputerA;  
        
    request是某一次访问的局域变量,

    生命周期只是一次请求。因此login的变量应该放在session中

  • 相关阅读:
    设计模式学习总结系列应用实例
    【研究课题】高校特殊学生的发现及培养机制研究
    Linux下Oracle11G RAC报错:在安装oracle软件时报file not found一例
    python pro practice
    openstack python sdk list tenants get token get servers
    openstack api
    python
    git for windows
    openstack api users list get token get servers
    linux 流量监控
  • 原文地址:https://www.cnblogs.com/Inbreeze/p/9882180.html
Copyright © 2011-2022 走看看