HTML保持用户状态的多种方法比较

2016-02-19 21:35 105 1 收藏

下面图老师小编跟大家分享HTML保持用户状态的多种方法比较,一起来学习下过程究竟如何进行吧!喜欢就赶紧收藏起来哦~

【 tulaoshi.com - Web开发 】

    众所周知,html的一个缺点是本身无法保持状态,客户连接服务器获取一个页面后,对服务器而言,此连接就已不存在了,下一页将重新连接。互联网上网站建立以后,一个普遍的需求是能够方便的管理上站用户的帐号信息,以及某些页面针对限定用户开放。如何跟踪用户,目前常用的有以下解决方案:

  * 在html的表单中利用隐藏输入域来传递信息,如:

   VALUE值即为状态信息,所以每次不同,不可能事先写好,只能通过CGI程序生成HTML页面:

   Print "

   这样,在下次表单重新提交时可以包含进去。

   使用隐藏输入确实是保持状态的一种简单办法,但必须由CGI程序生成页面,如大量使用,速度慢、不易于维护。

  * 向客户端发送cookie

   cookie是一种通过客户端的浏览器本身维持状态(甚至不同会话间)的方法。在浏览器访问站点时,调用set-cookie在客户端建立cookie,它将在以后每次连接到站点时返回给web服务器,从而携带用户ID。但cookie技术在使用中有以下缺陷,这甚至是致命的缺陷:

   1) cookie由于涉及到用户隐私的争论,所以缺乏广泛的支持,首先,不是所有的浏览器都支持cookie,另外,象IE这样的浏览器出于安全性的考虑,还可以设置屏蔽掉cookie。所以,使用cookie ,至少要为客户提供其他选择。

   2) cookie缺乏安全保证,如果你的机器被别人使用访问web服务器,浏览器也会同样发送cookie。

  * 会话ID

   会话ID是每个客户在到达web站点时分配的唯一标识,多经由URL自身传递。在有些站点我们可能见到很长,看起来很奇怪的URL,常常是一串数字或字母。也正由于这种方案将URL弄得长且怪,笔者往往不倾向采用此方案,所以也不是本文的主旨。

  * 建立服务器端客户文件

   这种方案是在服务器端维护一个注册后的在线客户表,利用IP地址等信息来保持客户状态。但这种方案不能独立地解决我们的需求。很简单,如果几个客户使用同一个代理服务器(proxy)来访问web server,那么,在此方案下他们将被视为同一个用户。

  * htaccess协议

   .htaccess实际是系统访问控制文件(ACF)族中的一个。该协议目前为大多数UNIX环境的服务器支持,例如普遍采用的Apache服务器,较为通用(值得一提的是,与此相关的另一个文件为access.conf ,还可实现基于主机域名/地址的访问控制)。其优点为:

  * 控制取决于服务器(当然目前NT除外),客户端极为兼容;

  * 针对目录保护,可方便灵活地定置;

  * 弹出窗口式密码校验,简单明了,符合惯例;

  * 客户注册后,CGI环境变量“REMOTE_USER”即为校验后的客户帐号,在整个保护区访问无需再注册,有效地保持了状态。
   .htaccess的具体实施步骤如下:

  1、规划目录,将要控制访问的所有文件集中至选定的目录里。

  2、在要存取控制目录下建立一个文件,文件名为“.htaccess”,别忘了有一个“.”(以“.”开始的文件名在unix下表示是隐含文件)。文件内容网上的很多地方都没有讲清楚,包括一些ISP提供的示例,也模糊不清。一个经验证的样本如下:

   AuthUserFile /path/.htpasswd
   AuthGroupFile /dev/null
   AuthName Information
   AuthType Basic
   require valid-user

   黑体字需根据实际情况替换。其中:

   AuthName: 用户认证名,将会在密码检测框中出现,但注意应为一个单词,否则要用引号引起来;
   AuthType: 使用的认证方式, 缺省为: Basic;
   AuthUserFile: 认证用户口令文件绝对路径,请根据实际替换/path/
   AuthGroupFile: 认证用户组别文件绝对路径

   : 标识访问特定目录访问控制段的开始/结束

   require entity1 entity2: 要求认证的内容,entity1可以是user, group; entity2 为认证用户或组名。这一项最需要特殊说明,它可导致几种不同的配置,这正是常常没被说清之处:

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

   1) 不配置用户组时, 第二行的用户组别文件可设为:

   AuthGroupFile /dev/null
   要求认证的内容则为:require valid-user
   这时,管理用户只需配置 .htpasswd文件;
   也可做限定,如 : require user admin guest foresee
   这样,只有指定的用户才能登入。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

   2) 如需配置用户组,首先指定组文件如下:

   AuthGroupFile /path/.htgroup
   要求认证的内容则应为:require group users
   而.htgroup文件的一个示例为:
   users: admin guest foresee
   以上两种搭配是不能混用的,象这样的.htaccess,你是无论如何注册不进去的:
   AuthUserFile /path/.htpasswd
   AuthGroupFile /dev/null
   AuthName Information
   AuthType Basic
   require group valid-user
  
   3、口令文件.htpasswd示例如下:
   shallwe:?W5h9v9KOwKI
   foresee:餉vZTYLaCW8lI
   try:?LuRyE3jcujI

  大家一看就知道,它是按照DES算法加密过的。每条记录由帐号和密码组成。在通过下文提供的程序管理前,你可使用web服务器通常提供的htpasswd程序,当然,这需要一个主机的shell帐号,在UNIX命令行状态下,.htaccess文件指定的path中执行以下命令:
   # /var/www/bin/htpasswd -c .htpasswd username

  “-c”参数仅在第一次使用,它指明创建.htpasswd文件。username表示要增加的用户名,输入此命令后,系统会提示您输入密码两遍,这个用户就生效了。如果这个用户存在则提示您修改密码。

  htpasswd命令必须手工完成,不可能用于管理大量用户的增删。事实上,我们可以通过CGI编程自动管理,通过WWW页面在线添加、删除,限于篇幅,程序清单从略,需要者可与笔者联系。

