• cookie & session


    Cookie

    simple introduction

    由于http是无状态的,因此服务器和客户端建立起`个性的`连接是不可以的,所以使用cookie机制。来标识唯一的用户,这样服务器就可以有选择的给客户端response内容

    cookie存在客户端的内存中或者特定的文件中,这由服务器设定,内容就是一段文本。

    cookie的有效期:maxAge,当此值为正数时,cookie将持久存在client特定的文件中,直到超过maxAge的时间cookie才会失效。如果maxAge为负数,则表示该Cookie仅在本浏览器窗口以及本窗口打开的子窗口内有效,关闭窗口后该Cookie即失效

    cookie建立和使用过程:

    step1:client请求

    step2: 当服务器返回给客户端一个http响应信息时,其中如果包含Set-Cookie这个头部时,意思就是指示客户端建立一个cookie。

    step3: 在后续的http请求中自动发送这个cookie到服务器端,直到这个cookie过期。

    step4: 请求回应

    除了cookie,客户端可以将需要发送的数据包含在请求的url中,包括常见的GET、POST

    cookie安全性

    为了保证各自网站指定操作自己的cookie,所以cookie是不可跨域名的,也就是说baidu.com的cookie在访问www.baidu.com只能携带baidu.com的cookie。另外http协议在传输信息的时候是明文的,所以如果在明文下传递存在cookie中的敏感信息是和不安全的,此时可以设定Cookie的secure属性为true,必须使用https传输信息,当然包括cookie

    Session

    simple introduction

    由于HTTP协议是无状态的协议,所以服务端需要记录用户的状态时,就需要用某种机制来识具体的用户,这个机制就是Session.典型的场景比如购物车

    session在建立在服务端的用户的状态信息,但传送个客户端的是一个session id(一段字符串),客户端随后的请求时将携带这个session id,服务端就可以通过这个session id查到的用户状态信息。Session的使用比Cookie方便,但是过多的Session存储在服务器内存中,会对服务器造成压力。有大量的请求时,为防止内存溢出,服务器会把长时间内没有活跃的Session从内存删除。这个时间就是Session的超时时间。如果超过了超时时间没访问过服务器,Session就自动失效了。

     

    session需要cookie:有因为HTTP是无状态的,所以session不知道请求是不是来自同一客户端,此时服务端会想客户端浏览器发送一个Cookie,它的值就是session id,服务器通过这个cookie来识别是否时同一用户。由于这个cookie的maxAge为-1,存在内存中,所以一般浏览器关闭session id就会丢失。

    如果Cookie别禁了:一般利用URL地址重写,将session id写在URL中传递给服务器,另外还有表单隐藏技术。

     

    Cookie与Session的区别

    cookie存储在客户端本地,session存储在服务器上

    session比cookie安全些

    session一般用来跟踪回话,cookie一般保存用户喜好或者保存用户名密码

    session可存放在内存、文件、数据库、甚至一个集群中。#django默认是存在数据库中

    Cookie有大小限制,一般最大3K

    session对cookie有依附关系,session id会存在cookie中(cookie enable),然后写在http头部传给服务端。

  • 相关阅读:
    lintcode-144-交错正负数
    lintcode-143-排颜色 II
    lintcode-142-O(1)时间检测2的幂次
    lintcode-141-x的平方根
    lintcode-138-子数组之和
    postman-----使用CSV和Json文件实现批量接口测试
    postman—创建collection,执行collection和批量执行
    postman-变量
    postman-鉴权
    Postman—cookie
  • 原文地址:https://www.cnblogs.com/wxl-dede/p/5130244.html
Copyright © 2020-2023  润新知