• Http 笔记 客户端识别与cookie机制


    HTTP 首部

    From首部包含了用户的e-mail地址。很少有浏览器会发送from首部。实际上,from首部是由自动化的机器人或蜘蛛发送的。

    User-Agent首部可以将用户所用浏览器的相关信息告知服务器,包括程序的名称和版本,通常还包含操作系统的相关信息。

    Referer首部提供了用户来源页面的url。说明了用户之前访问过哪个页面。通过它可以更好的理解用户的浏览行为,以及用户的兴趣所在。

    客户端IP地址:

     用户登录:

    为了使web站点的登录更加简便,http中包含了一种内建机制,可以用www-Authenticate首部和Authorization首部向web站点传送用户的相关信息。一旦登录,浏览器就可以不断地在每条发往这个站点的请求中发送这个登录信息了。

    如果服务器希望在为用户提供对站点的访问之前,先行登录,可以向浏览器回送一条http响应代码401 login required.然后,浏览器会显示一个登录对话框,并用Authorization首部在下一条服务器的请求中提供这些信息。

    胖url:

    有些web站点会为每个用户生成特定版本的url来追踪用户的身份。通常,会对真正的url进行扩展,在url路径开始或结束的地方添加一些状态信息。用户浏览站点时,web服务器会动态生成一些超链,继续维护url中的状态信息。

    改动后包含了用户状态信息的url被称为胖url.

    可以通过胖url将web服务器上若干个独立的http事务捆绑成一个 会话或访问。用户首次访问这个web站点时,会生成一个唯一的ID,用服务器可以识别的方式将这个ID添加到url中去,然后服务器就会将客户端重新导向这个胖url。只要服务器收到了对胖url的请求,就可以去查找与那个用户ID相关的所有增量状态,然后重写所有的输出超链,使其成为胖url,以维护用户的ID。

      存在问题:

      1 浏览器中显示的胖url会给新用户带来困扰

      2 无法共享url,胖url中包含了与特定用户和会话有关的状态信息。如果将这个url发送给其他人,可能就在无意中将你积累的个人信息都共享出去了。

      3 破坏缓存:为每个url生成用户特有的版本就意味着不再有可供公共访问的url需要缓存了。

      4 额外的服务器负荷:服务器需要重写html页面使Url 变胖

      5 逃逸口:用户跳转到其他站点或者请求一个特定的url时,就很容易在无意中 逃离 胖url会话。只有当用户严格地追随预先修改的连接时,胖url才能工作 。如果用户逃离些链接,就会丢失他的进展 信息,得重新开始。

      6 在会话间是百持久的:除非用户收藏了特定的胖url,否则用户退出登录时,所有折信息都会丢失。

    cookie

    cookie是当前识别用户,实现持久会话的最好方式。

    分为两类:会话cookie和持久cookie

    会话cookie是一种临时cookie,它记录了用户访问站点时的设置和偏好。用户退出浏览器时,会话cookie就被删除了。持久cookie的生成时间更长 些,它们存储在硬盘上,浏览器退出,计算机重启时它们仍然存在。通常会用持久cookie维护某个用户周期性访问 站点的配置文件或登录名。

    用户首次访问web站点时,web服务器对用户一无所知。web服务器给这个用户 拍上 一个独有的cookie,这样以后它就可以识别出这个用户了。cookie中包含了一个由名字=值 这样的信息构成的任意列表,并通过set-cookie或set-cookie2http响应首部将其贴到用户身上去。

    cookie中可以包含任意信息,但它们通常都只包含一个服务器为了进行跟踪而产生的独特的识别码。

    cookie的基本思想就是让浏览器积累一组服务器特有的信息,每次访问服务器时都将这些信息提供给它。因为浏览器要负责存储cookie信息,所以些系统被称为客户端侧状态。这个cookie规范的正式名称为http状态管理机制

    不同站点使用不同的cookie,浏览器只向服务器发送服务器产生的那些cookie。

    1 cookie的域属性:产生cookie的服务器可以向set-cookie响应首部添加一个domain属性来控制哪些站点可以看到那个cookie.

    2 cookie路径属性:cookie规范甚至允许用户将cookie与部分web站点关联起来。可以通过path属性来实现这一功能,在这个属性列出的url 路径前缀下所有cookie都是有效的。

    可以用cookie在用户与某个web站点进行多项事务处理时对用户进行跟踪。电子商务 web站点用会话cookie在用户浏览时记录下用户的购物车信息。

  • 相关阅读:
    类变量、绑定方法、静态方法和类方法
    面向对象练习及补充
    2、error:file /usr/bin/ ** mysql-client-5.6.39-1.el7.x86_64
    15、Linux 磁盘映射DM
    14、echo “$JAVA_HOME/bin” >>/etc/profile 转义
    typora文件导出word
    1、Rocketmq centos7下安装及使用
    13、hostname及hostnamectl区别
    1、MySql集群
    Hadoop安装
  • 原文地址:https://www.cnblogs.com/caojuansh/p/13152837.html
Copyright © 2020-2023  润新知