客户端识别与cookie机制

服务器需要区别是哪个客户端。

个性化接触

HTTP是匿名、无状态的请求/响应协议。

Web站点希望:

  • 对客户端的用户有更多的了解
  • 追踪用户浏览页面的行为

因此,产生了几种用户识别机制:

  • 包含用户身份信息的HTTP首部
  • 识别用户IP地址
  • 用户认证
  • URL中嵌入识别信息

HTTP首部

User-Agent首部将用户所用浏览器的相关信息告知服务器。

下图是Chrome浏览器开发者工具,打开http://www.cnblogs.com的部分截图

Referer表示从哪个页面跳转过来的,上面的例子是从我的博客跳转过来的

User-Agent表示客户端浏览器的一些信息,上例中Mozilla/5.0表示应用的名称和版本,AppleWebKit...表示使用的浏览器平台相关信息

客户端IP地址

使用IP地址识别用户缺点太多

  • IP地址只能描述机器,而不是用户。无法区分多用户
  • ISP为用户动态分配IP地址
  • 用户通过NAT防火墙浏览网页。NAT隐藏客户端IP地址,将IP地址转换成一个共享防火墙的IP地址
  • 服务器看到的可能是代理服务器的IP地址

用户登录

通过用户名和密码进行认证显式地询问用户身份

HTTP中用WWW-Authenticate首部Authorization首部传送用户相关信息

胖URL

有些Web站点为每个用户生成特定版本的URL来追踪用户的身份。

cookie

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

cookie的类型

  • 会话cookie:临时cookie,记录用户的设置和偏好,退出浏览器就会被删除
  • 持久cookie:生存时间长一些,存储在硬盘上,用户退出浏览器,重启计算机仍存在

两者的区别就是过期时间

cookie是如何工作的

cookie就像服务器给用户贴的辨别身份的贴纸一样

用户访问网站,Web站点读取Cookie(服务器贴在用户身上的所有贴纸)

浏览器记住服务器返回的Set-Cookie首部的cookie内容,将cookie存储在浏览器的cookie数据库中。下次访问相同站点,浏览器在cookie请求首部将它传过去。

cookie罐:客户端的状态

cookie的基本思想:让浏览器积累一组服务器特有的信息,每次访问服务器都将这些信息提供给它。

cookie规范的正式名称:HTTP状态管理机制(HTTP state management mechanism)

对应HTTP是无状态协议,由cookie来保持HTTP的状态

Chrome浏览器查看cookie的两种方式:

  • 查看当前网站的cookie

通过查看维基百科的cookie词条的cookie,我们能看出当前网站有两种cookie,会话cookie和持久cookie

  • 查看浏览器所有的cookie

cookie与会话追踪

可用cookie在用户与某个站点进行多项事务处理时对用户进行追踪。

cookie的缺点

  • cookie会被附加到每个HTTP请求中,增加了流量
  • HTTP请求中的cookie是明文传输,有安全性问题(除非使用HTTPS)
  • cookie有大小限制,对复杂的存储需求不够使用

cookie的用途

维持用户和服务器的会话状态

  • 购物网站购物车对用户选购商品的记录
  • 用户在登录一次后,下次登录不需要再输入用户名和密码(在cookie还没过期前)

