客户端识别与Cookie机制

客户端识别需求

HTTP最初是一个匿名的、无状态的请求/响应协议。服务器处理来自客户端的请求,然后给客户端回送一条响应。Web服务器几乎没有什么信息可以判断是哪个用户发送的请求,也无法记录来访用户的请求序列。
现代的Web站点希望能够提供个性化的接触。它们希望对另一端的用户有更多的了解,并能在用户浏览页面时对其进行跟踪。

客户端识别技术

  • 承载用户身份信息的HTTP首部
  • 客户端IP地址跟踪,通过用户的IP地址对其进行识别
  • 用户登录,用认证方式来识别用户
  • 胖URL,一种在URL中嵌入识别信息的技术
  • Cookie,一种功能强大且高校的持久身份识别技术

Cookie详解

Cookie的诞生
Cookie最早是网景公司的前雇员Lou Montulli在1993年3月发明的。

Cookie的工作流程

  • 用户向服务器发起HTTP请求,服务器在响应中通过相应头字段Set-cookie为客户端设置cookie,浏览器接收到响应缓存cookie到内存或者硬盘;
  • 以后用户每次向同一服务器发送HTTP请求时,浏览器会查找有无与此域名以及路径对应的且没有过期的cookie,如果有,则将改cookie添加到请求头字段cookie。

Cookie的技术细节
最初的cookie规范是由网景公司定义的。这些“版本0”的cookie定义了Set-cookie响应首部、cookie请求首部以及用于控制cookie的字段。版本0的cookie看起来如下所示:
Set-cookie: name=value [; expires=date] [; path=path] [; domain=domain] [; secure=secure]
Cookie: name1=value1 [; name2=value2]

  • Exipres:过期时间,GMT格式。如果没有设置,将在会话结束时过期;
  • Domain:域名,浏览器只向与特定域匹配的服务器发送cookie。如果没有设置,将默认为当前服务器的域名;
  • Path:路径,如果没有设置,将默认为产生Set-cookie响应的URL路径;
  • Secure:如果包含这一属性,就只有在HTTP使用SSL安全连接时才会发送cookie。
    Cookie的主要用途
    判定注册用户是否已经登录网站;跟踪用户;购物车记录等等
    Cookie的隐患
  • 跨站脚本攻击
  • Cookie欺骗

你可能感兴趣的:(客户端识别与Cookie机制)