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. PUT vs POST in REST

    来自:http://stackoverflow.com/questions/630453/put-vs-post-in-rest http://www.15yan.com/story/7dz6oXiS ...

  2. Java socket 多线程编程 示例

    参照网上代码: 1.工程: 2.代码: Client.java package com.my.socket.test; import java.io.BufferedReader; import ja ...

  3. spring中配置了事务,数据业务层捕获异常,事务配置不成功?

    原理:spring aop  异常捕获原理:被拦截的方法需显式抛出异常,并不能经任何处理,这样aop代理才能捕获到方法的异常,才能进行回滚,默认情况下aop只捕获runtimeexception的异常 ...

  4. 关于typedef的使用方法

    在计算机编程语言中用来为复杂的声明定义简单的别名.与宏定义有些差异.它本身是一种存储类的keyword,与auto.extern.mutable.static.register等keyword不能出如 ...

  5. 日暮·第二章·烽烟传讯

    第二章 烽烟传讯   夜幕降临,整个泉州府更见喧闹,那些个白日里将养了一日的花红柳绿再也耐不住寂寞,招招摇摇着在人来人往的主街上舒展着自己的风情,妖妖娆娆地换却春风一度.    城东的招福客栈在经过了 ...

  6. PHP 常用获取路径代码

    <? //获取当前的域名: echo $_SERVER['SERVER_NAME']; //获取来源网址,即点击来到本页的上页网址 echo $_SERVER["HTTP_REFERE ...

  7. Java 10大精华文章收集001

    Java语言与JVM中的Lambda表达式全解 Lambda表达式是自Java SE 5引入泛型以来最重大的Java语言新特性,本文是2012年度最后一期Java Magazine中的一篇文章,它介绍 ...

  8. 编写并发程序 Inversion

    做完了 scala parallel 课程作业后,觉得 scala 写并发程序的便捷性是 java 永远都追不上的.scala 的Future 和 Promise,java 里 Future 和 Co ...

  9. WebDriver基本API使用(基于Java)V1.0

    WebDriver基本API使用(基于Java)V1.0http://www.docin.com/p-803032877.html

  10. Python基本语句

    x = 1 y = 1 dataf = 1.0 def fun1(): print("fun1") class ClassB(): def __init__(self): prin ...