来源:http://www.tulaoshi.com/n/20160219/1626583.html

延伸阅读
java中多种方式读文件 一、多种方式读文件内容。 1、按字节读取文件内容 2、按字符读取文件内容 3、按行读取文件内容 4、随机读取文件内容 */ import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileReader; import java.io.IOException; import java.io.InputStream; import ...
怎么治疗过敏性鼻炎 多种方法轻松治鼻炎 过敏性鼻炎是一种常见的鼻黏膜非感染性炎性疾病,在我们生活中有很多人会患上过敏性鼻炎。那过敏性鼻炎应该怎么治疗呢?今天图老师小编就来为大家介绍一下过敏性鼻炎的中药治疗方法以及过敏性鼻炎的食疗法,如果你有过敏性鼻炎,不妨那个就来看看吧。 怎么治疗过敏性鼻炎 ...
标签: PS PS基础
详细解析PS变换复制操作的原理分析 大家一定知道PS快捷键Ctrl+Alt+Shift+T(下面简写为CAST)变换复制,网上已经有一大堆关于变换复制快捷键制作一些图形的技巧,而这篇文章跟大家分享的是变换复制的原理。大家了解了这个以后,在制作变换复制图形的时候一定能得心应手,做出自己想要的图形。 制作变换复制轨迹 首先要了解的是,变换复制,肯...
咽喉炎治疗 多种方法治咽喉炎 咽喉炎,相信大家对于咽喉炎的了解是比较多的。也知道咽喉炎的一些症状,如咽喉干燥,疼痛等。那大家知道咽喉炎如何治疗呢?今天图老师小编为来为大家介绍一下咽喉炎的最佳治疗方法,同时还会为大家介绍咽喉炎的食疗法。有兴趣的朋友就来看一下吧。 引起咽喉炎的原因 1、外界因素...
反流性食管炎的治疗 多种方法让你远离它 说到反流性食管炎,可能很多人都是不知道的,甚至许多人都没听说过。因此很多人都不知道反流性食管炎的治疗方法有哪些,也不知道反流性食管炎的症状有哪些。不过没关系,今天图老师小编就来为大家一一解答一下。感兴趣的朋友不妨就来看一下吧。 反流性食管炎的治疗 反...

经验教程

425

收藏

45
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部