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知识总结一下. 一.加密会话( ...
随机推荐
- [python]设计模式
需要说明:java跟python在思维模式上并不一样,java利用接口以及多态可以实现很多抽象上的东西,而python不行,其实以下很多设计模式写法并不适用也没有必要,更多是为了对比和帮助理解这些设计 ...
- 使用iTerm2快捷连接SSH
iTerm2和Mac自带的Terminal差不多,但是功能更强大,无论透明度.字体.配色.分屏等都可以设置,除了这些花哨的功能外,最近新学了一招,就是可以通过Profiles的设置打开就执行写好的脚本 ...
- docker 启动安装等命令
确认是否安装url whereis curl 启动docker服务: sudo service docker start sudo service docker stop 安装curl sudo ap ...
- FCM聚类算法介绍
FCM算法是一种基于划分的聚类算法,它的思想就是使得被划分到同一簇的对象之间相似度最大,而不同簇之间的相似度最小.模糊C均值算法是普通C均值算法的改进,普通C均值算法对于数据的划分是硬性的,而FCM则 ...
- 三款不错的图片压缩上传插件(webuploader+localResizeIMG4+LUploader)
涉及到网页图片的交互,少不了图片的压缩上传,相关的插件有很多,相信大家都有用过,这里我就推荐三款,至于好处就仁者见仁喽: 1.名气最高的WebUploader,由Baidu FEX 团队开发,以H5为 ...
- jQuery实现动态分割
由jQuery实现上下.左右动态改变左右.上下两个div的大小,需要自己引入jquery1.8.0.min.js包 可用于页面布局. //============================ind ...
- iOS开发小技巧 - label中的文字添加点击事件
Label中的文字添加点击事件 GitHub地址:https://github.com/lyb5834/YBAttributeTextTapAction 以前老师讲过类似的功能,自己懒得回头看了,找了 ...
- 以.net core重构原有.net framework过程中的一些API变更记录(持续更新)
1)Type.IsGenericType类似属性变更 以下是.net framework 4.5中Type抽象类中泛型类型的几个个属性,用于泛型类型的相关信息判断: 以下是.net core(nets ...
- python_java_selenium_ jenkins持续集成Firfox_chrome浏览器不显示的解决方法?
python_java_selenium_ jenkins持续集成Firfox_chrome浏览器不显示的解决方法: 原因:因为jenkins是用windows installer 安装成 windo ...
- VS2015中SharedProject与可移植类库(PCL)项目
转自:http://www.tuicool.com/articles/beaMZv3 今天闲里偷空看了点Connect大会的视频,C# 6.0的新语法.EF7的支持非关系型数据库.Windows商店应 ...