和我一起学《HTTP权威指南》——客户端识别与cookie机制
客户端识别与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机制的更多相关文章
- HTTP的客户端识别与cookie机制
本文是<HTTP权威指南>的读书笔记 Web服务器可能同时在与数千个客户端同时进行会话,服务器需要记录下它们在与谁交谈,而不是认为所有的请求都来自于匿名客户端.在HTTP中可以有以下几种方 ...
- HTTP客户端识别与Cookie机制
HTTP识别用户的几种技巧 承载用户身份信息的HTTP首部 客户端IP地址跟踪,通过用户的IP地址对其进行识别 用户登录,用认证方式识别用户 胖URL,一种在URL中潜入识别信息的技术 cookie, ...
- 前端学HTTP之客户端识别和cookie
前面的话 Web服务器可能会同时与数千个不同的客户端进行对话.这些服务器通常要记录下它们在与谁交谈,而不会认为所有的请求都来自匿名的客户端.本文主要介绍客户端识别及cookie机制 HTTP首部 HT ...
- 计算机网络(HTTP)之客户识别:cookie机制
什么是cookie? 承载用户相关信息的HTTP首部 cookie的工作原理 cookie的缺陷 一.什么是cookie? cookie是由服务器生成,发送给USER-Agent(一般是浏览器),(服 ...
- JavaScript权威指南--客户端存储
客户端存储web应用允许使用浏览器提供的API实现将数据存储在用户电脑上. 客户端存储遵循“同源策略”,因此不同站点的页面是无法读取对于存储的数据.而同一站点的不同的页面之间是可以互相共享存储数据的. ...
- 《http权威指南》读书笔记10
概述 最近对http很感兴趣,于是开始看<http权威指南>.别人都说这本书有点老了,而且内容太多.我个人觉得这本书写的太好了,非常长知识,让你知道关于http的很多概念,不仅告诉你怎么做 ...
- HTTP权威指南读书笔记
HTTP权威指南笔记 读书有两种境界,第一种境界是将书读薄,另一种是读厚.本篇文章就是HTTP权威指南的读书笔记,算是读书的第一重境界,将厚书读薄.文章对HTTP的一些关键概念做了比较详细的概述,通读 ...
- HTTP权威指南-学习笔记
目录 HTTP权威指南-学习笔记 HTTP: Web的基础 URL与资源 HTTP报文 连接管理 HTTP结构 Web服务器 代理 缓存 集成点: 网关,隧道及中继 Web机器人 识别,认证与安全 客 ...
- 《HTTP 权威指南》
第一篇: Web基础 (HTTP概述. URL.HTTP报文.连接管理) 0. scheme:方案! 协议类型 1.HTTP:超文本传输(状态转移)协议:通信协议方案. web浏览 ...
随机推荐
- STM32 双ADC同步规则采样
最近需要用到两个ADC对电压电流进行同步采样,看了一下STM32的ADC介绍,发现STM32最多有3个独立ADC,有在双AD模式下可以进行同步测量,正好满足我的要求.参考官方给的例子在结合自己的需 ...
- MySQL Master_Slave主从配置
一.配置主数据库master 1.在主库Master创建用户. mysql>create user repl; //创建新用户 //repl用户必须具有REPLICATION SLAVE权限,除 ...
- Android——音乐播放器完善——进度条显示当前播放进度,加可拖动进度条(未待解决完问题)
效果: 问题:可拖动进度条随进度条移动时,会致使音乐卡顿(待解决) xml <?xml version="1.0" encoding="utf-8"?&g ...
- Android指南 - 主题
译者注:theme(主题)和style(样式)是专用术语,下面对这两个词汇不在使用中文词汇. theme 是安卓的一种机制,用于为应用程序和activity提供一致的样式(style).样式s ...
- Android文档 - 账户管理器概述
账户管理器概述 这个类提供了访问到 用户在线账户的集中式注册中心 的能力.用户为每账户输入一次 认证信息(credentials,包含用户名和密码),过过 点击一次(one-click)完成认证的方式 ...
- android开发(26) 和其他应用交换数据方式一,使用intent指定自定义action调用其他程序里的activity,并获得其返回的结果
我们在开发中会遇到和其他应用的交互情形,下面是一个简单的方式.整个的使用类似“使用intent调用系统自带的拍照应用并获得结果”. 先看页面: 我们看看实现步骤. 第一个应用 DEMO1: 1 ...
- 【LINUX】——FreeBSD中的一些常规配置
一:在为终端的目录添加颜色: 在 ~/.cshrc 文件中添加以下两行: setenv CLICOLOR 1 setenv LSCOLORS Gxfxaxdxcxegedabagacad CLICOL ...
- JFinal的使用
JFinal 中的Controller Controller是JFinal核心类之一,该类作为MVC模式中的控制器.基于JFinal的Web应用的控制器需要继承该类.Controller是定义Acti ...
- SphereFace的原理
https://blog.csdn.net/qianqing13579/article/details/78288780
- android学习中遇到的错误
1.运行项目的时候报错: [2013-12-16 17:59:22 - Dex Loader] Unable to execute dex: java.nio.BufferOverflowExcept ...