• Session和Cookie


    Session和Cookie

    • Session

    session是一种记录用户状态的机制,不同的是cookie保存在客户端,而session保存在服务端。客户端浏览器发起请求后,服务端会把客户端的信息以某种形式进行记录在服务器上。这就是session。session通过sessionID来识别用户的唯一性,通过cookie将sessionID带到服务器上进行校验。

    • Session创建过程

    当程序需要为某个客户端的请求创建sessionID时,服务器首先检查这个客户端的请求中是否含有sessionID,如果已经包含则说明此客户端之前创建过session,服务器就按照sessionID把这个session检索出来使用(检索不到会重新创建),如果客户单请求不包含sessionID,则服务器就会为客户端重新创建一个与此次session(会话)相关联的sessionID,然后在本次响应中返回给客户端保存。(sessionID的值是一个既不会重复,又不容易找到规律模仿仿造的字符串。)

    • Cookie

    cookie由于http是一种无状态协议,服务器从网络连接上无法知道用户身份,当在页面进行一系列的操作后,服务器无法判断是用户A还是用户B的操作,所以这时就引入了cookie作为类似一个“通行证”的东西,来识别是用户A的操作还是用户B的操作,这就是cookie的工作原理。

    • Cookie创建过程

    当客户端请求服务器,如果服务器需要记录该用户的状态,就使用response向客户端浏览器颁发一个cookie。客户端会将cookie保存起来,当浏览器再次请求该网站时,浏览器把请求的网址以及cookie一起交给服务器,服务器核查cookie,以此来辨别用户的状态。服务器还可以根据需求对cookie进行修改。cookie实际上是一小段文本信息,主要内容包括名字,值,过期时间,路径,域。

    • 个人总结

      我个人认为,可以说cookie是客户端用户的身份验证的身份证,而sessionID则是标识用户的唯一性的身份证号,而session则是服务端用来验证用户sessionID(身份证号码)的验证器。

      • 区别
        • cookie的数据保存在客户端的浏览器上
        • session的数据保存在服务器上
        • cookie不是很安全,其他人可进行分析仿造本地的cookie进行cookie欺骗
        • session会在一定时间内保存在服务器上,当访问增多,会增加服务器的压力。
        • 单个cookie中保存的数据不能超过4k,很多浏览器都限制一个站点最多保留20个cookie
        • 出于安全考虑,可以将登陆信息等重要信息保存在session中,其他信息需要保留可以存在到cookie中。
    狭路相逢勇者胜!
  • 相关阅读:
    Paratroopers 最大流问题 dinic算法 水平有待提高
    Food Delivery 区间dp
    D
    Codeforces 1282A Temporarily unavailable
    PAT 顶级 1017 The Best Peak Shape (35分)(最长上升子序列)
    POJ 2217 Secretary(后缀数组+高度数组)
    团体程序设计天梯赛 L1-011~L1-015
    PAT顶级解题目录
    PAT顶级 1005 Programming Pattern (35分)(后缀数组+基数排序 或 字符串哈希)
    团体程序设计天梯赛 L1-006~L1-010
  • 原文地址:https://www.cnblogs.com/amcoder/p/13920287.html
Copyright © 2020-2023  润新知