HTTP的客户端识别与cookie机制
本文是《HTTP权威指南》的读书笔记
Web服务器可能同时在与数千个客户端同时进行会话,服务器需要记录下它们在与谁交谈,而不是认为所有的请求都来自于匿名客户端。在HTTP中可以有以下几种方式来对用户进行识别:
- 承载用户信息的HTTP首部;
- 客户端IP地址跟踪;
- 用户登录,用认证的方式来识别用户;
- 胖URL,在URL中嵌入识别信息;
- cookie机制,一种功能强大且持久的身份认证机制;
主要是介绍cookie机制
1 HTTP首部
下表给出了常见的用来承载用户信息的HTTP首部:

2客户端IP地址跟踪
现在好少会用到(缺点好多);
3用户登录,用认证的方式来识别用户;
服务器希望在为用户提供站点的访问之前,先行登录,则会向用户回送一个HTTP响应代码401 Login Required。然后浏览器就会显示一个登录框,并用Authorization首部在下一条对服务器的请求中提供这些信息。在接下来的请求中,浏览器会自动将这些信息添加到请求报文中。这个过程如下:

4 胖URL,在URL中嵌入识别信息;
其实就是在基本的URL中加入用户特有的信息
5 cookie机制
cookie是当前识别用户 ,实现持久会话最好的方式。cookie的存在影响了缓存,大多数缓存和浏览器都不允许对cookie内容进行缓存。cookie一般又分为 会话cookie和持久cookie。会话cookie是一种临时的cookie,它记录了用户访问站点时的设置与偏好,一般在用户退出浏览器时,会话cookie就会被删除了。持久cookie的生存时间更久一些,它保存在硬盘上,在浏览器退出或计算机重启时仍然存在,一般会持久cookie来维护用户周期性访问站点的配置文件和登录名。
会话cookie与持久cookie的唯一区别就是过期时间,如果设置了Discard参数,或没有设置Expires 或Max-Age参数来说明过期时间,这个cookie就是一个会话cookie。
5.1 cookie工作原理
cookie是服务器给用户贴的类似于标签(用来标识用户)的东西,用户访问Web站点时,Web站点就可以读取服务器贴在用户身上的标签。当用户第一次访问站点后,服务器就会给这个用户贴上一个标签(一个独有的cookie),这样以后这个用户访问这个站点时,服务器就可以识别出这个用户了。cookie中包含一个由名字=值(name=value)这样的信息构成的列表,并通过HTTP响应首部的Set-Cookie或Set-Cookie2将其贴到用户身上去。

Set-Cookie:user="mary17";domain="airtravelbargains.com"
则如果用户访问的站点为 www.airtravelbargains.com或任意以airtravelbargains.com结尾的站点,这个cookie都会被发送出去;
5.2 客户端状态
5.3 cookie版本




HTTP的客户端识别与cookie机制的更多相关文章
- 和我一起学《HTTP权威指南》——客户端识别与cookie机制
客户端识别与cookie机制 服务器需要区别是哪个客户端. 个性化接触 HTTP是匿名.无状态的请求/响应协议. Web站点希望: 对客户端的用户有更多的了解 追踪用户浏览页面的行为 因此,产生了几种 ...
- 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(一般是浏览器),(服 ...
- Cookie机制(会话cookie和持久化cookie)在客户端保持HTTP状态信息的方案
1. Cookie只有一个name和一个value,不同于map;购物车设计的时候需要cookie,获取购物车的cookie id,以便于将物品多次放入购物车: 2.cookie获取了其地址,并且可以 ...
- [原创]java WEB学习笔记28: 会话与状态管理Cookie 机制
本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...
- JWT的初步了解以及session、cookie机制
1.什么是状态保持? 想要了解JWT,首先需要知道什么是状态保持,举一个例子来说:无论是在web上还是在手机app上,我们都可以以游客的身份访问,此时都会有登录/注册字眼,当我们登录之后,就会是我们的 ...
- Javaweb Cookie机制
Javaweb Cookie机制 一.前言 HTTP协议是一种无状态的协议,WEB服务器本身不能识别出哪些请求是同一个浏览器发出的 ,浏览器的每一次请求都是完全孤立的,即使 HTTP1.1 支持持续连 ...
- 因改漏洞而引申了解的Cookie机制!
近期因为修改漏洞:Appscan扫描漏洞:加密会话(SSL)Cookie中缺少Secure属性,而涉及到Cookie有关的知识,现结合该漏洞的修复过程和了解的cookie知识总结一下. 一.加密会话( ...
随机推荐
- CRM 安全证书到期操作命令
I found a related TechNet Blog that shed some light on the subject:http://blogs.technet.com/b/tune_i ...
- poj题目
poj2965 poj1753:标准的BFS+位运算优化 poj1328:线段覆盖变种,把圆对应到线段上,贪心求解 poj2109:高精度开根,二分+高精度,注意要判断答案的位数,如果按照题目给的范围 ...
- JavaScript函数表达式、闭包、模仿块级作用域、私有变量
函数表达式是一种非常有用的技术,使用函数表达式可以无需对函数命名,从而实现动态编程.匿名函数,是一种强大的方式,一下总结了函数表达式的特点: 1.函数表达式不同于函数声明,函数声明要求有名字,但函数表 ...
- MySQL练习题参考答案
MySQL练习题参考答案 2.查询“生物”课程比“物理”课程成绩高的所有学生的学号: 思路: 获取所有有生物课程的人(学号,成绩) - 临时表 获取所有有物理课程的人(学号,成绩) - 临时表 根据[ ...
- 一次xbuild编译失败的排查
今天一个待上线服务测试完毕,需要构建CI,按照模板配置好包还原,xbuild编译,报错,错误信息如下: EtcdRegister.cs(8,15): error CS0234: The type or ...
- thinkcmf导航制作
<?php $tree = sp_get_menu_tree('main'); ?> <foreach name="tree" item="vo&quo ...
- iOS代码规范
一.文档结构管理 1.建立Libraries文件夹,所有第三方库放入其中. 2.建立Utilities文件夹,自已封装的类放入其中. 3.建立Constants.h头文件,所有的常量定义于其中.Con ...
- ROC & AUC笔记
易懂:http://alexkong.net/2013/06/introduction-to-auc-and-roc/ 分析全面但难懂:http://mlwiki.org/index.php/ROC_ ...
- 使用rsync+inotify同步两台服务器文件
目标功能:将B服务器文件同步到A服务器 A服务器rsyncd.conf配置 权限600 A服务器rsyncd.pas文件配置 权限600 同步文件路径 /data/wwwroot/shen/ 权限 ...
- 博文Contents<201--到000—>
====================================--------------------------------- 前言:博客中的随笔文章.并非都是笔者的原创文章.有些是听别人 ...