服务器需要区别是哪个客户端。
HTTP是 匿名、无状态 的请求/响应协议。
Web站点希望:
因此,产生了几种用户识别机制:
User-Agent首部
将用户所用浏览器的相关信息告知服务器。
下图是Chrome浏览器开发者工具,打开 http://www.cnblogs.com 的部分截图
Referer
表示从哪个页面跳转过来的,上面的例子是从我的博客跳转过来的
User-Agent
表示客户端浏览器的一些信息,上例中 Mozilla/5.0
表示应用的名称和版本, AppleWebKit...
表示使用的浏览器平台相关信息
使用IP地址识别用户缺点太多
通过用户名和密码进行认证显式地询问用户身份
HTTP中用 WWW-Authenticate首部
和 Authorization首部
传送用户相关信息
有些Web站点为每个用户生成 特定版本的URL 来追踪用户的身份。
两者的区别就是 过期时间
cookie就像服务器给用户贴的辨别身份的贴纸一样
用户访问网站,Web站点读取Cookie(服务器贴在用户身上的所有贴纸)
浏览器记住服务器返回的Set-Cookie首部的cookie内容,将cookie存储在浏览器的cookie数据库中。下次访问相同站点,浏览器在cookie请求首部将它传过去。
cookie的基本思想:让浏览器积累一组服务器特有的信息,每次访问服务器都将这些信息提供给它。
cookie规范的正式名称:HTTP状态管理机制(HTTP state management mechanism)
对应HTTP是无状态协议,由cookie来保持HTTP的状态
Chrome浏览器查看cookie的两种方式:
通过查看维基百科的cookie词条的cookie,我们能看出当前网站有两种cookie,会话cookie和持久cookie
可用cookie在用户与某个站点进行多项事务处理时对用户进行追踪。
维持用户和服务器的会话状态