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知识总结一下. 一.加密会话( ...
随机推荐
- mac 终端 svn 命令
1.将文件checkout到本地目录 svn checkout path(path是服务器上的目录) 例如:svn checkout svn://192.168.1.1/pro/domain ...
- [LeetCode] Reverse String 翻转字符串
Write a function that takes a string as input and returns the string reversed. Example: Given s = &q ...
- Spring + SpringMVC + Druid + MyBatis 给你一个灵活的后端解决方案
生命不息,折腾不止. 折腾能遇到很多坑,填坑我理解为成长. 两个月前自己倒腾了一套用开源框架构建的 JavaWeb 后端解决方案. Spring + SpringMVC + Druid + JPA(H ...
- jq.validate隐藏元素忽略验证
jq.validate隐藏元素忽略验证 现在有这样一个需求,当触发某类事件时候,需要在页面中显示input框,但是当不需要加载页面中的元素时候,进行隐藏.在这个需求的前提下,程序中对于input中的输 ...
- 【转】javascript浏览器参数的操作,js获取浏览器参数
原文地址:http://www.haorooms.com/post/js_url_canshu html5修改浏览器地址:http://www.cnblogs.com/JiangXiaoTian/ar ...
- VB6史无前例的子类化之透明按钮
[原创文章,转发请保留版权信息] 作者:mezstd 文章地址:http://www.cnblogs.com/imez/p/3299728.html 效果图: 请原谅笔者无耻地称之为史无前例,至少在笔 ...
- Android公共技术收集
UML类图详解 详解Android主流框架不可或缺的基石(ClassLoader,泛型,反射,注解) 公共技术点之 Java注解Annotation 公共技术点之 Java反射Reflection ...
- PHP 之道
http://wulijun.github.io/php-the-right-way/
- javascript json字符串与对象相互转换
在实际项目中,经常遇到字符格式的问题,记下来以便日后方便查看.用到两个函数:JSON.stringify() 和 JSON.parse(). 使用ajax向后台请求数据,后台给前端返回数据,明明后端脚 ...
- Leetcode 18. 4Sum
Given an array S of n integers, are there elements a, b, c, and d in S such that a + b + c + d = tar ...