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

科比大爱001

科比大爱001

2016-02-19 21:35

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

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

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

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

   Print "

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

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

   使用隐藏输入确实是保持状态的一种简单办法,但必须由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

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

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

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

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

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

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

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

   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页面在线添加、删除,限于篇幅,程序清单从略,需要者可与笔者联系。

展开更多 50%)
分享

猜你喜欢

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

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

多种方法治冻疮

疾病预防
多种方法治冻疮

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

多种方法治痄腮

疾病预防
多种方法治痄腮

多种方法“干掉”便秘

疾病预防
多种方法“干掉”便秘

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

多种方法治肩周炎

疾病预防
多种方法治肩周炎

多种方法治白癜风

疾病预防
多种方法治白癜风

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

垂直滚动信息板

垂直滚动信息板

具体而微的绘图程式-c++ Borland 入门

具体而微的绘图程式-c++ Borland 入门
下拉加载更多内容 ↓