和我一起学《HTTP权威指南》——客户端识别与cookie机制的更多相关文章

  1. HTTP的客户端识别与cookie机制

    本文是<HTTP权威指南>的读书笔记 Web服务器可能同时在与数千个客户端同时进行会话,服务器需要记录下它们在与谁交谈,而不是认为所有的请求都来自于匿名客户端.在HTTP中可以有以下几种方 ...

  2. HTTP客户端识别与Cookie机制

    HTTP识别用户的几种技巧 承载用户身份信息的HTTP首部 客户端IP地址跟踪,通过用户的IP地址对其进行识别 用户登录,用认证方式识别用户 胖URL,一种在URL中潜入识别信息的技术 cookie, ...

  3. 前端学HTTP之客户端识别和cookie

    前面的话 Web服务器可能会同时与数千个不同的客户端进行对话.这些服务器通常要记录下它们在与谁交谈,而不会认为所有的请求都来自匿名的客户端.本文主要介绍客户端识别及cookie机制 HTTP首部 HT ...

  4. 计算机网络(HTTP)之客户识别:cookie机制

    什么是cookie? 承载用户相关信息的HTTP首部 cookie的工作原理 cookie的缺陷 一.什么是cookie? cookie是由服务器生成,发送给USER-Agent(一般是浏览器),(服 ...

  5. JavaScript权威指南--客户端存储

    客户端存储web应用允许使用浏览器提供的API实现将数据存储在用户电脑上. 客户端存储遵循“同源策略”,因此不同站点的页面是无法读取对于存储的数据.而同一站点的不同的页面之间是可以互相共享存储数据的. ...

  6. 《http权威指南》读书笔记10

    概述 最近对http很感兴趣,于是开始看<http权威指南>.别人都说这本书有点老了,而且内容太多.我个人觉得这本书写的太好了,非常长知识,让你知道关于http的很多概念,不仅告诉你怎么做 ...

  7. HTTP权威指南读书笔记

    HTTP权威指南笔记 读书有两种境界,第一种境界是将书读薄,另一种是读厚.本篇文章就是HTTP权威指南的读书笔记,算是读书的第一重境界,将厚书读薄.文章对HTTP的一些关键概念做了比较详细的概述,通读 ...

  8. HTTP权威指南-学习笔记

    目录 HTTP权威指南-学习笔记 HTTP: Web的基础 URL与资源 HTTP报文 连接管理 HTTP结构 Web服务器 代理 缓存 集成点: 网关,隧道及中继 Web机器人 识别,认证与安全 客 ...

  9. 《HTTP 权威指南》

    第一篇:  Web基础  (HTTP概述. URL.HTTP报文.连接管理) 0. scheme:方案!     协议类型 1.HTTP:超文本传输(状态转移)协议:通信协议方案.     web浏览 ...

随机推荐

  1. 如何在线程中获取spring 管理的bean

    转载自:https://my.oschina.net/skyline520/blog/181158?fromerr=GjtR6Wec spring xml中定义 <!--spring 工具类-- ...

  2. ISO8601时间格式

    格式解析 R2/2015-06-04T19:25:16.828696-07:00/P1DT10S 上面的字符串通过"/"分为了三部分即: 重复次数/开始时间/运行间隔 重复次数 R ...

  3. android开发——从相冊中选择图片不裁剪

    转载请注明出处:http://blog.csdn.net/zhoubin1992/article/details/46864777 问题: 在郭神的第一行代码中,第8章的从相冊中选择图片这块,从相冊选 ...

  4. VS2013代码调试:[7]如何避免调试时加载符号

    调试的时候不小心点了个东西,然后就花很长时间加在各种dll 解决办法: 1.点 调试2.然后 选项和设置3.右边勾上 启用源服务器支持4.左边点 符号5.把微软符号服务器勾6.运行的时候等一下 莫慌! ...

  5. JedisConnectionPool scala

    /** * Created by lq on 2017/8/29. */ object JedisConnectionPool { val config = new JedisPoolConfig() ...

  6. python 普通方法,@classmethod,@staticmethod

    普通方法 实例化一个类,然后通过类的实例化去调用方法: class method1: def __init__(self): self.items = [1,2,3,] def getvalue(se ...

  7. linux使用指导-debian/archlinux/LFS

    debian系统参考配置手册:https://www.debian.org/doc/manuals/debian-reference/index.en.html ArchLinux系统参考配置手册:s ...

  8. UI设计 - 首页(主页)的任务

    什么是首页 首页,又可以叫主页,是我们的网站或者APP的主要页面,它是我们接触的第一个页面(如果不包含闪屏页和登陆页的话). 特点 首页是一个开始的地方,我们开始真正接触网站提供给我们的内容. 首页是 ...

  9. spring sringboot 加载配置文件 多目录配置文件 多级分类配置文件

    ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver(); Resource[] resources = ...

  10. CentOS 7系统LAMP配置PHP-FPM的示例

    CentOS 7 系统出来有一段时间了,今天我们来看在vps中的 CentOS 7 中给lamp环境配置php-fpm的过程,希望文章可以帮助到各位. CentOS 7 已经发布,并且采用 Apach ...