• HTTP协议11-cookie和seesion


    因为HTTP协议是无状态的,但是很多网站的功能需要先登录才能使用。这就引入了cookie。

    Cookie机制

    服务器用HTTP头向客户端发送cookies。客户端(浏览器)解析cookies并将它们保存为一个本地文件。浏览器会自动将发往该服务器的请求上添加这些cookies。

    Cookie机制采用的是客户端保持状态的方案。它是在用户端存储会话状态的机制。需要浏览器支持。正统的cookie发布是通过拓展HTTP协议来实现的,服务器通过在HTTP的响应头中加上一行特殊的提示,让浏览器生成相应的cookie。

    Cookie的内容主要包括:名字,值,过期时间,路径和域。路径和域一起构成cookie的作用范围。

    如果请求资源所在位置在cookie的作用范围内,会把该cookief附在请求资源的HTTP请求头上发送给服务器。

    会话cookie:如果不设置过期时间则表示这个cookie的生命周期就是浏览器会话期间。关闭浏览器,cookie就会消失。

    持久cookie:如果设置了过期时间,浏览器会把cookie保存到硬盘上,关闭后再次打开浏览器,这些cookie仍然有效直到超过设定的时间。

    为cookie服务的首部字段

    首部字段名 说明 首部类型
    Set-Cookie 告知客户端,服务器给设置的cookie 响应首部字段
    Cookie

    告诉服务器端,客户端的cookie

    请求首部字段

    Set-Cookie

    当服务器准备开始管理客户端状态时,会事先告知各种信息。

    属性 说明
    NAME=VALUE 赋予Cookie的名称和值(必需项)
    expires=DATE

    Cookie的有效期

    path=PATH 将服务器上的文件目录作为Cookie的适用对象
    domain=域名 作用Cookie适用对象的域名
    Secure 仅在HTTPS安全通信时才会发送Cookie
    HttpOnly 使Cookie不能被JavaScript脚本访问

    Seesion机制

    session机制是一种服务器端保持会话的机制,由于采用服务器端保持状态的方案在客户端也需要保存一个标识,所以seesion机制会借用cookie机制来达到保存标识的目的。

    当需要为客户端的请求创建一个session时,服务器端会检查请求中是否包含session标识(session id),如果有表示已经创建过session了,直接把这个session拿来用(找不到会新建一个),如果客户端请求中不包含session id。则为此客户端创建一个session及对应的session id 。id会跟着本次响应返回给客户端保存。

    保存session id方式一般采用cookie。但是cookie是可以人为禁止的。所以必须有其他机制可以在cookie被禁止时能够把session id传送给服务器端。经常会使用的是URL重写,把session id放在url路径后面。

    cookie和session的不同

    1)存取方式的不同

    cookie只能保存ASCII的字符串,若需要存取其他字符型或二进制数据,需要进行编码

    session能存取任何类型的数据

    2)隐私安全的不同

    cookie存储在客户端浏览器中,客户端的某些程序可能会复制或修改Cookie中的内容

    session存储在服务器上,对隐私信息能够有效的保护

    3)服务器压力不同

    cookie存储在浏览器中,所以对服务器没有压力

    session存储在服务器中,当在线用户多时,会对服务器产生压力

    4)有效期的不同

    cookie可以设置过期时间,来实现免登陆功能

    session依赖名为jsessionid的cookie,但该cookie的过期时间默认为-1。关闭了浏览器session就会失效

    5)客户端支持的不同

    cookie需要浏览器的支持,如果浏览器禁用cookie或不支持,就不能用cookie跟踪会话了,而session可以通过URL地址重写来跟踪会话。

    6)跨域支持的不同

    cookie支持跨域名访问,例如将domain设置为“.baidu.com”则以“.baidu.com”为后缀的一切域名都可以使用该cookie访问(常用)

    session不支持跨域访问

  • 相关阅读:
    Oracle 19c RAC自动应用RU补丁过程
    Git忽略删除已加入和未加入版本控制的文件
    樊启斌高等代数典型问题与方法思考与练习答案已完成第3章43题累计128页
    樊启斌高等代数典型问题与方法思考与练习答案已完成第2章行列式41题累计85页
    樊启斌高等代数典型问题与方法思考与练习答案已完成第1章多项式71题
    樊启斌思考与练习参考解答1.02厦门大学2012,哈尔滨工业大学2009
    河北工业大学2000-2019年数学分析考研试题
    青岛大学2009-2017年数学分析高等代数考研试题
    樊启斌思考与练习参考解答1.01北京大学2008
    南京航空航天大学2017年第04届数学竞赛非数学专业试题及参考解答
  • 原文地址:https://www.cnblogs.com/myal/p/10512182.html
Copyright © 2020-2023  润新知