服务器须要区别是哪一个客户端。数据库
HTTP是匿名、无状态的请求/响应协议。浏览器
Web站点但愿:安全
所以,产生了几种用户识别机制:服务器
User-Agent首部
将用户所用浏览器的相关信息告知服务器。cookie
下图是Chrome浏览器开发者工具,打开http://www.cnblogs.com的部分截图工具
Referer
表示从哪一个页面跳转过来的,上面的例子是从个人博客跳转过来的网站
User-Agent
表示客户端浏览器的一些信息,上例中Mozilla/5.0
表示应用的名称和版本,AppleWebKit...
表示使用的浏览器平台相关信息url
使用IP地址识别用户缺点太多代理
经过用户名和密码进行认证显式地询问用户身份code
HTTP中用WWW-Authenticate首部
和Authorization首部
传送用户相关信息
有些Web站点为每一个用户生成特定版本的URL来追踪用户的身份。
cookie是当前识别用户,实现持久会话的最好方式
二者的区别就是过时时间
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在用户与某个站点进行多项事务处理时对用户进行追踪。
维持用户和服务器的会话状态