Session和Cookie的详解

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

开发工具与关键技术:Visual Studio 2015

作者:张滋

撰写时间:2019年4月4日

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Session 和 cookie是网络编程的两个机制。

想知道Seesion和Cookie有什么区别。我们就要理解以下的概念:

1.HTTP的简介:

HTTP 是一种"无状态"协议,这意味着每次客户端检索网页时,客户端打开一个单独的链接到 Web 服务器,服务器会自动不保留之前客户端请求的任何记录。

当您在计算机上操作某个应用程序时,您打开它,做些更改,然后关闭它。这很像一次对话(Session)。计算机知道您是谁。它清楚您在何时打开和关闭应用程序。然而,在因特网上问题出现了:由于 HTTP 地址无法保持状态,Web 服务器并不知道您是谁以及您做了什么。

在HTTP协议中,HTTP工作原理为HTTP协议工作于客户端-服务端架构为上。浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。因为在HTTP网络协议之间大家都不认识大家,HTTP是无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。这就意味着服务器无法从连接上跟踪会话。

2、会话(Session)跟踪: (用户追踪)

  会话(相当于一次对话),指用户登录网站后的一系列动作,我们要保证用户身份信息,比如浏览商品添加到购物车并购买。会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话。Cookie相当于互相加好友一样,但是这个好友不是服务器管,而是浏览器管,然后Cookie通过在浏览器记录信息确定用户身份存在本地,Session通过在服务器端记录信息确定用户身份,一种临时的记忆。

3.Session的本质(服务器):

Session是另一种记录客户状态的机制,不同的是Cookie保存在客户端浏览器中,而Session保存在服务器上。Session是在服务器内存中,当每一个人浏览器来连接它时,它都会分配一块空间来单独存放与这两个浏览器的信息,但是当我断开时,那么我们将清空掉Session,一般Session保存的时间为30分钟左右,过了这个时间就会把Session给清掉。

Session是将服务器划分为内存空间或区域来存储与它对话的浏览信息,记住它不是存储在你个人信息里面的,但是你的个人信息已经被发送过去了。

网络服务器可以指定一个唯一的Session ID作为cookie来代表每个客户端,用来识别这个客户端接下来的请求。

4.Cookie的本质(浏览器):

Cookie实际上是一小段的文本信息。客户端请求服务器,如果服务器需要记录该用户状态,就使用response向客户端浏览器颁发一个Cookie。客户端会把Cookie保存起来。

比如:日常登录一个网站,今天输入用户名密码登录了,第二天再打开很多情况下就直接打开了。这个时候用到的一个机制就是cookie。

Cookie 的作用就是用于解决 "如何记录客户端的用户信息":

  • Cookie来辨认使用者,以方便送出使用者量身定做的内容,像是 Web 接口的免费 email 网站,都要用到 Cookie。
  • 当用户访问 web 页面时,他的名字可以记录在Cookies中。
  • 在用户下一次访问该页面时,可以在Cookies中读取用户访问记录。
  • cookie是一种数据记录的格式,它是在浏览器中把用户信息放在浏览器,浏览器以Cookie的一个数据文件存在浏览器的内部,然后再通过浏览器解析,最终拿到用户信息。cookie需要在浏览器那边返回一个生成cookie的要求,然而cookie是有有效时限的,当你的cookie有效时限到达时,那么它将会被删除。
  • cookie 常用用于识别用户。
  • cookie 是一种服务器留在用户计算机上的小文件。每当同一台计算机通过浏览器请求页面时,这台计算机将会发送cookie。
  • 还有就是我们一般都是将登录信息等重要信息存放在Session中,其他信息如果需要保留则放在cookie中。
  • cookie的内容主要包括:名字,值,过期时间,路径和域。路径与域一起构成cookie的作用范围。若不设置过期时间,则表示这个cookie的生命期为浏览器会话期间,关闭浏览器窗口,cookie就消失。这种生命期为浏览器会话期的cookie被称为会话cookie。

如下图:

Session和Cookie的详解

Session和Cookie的详解