Http用户识别的机制方法分为如下几种:
1)、承载用户身份的HTTP首部
2)、客户端IP地址跟踪,根据客户端IP地址进行识别
3)、用户登录,用认证方式设别用户
4)、使用胖URL,一种在URL中嵌入识别信息的技术
5)、Cookie,一种持久化身份设别技术
 
关于HTTP首部的相关信息在下列表格中列出。
HTTP首部
 
首部名称 首部类型 描述
From 请求 用户的Email地址
User-Agent 请求 用户的浏览器软件
Referer 请求 用户是从这个页面上依照链接跳转过来的
Authorization 请求 用户名和密码
Client-IP 扩展 客户端的IP地址
X-Forwarded-For 扩展 客户端的IP 地址
Cookie 扩展 服务器产生的ID标签
 
  Form在HTTP首部一般是保存着用户的Email地址,但是由于网络安全的考虑,现在From首部都是由自动话的机器人或爬虫发送的,所以在From保存用户的Email的方式来识别用户是不可靠的。
  User-Agent就不用说了是用户浏览器软件的信息,这个是更不能识别用户的信息。
  Referer是记录用户从这个页面上依照链接跳转过来的,不能识别用户。
  Authorization 是用户登录使用的,  服务器向浏览器回送一个HTTP401 Login Required的响应代码,弹出登录框要求用户登录,然后浏览器会添加一个Authorization首部提供用户的登录信息。Web服务器无需被动的根据用户的IP地址来猜测用户的身份,他可以要求用户通过用户名和密码进行认证(登录)来显示地询问用户是谁。为了是Web站点的登录更加简单,HTTP中包含了一种内建机制,可以用WWW-Authenticate首部和Authorization首部想Web站点传送用户的相关用户名和密码。当登录成功之后浏览器就可以不断地在每条发往的请求中发送这个登录信息了,这样就可以确认用户了。
Client-IP 地址的弊端
1)、客户端IP地址描述是机器而非用户的特定标志,如果多个用户共享同一台计算机就无法识别
2)、很多英特网服务上会为用户非配动态的IP地址。
3)、很多用户通过网络地址转换(NAT)防火墙来访问网络内容。
4)、HTTP代理或网关会打开新的到原始服务器的TCP链接,Web服务器看到的将是代理IP地址,而非客户端。
  胖URL 是指在URL后面跟上用户的唯一标示符,但是就从URL的美观性和其他准确方面,都不是很好的一个决策。
  Cookie是使用最多的保存用户唯一标识,同时记录用户登录状态的工具
1)Cookie类型
  会话Cookie:一种临时Cookie,用户退出浏览器后就被删除
持久Cookie:存储在硬盘上,用于维护用户周期性访问某个网站的配置文件或登录名
会话Cookie与持久Cookie的区别是他们的过去时间。
第一次请求亚马逊的网站
 

登录成功后

Cookie保存有session-id以及session-token等相关信息,服务器端可以使Session-Id生成和用户是一一对应并且同一个用户生成的是不可一更改的。

