Session:

  session是一种记录客户状态的机制,session是保存在服务器上的,当浏览器访问服务器的时候,服务器把客户端信息以某种形式记录在服务器上,这就是所谓的session,当浏览器再次访问的时候从该session中查找客户的状态就可以了。

  看到一个很经典的描述session的话--“session相当于程序在服务器上建立的一份客户档案,客户来访的时候只需要查询客户档案表就可以了”

  Session对象是在浏览器第一次请求服务器的时候创建的,如果用原始的servlet,通过request.getSession();方法获取session对象。如果用spring的话,直接在方法参数里设置HttpSession即可。

  Session的声明周期:

session的创建--在用户第一次访问服务器的时候创建。注意只有访问jsp、servlet时才会创建,访问一些如HTML的静态资源并不会创建;

session失效--访问的用户越多,创建的session越多,超过一定数量就会导致内存溢出,为了防止这种情况的发生,服务器会把长时间没有活跃(访问)的session从内存中删除,如果超过了这个时间没有访问服务器,session就会失效,这也是我们在一个页面停留时间过长没有操作就会提醒我们重新登录的情况。

Cookie:

  提到cookie必然会想到一个很经典的购物的例子:用户A在超市购买的任何商品都应该放在A的购物车内,不论是用户A什么时间购买的,这都是属于同一个会话的,不能放入用户B或用户C的购物车内,这不属于同一个会话。这个例子中可以看出,同一个用户的所有请求必然要属于同一个会话,这才符合我们正常点的逻辑思维。

  cookie需要浏览器支持,它是依赖于浏览器的,实际上就是一段文本信息。当浏览器发出请求的时候,服务器要记录这个用户的状态,就会使用response向浏览器颁发一个Cookie,浏览器会把颁发的cookie保存起来。当浏览器再次发出请求的时候,请求会连带着cookie一同交给服务器,服务器依靠传过来的cookie来识别用户的身份信息。

经常访问一些网站的登录页面的时候,大部分都有记住密码,这个功能就是利用cookie来实现的。

Session和Cookie的关系:Session根据Cookie来识别是否是同一个用户。Cookie中保存有一个JSESSIONID的东西,它的值就是该Session的ID,通过它来判断是否是同意用户。

Session、Cookie简单理解的更多相关文章

  1. Cookie和session的简单理解和应用

    一.COOKIE 1.http协议建立连接后,无法保持状态:但实际情况,网站和服务器要进行通讯,需要“保持状态”,因此cookie应运而生:浏览器登陆web服务器后, Web 服务器产生包含有关用户的 ...

  2. session,cookie的理解(总结)

    会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话.常用的会话跟踪技术是Cookie与Session.Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端 ...

  3. 12月13日 什么是help_method,session的简单理解, find_by等finder method

    helper_method Declare a controller method as a helper. For example, helper_method :link_to def link_ ...

  4. session和cookie的简单理解

    0. 引子,我们为什么要cookie和session       因为http请求是无状态的(不能记录用户的登录状态等),所以需要某种机制来保存用户的登录状态等信息,在下次访问web服务的时候,不用再 ...

  5. Session会话与Cookie简单说明

    会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话.常用的会话跟踪技术是Cookie与Session.Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端 ...

  6. flask的cookie和session的简单原理

    在Flask的框架中,自己已经封装了 cookie的respons,request 有存储就有读取及删除,那么就拿购物车来举例 在我们登陆的时候会有之前在购物车存放的物品.也就是说在一个地方为我们保存 ...

  7. 使用cookie/session实现简单的用户信息的保存

    cookie一般用来存储非关键信息 , 用户名和密码等敏感信息一般采用session 来存储:cookie和session的最大区别是当服务器端存储session 之后,用户再次请求时候只是请求了一个 ...

  8. session & cookie(li)

    Session & Cookie 一.定义 Session,用户在浏览某个网站时,从进入网站到浏览器关闭所经过的这段时间,也就是用户浏览这个网站所花费的时间.Cookie,由服务器端生成,发送 ...

  9. http之Session&Cookie

    百度了一波session与Cookie,我发现这东西远比我想象中更复杂(可能是因为我不明白底层的运行原理).网上也是一堆的关于Session与Cookie区别/联系的文章,然而,我看完了还是一脸懵逼的 ...

随机推荐

  1. Docker镜像(二)

    一. 获取镜像 1.1. docker pull 镜像是运行容器的前提,也就是说没有镜像就没有办法创建容器 获取镜像的命令: docker pull 这个命令可以直接在docker Hub镜像源下载镜 ...

  2. Mac下使用zsh不执行/etc/profile文件

    Mac下使用了zsh会不执行/etc/profile文件,当然,如果用原始的是会执行. 转而执行的是这两个文件,每次登陆都会执行: ~/.zshrc与/etc/zshenv与/etc/zshrc 所以 ...

  3. MySql登陆密码忘记-解决方案

    方法一:MySQL提供跳过访问控制的命令行参数,通过在命令行以此命令启动MySQL服务器: safe_mysqld --skip-grant-tables& 即可跳过MySQL的访问控制,任何 ...

  4. linux传输文件命令: rz 和 sz

    参考: https://www.cnblogs.com/xiluhua/p/6218563.html https://blog.csdn.net/u014242496/article/details/ ...

  5. puppet的使用:puppet配置文件介绍

    配置文件的产生 Puppet安装完后,配置文件就产生了,名称为puppet.conf,一般在/etc/puppet路径下. master也可以通过命令: puppet master --genconf ...

  6. Linux内存信息查看——free命令

    free 命令可以显示系统已用和空闲的内存情况.包括物理内存.交互区内存(swap)和内核缓冲区内存(buffer).共享内存将被忽略.在Linux系统监控的工具中,free命令是最经常使用的命令之一 ...

  7. Java封装Redis常用操作

    package com.advance.Redis; import org.apache.log4j.Logger; import org.testng.annotations.Test; impor ...

  8. 通过spark-sql快速读取hive中的数据

    1 配置并启动 1.1 创建并配置hive-site.xml 在运行Spark SQL CLI中需要使用到Hive Metastore,故需要在Spark中添加其uris.具体方法是将HIVE_CON ...

  9. Electron与WEB桌面应用程序开发及其它

    这几天在构思项目,研究了一下Electron,记录下来. 说起WEB桌面程序,当前最火的就是Electron了. Electron的架构用一句话总结,就是一个main.js进程加上一个或数个chrom ...

  10. 【转】marquee标签简介

    本文转自:http://www.360doc.com/content/12/0818/16/8351655_230872993.shtml marquee语法    <marquee>&l ...