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知识总结一下. 一.加密会话( ...
随机推荐
- iframe的优缺点
HTML框架简述 一个浏览器窗体可以通过几个页面的组合来显示.我们可以使用框架来完成(frames)这项工作.(框架可以把HTML文档分为多个页面) 框架页使用了表格的方式组合,可以分为数行与 ...
- Struts2 验证码图片实例
本文转载于DongLiYang的博客http://www.cnblogs.com/dongliyang/archive/2012/08/24/2654431.html 其中修改过一部分,针对使用注解而 ...
- [LeetCode] Wiggle Sort 摆动排序
Given an unsorted array nums, reorder it in-place such that nums[0] <= nums[1] >= nums[2] < ...
- [LeetCode] Linked List Cycle 单链表中的环
Given a linked list, determine if it has a cycle in it. Follow up: Can you solve it without using ex ...
- csv表格处理(下)--纯JS解析导入csv
多日前的上篇介绍了csv表格,以及JS结合后端PHP解析表格填充表单的方法.其中csv转换成二维数组的时候逻辑比较复杂多坑,幸好PHP有丰富的库函数来处理,而现在用JS解析的话就没有那么幸运了,一切都 ...
- BZOJ 4726: [POI2017]Sabota?
4726: [POI2017]Sabota? Time Limit: 20 Sec Memory Limit: 128 MBSec Special JudgeSubmit: 301 Solved ...
- JUC学习笔记--Atomic原子类
J.U.C 框架学习顺序 http://blog.csdn.net/chen7253886/article/details/52769111 Atomic 原子操作类包 Atomic包 主要是在多线程 ...
- SHELL编写NGINX自动部署脚本
1.功能描述 1. 安装支持包,从软件源下载自定义的NGINX包,创建NGINX用户和用户组. 2. 安装并初始化NGINX配置. 3. 运行NGINX并检测运行状态. 2.实现 源码如下: #!/b ...
- 遍历hashMap的两种方式
第一种: Map map = new HashMap(); Iterator iter = map.entrySet().iterator(); while (iter.hasNext()) { Ma ...
- android studio关联genymotion模拟器,未显示设备
如以下截图所示,在搭建android studio+genymotion时,遇到android studio关联genymotion时,显示不出模拟器设备,请问有没有遇到此现象的朋友,分享下解决方法, ...