Http客户端识别的方法的更多相关文章

  1. 前端学HTTP之客户端识别和cookie

    前面的话 Web服务器可能会同时与数千个不同的客户端进行对话.这些服务器通常要记录下它们在与谁交谈,而不会认为所有的请求都来自匿名的客户端.本文主要介绍客户端识别及cookie机制 HTTP首部 HT ...

  2. javascript四种类型识别的方法

    × 目录 [1]typeof [2]instanceof [3]constructor[4]toString 前面的话 javascript有复杂的类型系统,类型识别则是基本的功能.javascrip ...

  3. Python/dotNET Redis服务连接客户端调用SET方法的同时获取Redis服务器返回的内容

    在用Python或dotNET redis客户端连接redis服务器的时候,当你调用客户端的SET方法后同时还想得到其返回的字符串,那么需要处理一下. 1. Redis Python redis客户端 ...

  4. webservice axis2客户端设置代理方法(公司网络通过代理访问时)

    webservice axis2客户端设置代理方法(公司网络通过代理访问时)   UploadProcessInServiceStub stub = new UploadProcessInServic ...

  5. 深度卷积网络(DCNN)和人类识别物体方法的不同

    加州大学洛杉矶分校在PLOS Computing Biology上发表了一篇文章,分析了深度卷积网络(DCNN)和人类识别物体方法的不同:深度卷积网络(DCNN)是依靠物体的纹理进行识别,而人类是依靠 ...

  6. ASP输出JSON数据及客户端jQuery处理方法

    首先ASP处理JSON需要json官方提供的JSON For ASP 封装类文件,下载地址:http://code.google.com/p/aspjson/downloads/list 下载最新的J ...

  7. 和我一起学《HTTP权威指南》——客户端识别与cookie机制

    客户端识别与cookie机制 服务器需要区别是哪个客户端. 个性化接触 HTTP是匿名.无状态的请求/响应协议. Web站点希望: 对客户端的用户有更多的了解 追踪用户浏览页面的行为 因此,产生了几种 ...

  8. PL/SQL TOAD 不安装Oracle客户端连接数据库的方法

    不安装Oracle客户端连接数据库的方法 本机环境: win7 64位中文旗舰版 一.准备工作: 1)到ORACLE官网下载instantclient,下载地址:http://www.oracle.c ...

  9. 客户端调用服务器端方法——ASP.NET AJAX(Atlas)、Anthem.NET和Ajax.NET Professional实现之小小比较

    前几天曾经发过一篇<ASP.NET AJAX(Atlas)和Anthem.NET——管中窥豹般小小比较>,Jeffrey Zhao说用ASP.NET AJAX中的UpdatePanel似乎 ...

随机推荐

  1. Docker实践(5)—资源隔离

    Docker使用cgroup实现CPU,内存和磁盘IO等系统资源的限制. CPU Docker现在有2个与CPU资源相关的参数,-c可以指定CPU的占比,--cpuset可以绑定CPU.例如,指定容器 ...

  2. 【Android开发坑系列】之事件

    总结一下: 1.Touch事件分发中只有两个主角:ViewGroup和View.ViewGroup包含onInterceptTouchEvent.dispatchTouchEvent.onTouchE ...

  3. 发布订阅 - 基于A2DFramework的事件机制实现

    SUMMARY 能做什么 DEMO 原理图 应用场景 能做什么 A2DFramework的事件机制是基于发布订阅模式改进得来的一套API,中间件部分实现了msmq.redis.Supersocket可 ...

  4. 启动Eclipse 弹出“Failed to load the JNI shared library”错误的解决方法

    原因1:eclipse的版本与jre或者jdk版本不一致 对策:要么两者都安装64位的,要么都安两个是32位一个是64位. 原因2:给定目录下jvm.dll不存在 对策:(1)重新安装jre或者jdk ...

  5. nodejs - 如何完全更新

    Nodejs可以毫不犹豫地说一个版本狂魔,时不时就发布一个版本,而且还一直没有一个1.0版本,好囧呀,对于我们这些有强迫症的人来说,的确不是好事. 下面我就说一下Nodejs中常见的更新方式. 1. ...

  6. How to import library ?

    Android Studio: Download or git the library. (for example: the library folder named ActionBarSherloc ...

  7. SQL Server 2012 各版本功能比较

    有关不同版本的 SQL Server 2012 所支持的功能的详细信息. 功能名称 Enterprise 商业智能 Standard Web Express with Advanced Service ...

  8. Entityframework修改某个字段

    public void ChangePassword(int userId, string password) { var user = new User() { Id = userId, Passw ...

  9. 聊聊IO多路复用之select、poll、epoll详解

    本文转载自: http://mp.weixin.qq.com/s?__biz=MzAxODI5ODMwOA==&mid=2666538922&idx=1&sn=e6b436ef ...

  10. saiku源代码安装

    以前的文章介绍了如何直接安装saiku,http://www.cnblogs.com/liqiu/p/5183894.html .这里面偷懒没有源代码编译,不过这几天也就这么用了. 最近随着使用的深入 ...