FoxWeb的工作原理 (机器翻译加手工修改,节选)
FoxWeb的工作原理FoxWeb的一般工作方式非常简单:用户通过点击链接、提交HTML表单或在Web浏览器中手动输入URL来调用FoxWeb脚本。URL包含指示要运行的脚本的信息,以及一些可选的参数,这些参数与任何表单字段一起传递给程序。该请求由Web服务器接收,并将其传递给FoxWeb。FoxWeb解析URL和其他请求信息,并运行所请求的脚本。与请求一起发送的信息可以通过FoxWeb的 Request object提供给脚本。FoxWeb从上到下处理所请求的脚本,执行其中包含的任何代码,并向浏览器发送一个网页。
因为脚本运行在服务器上,而不是运行在客户端上,所以您的Web服务器将执行生成发送到浏览器的HTML页面所涉及的所有工作。不能轻易地复制服务器端脚本,因为只有脚本的结果会返回到浏览器。用户无法查看创建他们正在查看的页面的脚本命令。
开始
如果你是这个版本的FoxWeb的新手,你应该从这部分开始。它包含以下主题:
FoxWeb中的新功能 当前版本的新功能或更新功能的列表。
从上一个版本升级 为用户从FoxWeb以前版本升级的信息和建议。。
安装和第一步 快速入门指南,如何安装和配置软件,然后调用您的第一个FoxWeb脚本。
FoxWeb配置 描述FoxWeb控制中心和关于如何使用它来配置FoxWeb的信息。
配置Web服务器 关于如何配置Web服务器以使用FoxWeb的信息。
操作FoxWeb服务器 关于如何执行日常操作的信息,如启动和停止FoxWeb服务器。
管理与fwAdmin.fwx 关于新的FoxWeb管理脚本的信息。
FoxWeb4中的新功能
支持更新版本的Windows
为了支持更新版本的Windows,需要在许多不同的领域进行一些更改。
创建AJAX应用程序
新的fwJSON对象使开发AJAX(Asynchronous JavaScript and XML)应用程序变得更加容易。JSON(JavaScript对象表示法)是一种轻量级的数据交换格式,通常在AJAX开发中使用。新的邮政编码搜索示例脚本说明了fwJSON与客户端JavaScript代码的结合使用,以促进简单的AJAX函数。
PDF创建和分发
新的fwPDF对象可以快速地从FoxWeb应用程序中创建和提供PDF文件。它包含的功能便于将后脚本文件转换为PDF格式,并注意设置将PDF文件传输到Web浏览器所需的HTTP头。新的示例脚本说明了这个功能
身份验证增强
这个版本中的增强使开发人员对身份验证有了更多的控制,并使创建优雅的密码保护站点变得更容易,这些站点可以根据每个用户的登录状态来改变他们的内容和行为。
增加了指示Auth.Authenticate执行静默身份验证并将结果返回给调用脚本的能力。可用于显示不同的内容,具体情况取决于用户是否已登录。
增加了将userid和password作为参数传递给Auth.Authenticate。将使用这些参数来代替浏览器发送的任何字段。此功能可用于在注册后以编程方式登录用户,而无需让他们重新输入用户名和密码。
添加Auth.Result, Auth.FailedUserId 和 Auth.FailedPassword属性,可在fw_exit.prg中用于在登录尝试失败的情况下执行自定义操作,如向管理员发送电子邮件、维护身份验证失败日志、锁定用户帐户一段时间等。
错误处理和错误日志记录的改进
该领域中的一些增强功能使asp和其他大型组织更容易为每个虚拟主机保留单独的错误日志。
错误日志将服务器名称作为一个单独的字段捕获。可用于按主机名筛选错误。
能够写入单独的错误日志表,它们位于每个虚拟服务器的程序根目录中。可用于按主机名筛选错误。
在fwAdmin.fwx错误日志查看器中的用户界面的改进。
能够在fwAdmin.fwx中选择一个特定于实现的错误日志。
错误处理程序可以返回一个状态为“500服务器错误”,而不是“200确定”。
错误处理程序返回robots noindex HTTP头,以防止搜索引擎对错误消息进行索引。
改进了错误消息HTML输出的格式化。
其他改进
response.Clear不仅清除输出缓冲区,还清除任何未发送的HTTP header,status、Cookie和content-type。
添加request.ScriptParams属性,用在脚本名称之后,但在查询字符串之前的URL部分填充。这对于创建由某些不支持查询字符串的搜索引擎索引的参数化页面非常有用。
已添加Server.JSUnescape方法。
FoxWeb3中的新功能
除了大量的性能和兼容性改进外,FoxWeb3还提供了以下新功能:
FoxWeb管理脚本
新的FoxWeb Administration Script (fwAdmin.fwx)提供了许多功能,包括系统信息、错误日志查看器的链接、通道状态、能够在服务器上编译脚本,即使使用VFP Run-Time DLL,以及在服务器上交互运行代码的能力。
脚本编译增强
在版本2之前,FoxWeb要求脚本由完整版本的VFP编译。使用VFP Run-Time DLL运行服务器的用户在更改源代码时,都需要在不同的计算机上手动编译脚本。新版本删除了对运行VFP 6 Service Pack 3及以上版本的服务器的此限制。它还提供了各种工具,帮助管理员在本地和远程编译脚本。
如果使用VFP6服务包3及以上版本,则增加了在使用VFP Run-Time DLL运行FoxWeb时编译脚本的能力。在URL中指定的,或通过服务器经由Server.Execute调用的FWX和Prg和服务器。传输将被自动编译,而使用DO命令调用的脚本或使用函数调用函数的脚本必须使用新的fwCompile object进行编译。当使用完整的VFP产品时,所有脚本都将自动编译,而不管它们如何调用。
FoxWeb Administration Script中的编译脚本功能有助于在服务器上对fwx脚本和prg脚本进行批量编译。此函数对于使用VFP Run-Time DLL运行的服务器特别有用。
新的ffCompile对象允许使用通配符模式批量编译整个目录树。同时支持Prg和FWX文件。
使用ASPSmartMailSMTP组件发送电子邮件
FoxWeb3包括ASPsmart邮件是一个SMTP控件,可用于从FoxWeb脚本和其他支持COM控件的程序发送电子邮件。
无cookie会话
增加了对关闭cookie的浏览器上的会话的支持。
添加了SessionNoCookies注册表项,如果设置为1,将迫使FoxWeb总是在查询字符串中查找会话id标记。
身份验证对象的增强功能
增加了通过认证以Auth.EncryptPassword属性加密格式存储密码的能力。使用Server.HashMD5创建密码。
增加了通过Auth.CaseSensitive属性执行区分大小写的身份验证的能力。
添加Auth.AdminAuthenticate和Auth.AdminLogout 方法,它根据管理员的用户ID和密码对用户进行身份验证。管理员的用户ID和密码设置可以在FoxWeb Control Center中设置,并由新的FoxWeb管理脚本使用。开发人员可以创建额外的管理脚本并使用Auth.AdminAuthenticate和Auth.AdminLogout 的方法来保护它们。
改进的渠道管理
将最大频道数量从9个增加到30个。请参阅有关推荐频道数量的更新说明。
改善渠道管理。通道被一个单独的线程杀死,允许通道控制器继续执行其他任务。
分配通道的优先级已更改。在过去,FoxWeb会分配最低的非繁忙频道。新的算法还考虑了通道是否仍在向浏览器发送数据。现在优先考虑活动连接最少的通道。如果是平局,最低的频道数将获胜。活动连接是网络连接,通道仍在其上返回数据。为了提高性能,一旦脚本的执行完成,FoxWeb通道就会立即可用。一个通道可以执行一个新的请求,而它仍然返回一个以前执行的请求的数据。这一改变将防止在繁忙的服务器上的“FoxWeb Channel Stopped Responding”错误,服务大量的内容到浏览器与缓慢的连接。
通道状态窗口和show_channels内部脚本的输出将显示每个通道的活动连接数。此列指示通道仍在将数据发送回客户端浏览器的请求数。
show_channels内部脚本的输出将显示另外两列:最后一个脚本是该通道接收到的最后一个脚本的名称。最后一个脚本时间是通道收到最后一个请求的时间。
添加了对FoxWeb通道使用的总缓冲区内存大小值的设置。
记录错误
如果可用,在Run-time DLL下运行时,能够查看错误日志中的行号和内容。
修正了在Run-time DLL下运行时在错误日志中的memvar转储的格式。
FoxWeb设置
FoxWeb安装程序是从零开始重写的,使用Windows安装程序(MSI)技术。
为IIS设置.fwx脚本映射的更健壮的方法。
自动设置应用程序扩展,这是IIS6及以上版本所需要的(Windows2003)。
选择切换VFP版本而无需重新安装FoxWeb。
其他改进
已添加“错误后的重置”配置选项。如果禁用此选项,则FoxWeb在脚本出现错误后不会重置当前通道。旧版本的FoxWeb总是用来在出现错误后重置通道。这将防止繁忙的服务器出现“FoxWeb通道停止响应”错误,为连接缓慢的浏览器提供较大的输出缓冲区。
添加了SharedTempDir注册表项,可用于为会话表的网络位置。仅对负载平衡的服务器场有用。
添加 Request.StartTime 和 Request.StartSeconds 方法。
运行fwserver.exe返回它被编译的VFP的版本。
内存变量(mvcount)从2,048增加到4,096。
在FoxWeb Control Center的次要用户界面增强。
如果“StubError状态500注册表项”设置为“1”,则非脚本错误可能会返回HTTP状态500(内部服务器错误)。
状态窗口使用颜色来表示FoxWeb通道的状态。
在控制面板中的FoxWeb服务条目中添加了描述。
通道状态窗口现在可调整大小。
从版本2和版本3升级
FoxWeb4与为FoxWeb2和3编写的脚本保持100%的兼容性。因此,您应该能够在现有的FoxWeb2安装的基础上安装这个版本,而不会对您的网站产生任何不利影响。与往常一样,我们建议您在将开发/测试服务器部署到生产环境之前,先在该服务器上测试所有新版本。
(未完待续。。。)