zoukankan      html  css  js  c++  java
  • cookie与Session的区别

    在浏览网站的时候,计算机会把你在网站上所做的操作和一些选择都给记录下来,以文件的形式保存在你的本地电脑中,称为cookie. (IE浏览器 -->工具-->Internet选项-->常规-->浏览历史记录-->设置-->查看文件)这些即是web服务器帮你在网站操作中的所做的记录文件,即cookie).

    cookie是怎么来的?是你浏览网站的时候,web服务器把你请求的文件以文件的形式,存放在你本地的PC电脑中,以备你下次再次访问这个网站的时候,web 服务器会先查看有没有它上次留下的Cookie信息。有的话,会根据cookie里面的内容来判断使用者,推送出特定的网页内容给你。

    Cookie机制采用的是在客户端保存状态的方案。而Session机制是服务端保存状态的方案。

    由于服务器端保存状态的方案在客户端也需要一个保存的标示,所以Session机制 需要可能借助于Cookie机制来达到保存标示的目的。

    cookie 的内容主要包括:名字、值、过期时间、路径和域。路径和域一起构成Cookie的作用范围。若不设置过期时间,则表示这个cookie的生命期为浏览器会话期间,关闭浏览器窗口,cookie就会消失。这种生命周期为浏览器会话期的cookie被称为会话cookie.

    会话cookie一般不存储在硬盘上而是保存在内存里,当然这种行为并不是规范规定的。若设置了过期时间,浏览器就会把cookie保存到硬盘上,关闭后再次打开浏览器,这些cookie仍然有效直到超过设定的过期时间。存储在硬盘上的cookie可以在没的浏览器进程间共享,比如两个IE窗口。而对于保存在内存里的cookie,不同的浏览器有不同的处理方式。

    Session 机制,session机制是一种服务器端的机制,服务器使用一种类似于散列表的结构来保存信息。

    当程序需要为某个客户端的请求创建一个Session时,服务器首先检查这个客户端的请求里是否已包含了一个Session标识(session id),如果已包含则说明以前已经为此客户端创建过Session,服务器就按照SessionId 把这个Session检索出来使用,如果客户端请求不包含Session id,则为此客户端创建一个session并且生成一个与此session  相关联的session id,session id的值应该是一个既不会重复,又不容易被找到规律以仿造的字符串,这个session id将被在本次响应中返回给客户端保存,保存这个session id的方式可以采用cookie.这样在交互过程中以浏览器可以自动的按照规则把这个标识发送给服务器。一般这个cookie的名字都是类似于sessionId.但cookie可以被人为的禁止,则必须有其他机制以便在cookie被禁止时仍然能够把session id传递回服务器。

    cookie的作用?

    Cookie是当你浏览某网站时,网站存储在你机器上的一个小文本文件,它记录了你的用户ID,密码、浏览过的网页、停留的时间等信息,当你再次来到该网站时,网站通过读取Cookie,得知你的相关信息,就可以做出相应的动作,如在页面显示欢迎你的标语,或者让你不用输入ID、密码就直接登录等等。你可以在IE的“工具/Internet选项”的“常规”选项卡中,选择“设置/查看文件”,查看所有保存到你电脑里的Cookie。这些文件通常是以user@domain格式命名的,user是你的本地用户名,domain是所访问的网站的域名。如果你使用NetsCape浏览器,则存放在“C:PROGRAMFILESNETSCAPEUSERS”里面,与IE不同的是,NETSCAPE是使用一个Cookie 文件记录所有网站的Cookies。

    cookie与session 的区别

    1  cookie数据存放在客户的浏览器上,session数据放在服务器上。

    2 cookie不是很安全,别人可以分析存放在本地的Cookie并进行cookie欺骗,考虑到安全应当使用session.

    3 session会在一定时间内保存在服务器上。当访问增多,会比较占有你服务器的性能

    考虑到减轻服务器性能方面,应当使用cookie.

    4 单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie.

    5 所以尽量把登录信息存放在Session。不要放在cookie.

  • 相关阅读:
    Shell编程—用户输入
    Shell编程—结构化命令
    Shell编程—基础脚本
    跳表
    分布式项目——电商秒杀
    Dubbo详解
    Kafka工作流程
    Kafka内部实现原理
    Zk实现分布式锁
    Leetcode::Pathsum & Pathsum II
  • 原文地址:https://www.cnblogs.com/shuanlei/p/4501619.html
Copyright © 2011-2022 走看看