什么是邮件转发?*
2Qw)-EB a
pKa4nI
设置好一个email服务器以后,该服务器将具有一个或若干个域名,这时email服务器将监听25号端口,等待远程的发送邮件的请求。网络上其他的mail服务器或者请求发送邮件的MUA(Mail User Agent,如outlook express、foxmail等等)会连接email服务器的25号端口,请求发送邮件,SMTP会话过程一般是从远程标识自己的身份开始,过程如下:
g<0w/n!jmC HELO remote.system.domainname
Ja^7$WY 250 qmailserver.domain
!'Gb$l! MAIL FROM:
user@somewherer.net ZWov_ 250 OK
^Kb9@lz/ RCPT TO:
user1@elsewhere.net _T_PX$B 邮件的接收者
user1@elsewhere.net中的域名并不一定是本地域名,这时候本地系统可能有两种回答,接受它:
)H.ubM1 250 OK
[f/vLLK 或者拒绝接受它:
.QNjeMu. 553 sorry,.that domain isnot in my domain list of allowed recphosts
}k4` 第一种情况下,本地email服务器是允许relay的,它接收并同意传递一个目的地址不属于本地域名的邮件;而第二种情况则不接收非本地邮件。
,>:XE@xcp email一般都有一个配置文件,其决定了是否接受一个邮件。只有当一个RCPT TO命令中的接收者地址的域名存在于该文件中时,才接受该邮件,否则就拒绝该邮件。若该文件不存在,则所有的邮件将被接受。当一个邮件服务器不管邮件接收者和邮件接收者是谁,而是对所有邮件进行转发(relay),则该邮件服务器就被称为开放转发(open relay)的。当email服务器没有设置转发限制时,其是开放转发的。
|dW2dQ wVlSjk fMgcK$ 什么是最安全的加密技术?*
4V!1/w zsHG=Ee* 你上面给定的所有算法不是都和加密技术有关的,下面我对每一个分别进行简要的介绍:
M}R@ K;%
数据加密标准(DES)是一个古老的对称密钥加密算法,目前已经不再使用。它不是一个很安全的算法。
8+=p8e~An 三重DES(Triple-DES)仍然是很安全的,但是也只是在别无他法的情况下的一个较好的选择。显然高级
yLV2>kq 加密标准(AES)是一个更好的加密算法,NIST用AES代替Triple-DES作为他们的标准(下面有更详细的讨论)。其他较好的算法包括另外两个AES的变种算法Twofish和Serpent-也称为CAST-128,它是效率和安全的完美结合。这几个算法不仅比DES更安全,而且也比DES的速度更快。为什么要使用一些又慢又不安全的算法呢
AECxd[k$9 SHA1是一个哈希函数,而不是一个加密函数。作为一个哈希函数,SHA1还是相当优秀的,但是还需要几年的发展才能用作加密算法。如果你正在设计一个新系统,那么谨记你可能会在若干年后用SHA1代替目前的算法。我再重复一遍:只是可能。
XB6N[E RSA是一个公开密钥加密算法。RSA的密钥长度一般为2048-4096位。如果你现在的系统使用的是1024位的公开密钥,也没有必要担心,但是你可以加长密钥长度来达到更好的加密效果。
Ym3
" 高级加密标准(AES)是一个用来代替数据加密标准(DES)的算法。目前使用的一般为128,196和256位密钥,这三种密钥都是相当安全的。而且美国政府也是这样认为的。他们批准将128位密钥的AES算法用于一般数据加密,196位和256位密钥的AES算法用于秘密数据和绝密数据的加密。
XCKY
xv& DESX是DES的一个改进版本。DESX的原理是利用一个随机的二进制数与加密前的数据以及解密后的数据异或。虽然也有人批评这种算法,但是与DES相比DESX确实更安全,不过DESX在许多情况下并不适用。我曾经处理过一个硬件支持DES的系统,由于有些环节不能容忍三重DES的慢速,我们在这些地方使用了DESX来代替DES。然而,这是一个非常特殊的情况。如果你需要使用DESX,理由显而易见(可能和我不得不使用DESX的原因类似)。但我建议你使用AES或者上面我提到的一些算法。
cw*(L5bu RC4是一种常用于SSL连接的数据流加密算法。它已经出现很多年了,而且有很多已知和可能的缺陷,因此在一些新的工程中不要使用它。如果你目前正在使用它而且可以轻易的卸载它,那么情况也不是很坏。不过,我怀疑如果你现在正在使用它,你不可能轻易的卸载它。如果不能将它从系统中轻易的卸载,那么你还是考虑今后怎样升级它,但是不要感到很惊慌。我不会拒绝在一个使用RC4算法来加密SSL连接的网站购买东西,但是如果我现在要新建一个系统,那么我会考虑使用其他的算法,例如:AES。
*pDXcURw 我认为你谈到下面两个算法MD5-RSA和SHA1-DSA的时候,你知道他们是用于数字签名的。但是不要使用MD5,因为它有很多缺陷。很多年前大家就知道MD5中存在漏洞,不过直到今年夏天才破解出来。如果你想了解关于MD5的详细信息,那你可以看看我以前写的一篇文章。你可以将SHA1和RSA或DSA配合在一起使用。目前DSA的密钥位数高达1024位,这个密钥位数已经足够长了,因此不需要担心安全问题。然而,如果NIST实现了更长的密钥位数当然更好。
|TC3*Y X.509证书是一个数据结构,常用于规定比特和字节的顺序,它本身不是一个密码系统。它通常包含一个RSA密钥,也可能包含一个DSA密钥。但是X.509证书内部以及证书本身并不是加密技术。
V]+o)A$ h9,wiT Z $ p^v*y 什么叫做泛解析*
)6PJ*;p- ,?P8m" 比如说
www.aaa.com 指向10.10.1.1
e);bF>.~ ftp.aaa.com指向10.10.2.2
B:.;,@r] 如果这时候客户访问的是aaa.com或者error.aaa.com (这里error代表一个根本不存在的域名或者说是A记录)
]C9%]` 这个时候,如果dns服务器不支持泛解析的话,那么就无法访问aaa公司的网站,提示错误。
<K|3Q'(S 如果支持泛解析的话,如果你访问的域名在dns服务器中没有A记录,比如fadsfdsafsdaf.aaa.com,它一样会跳转到
www.aaa.com,出现公司的网站,而不用担心一些人输错网址后到不了公司的网站而损失了潜在的客户。
wghFGHgw 泛域名解析域名域名解析的区别
oHYD_8'f 泛域名解析是:*.域名解析到同一IP。
6R3"L]J 域名解析是:子域名.域名解析到同一IP。
%4QoF 注意:只有客户的空间是独立IP的时候泛域名才有意义。而域名解析则没有此要求。
CpBQ>!CW ~}hba3&b;# 'iMHAP;N 什么是WSH*
p,M3#^ q 6,CU)-98G WSH是“Windows Scripting Host”的缩略形式,其通用的中文译名为“Windows 脚本宿主”。对于这个较为抽象的名词,我们可以先作这样一个笼统的理解:它是内嵌于 Windows 操作系统中的脚本语言工作环境。
qk"oFP6 >cvE_g"?C Windows Scripting Host 这个概念最早出现于 Windows 98 操作系统。大家一定还记得 MS-Dos 下的批处理命令,它曾有效地简化了我们的工作、带给我们方便,这一点就有点类似于如今大行其道的脚本语言。但就算我们把批处理命令看成是一种脚本语言,那它也是 98 版之前的 Windows 操作系统所唯一支持的“脚本语言”。而此后随着各种真正的脚本语言不断出现,批处理命令显然就有点力不从心了。面临这一危机,微软在研发 Windows 98 时,为了实现多类脚本文件在 Windows 界面或 Dos 命令提示符下的直接运行,就在系统内植入了一个基于 32 位 Windows 平台、并独立于语言的脚本运行环境,并将其命名为“Windows Scripting Host”。WSH 架构于 ActiveX 之上,通过充当 ActiveX 的脚本引擎控制器,WSH 为 Windows 用户充分利用威力强大的脚本指令语言扫清了障碍。
f\U? :83 ^bZ<9} 再具体一点描述:你自己编写了一个脚本文件,如后缀为 .vbs 或 .js 的文件,然后在 Windows 下双击并执行它,这时,系统就会自动调用一个适当的程序来对它进行解释并执行,而这个程序,就是 Windows Scripting Host,程序执行文件名为 Wscript.exe (若是在命令行下,则为 Cscript.exe)。
k~'?"' l}U~I
3}). WSH 诞生后,在 Windows 系列产品中很快得到了推广。除 Windows 98 外,微软在 Internet Information Server 4.0、Windows Me、Windows 2000 Server,以及 Windows 2000 Professional 等产品中都嵌入了 WSH。现在,早期的 Windows 95 也可单独安装相应版本的 WSH。
[)C)p*!Y) c,b`N0dOKL LAu+{'O\ Windows中域和组是什么关系?有什么区别?*
0KWy?6 X By EvilOctal[EST]
~v{C6) ?qq!%4mTB 相对包含关系,在每一个域中,管理员又可以把里面的用户划分为不同的组。
mcAH1k e 工作组是一群计算机的集合,它仅仅是一个逻辑的集合,各自计算机还是各自管理的,你要访问其中的计算机,还是要到被访问计算机上来实现用户验证的。而域不同,域是一个有安全边界的计算机集合,在同一个域中的计算机彼此之间已经建立了信任关系,在域内访问其他机器,不再需要被访问机器的许可了。为什么是这样的呢?因为在加入域的时候,管理员为每个计算机在域中(可和用户不在同一域中)建立了一个计算机帐户,这个帐户和用户帐户一样,也有密码保护的。可是大家要问了,我没有输入过什么密码啊,是的,你确实没有输入,计算机帐户的密码不叫密码,在域中称为登录票据,它是由2000的DC(域控制器)上的KDC服务来颁发和维护的。为了保证系统的安全,KDC服务每30天会自动更新一次所有的票据,并把上次使用的票据记录下来。周而复始。也就是说服务器始终保存着2个票据,其有效时间是60天,60天后,上次使用的票据就会被系统丢弃。如果你的GHOST备份里带有的票据是60天的,那么该计算机将不能被KDC服务验证,从而系统将禁止在这个计算机上的任何访问请求(包括登录),解决的方法呢,简单的方法使将计算机脱离域并重新加入,KDC服务会重新设置这一票据。或者使用2000资源包里的NETDOM命令强制重新设置安全票据。因此在有域的环境下,请尽量不要在计算机加入域后使用GHOST备份系统分区,如果作了,请在恢复时确认备份是在60天内作的,如果超出,就最好联系你的系统管理员,你可以需要管理员重新设置计算机安全票据,否则你将不能登录域环境。
o|b[(t$;O "@UU[o (ffOu#RQ3 什么是RSS*
9RCB$Ka6X ~Q.8 U3" RSS(即RDF Site Summary)是一种描述互联网内容的格式。目前RSS应用的最广泛的还是在Blog也就是网志中。
/j=DC9_ Vq)|gF[6i 我们经常会在一些Blog上看到这样的图标,或者是诸如“syndicate this site (XML)”之类的文字,这些图标和文字所对应的超级链接通常也就是该Blog的RSS输出文件的URL。一般情况下这些RSS文件是以xml或者使rdf为后缀的,但是也有一些网站采用动态地址来定位RSS文件。
#`YxoY ` z=- 8iks| Movable Type构建的Blog,其RSS文件一般是index.rdf或者是index.xml, 假如一个使用MT构建的Blog其地址为
http://www.yoursite.com 那么这个Blog的RSS文件地址默认的就是
http://www.yoursite.com/index.xml 或者
http://www.yoursite.com/index.rdf 。
1@1+4P0NF[ U|y;b+n` 在国内大多数Blog用户都使用Blog托管网站提供的免费Blog服务,例如:blogdriver,blogbus等。这些托管网站提供的RSS文件输出地址一般都是动态地址,用户需要在Blog页面上寻找图标来找到RSS文件的地址,对于blogdriver的用户来讲,你们的RSS文件链接就在目录栏的最下方,RSS1.0, RSS2.0, ATOM等字样处。目前本网站支持RSS1.0和2.0格式。使用其他Blog工具或者服务商的用户可以去阅读相应的帮助文件或者是服务网站的帮助页面,应该可以找到相应的说明。
3:02`;3 6T}
CPDRq shtml是什么?*
Up1$xLSl c (_oK ? SSI有什么用
a!hI${Xn 之所以要扯到ssi,是因爲shtml--server-parsed HTML 的首字母缩略词。包含有嵌入式_blank>服务器方包含命令的 HTML 文本。在被传送给浏览器之前,_blank>服务器会对 SHTML 文档进行完全地读取、分析以及修改。
: .FfE shtml和asp 有一些相似,以shtml命名的文件里,使用了ssi的一些指令,就像asp中的指令,你可以在SHTML文件中写入SSI指令,当客户端访问这些shtml文件时,
#J<`p _blank>服务器端会把这些SHTML文件进行读取和解释,把SHTML文件中包含的SSI指令解释出来比如:你可以在SHTML文件中用SSI指令引用其他的html文件(#include ),_blank>服务器传送给客户端的文件,是已经解释的SHTML不会有SSI指令。它实现了HTML所没有的功能,就是可以实现了_blank>动态
|}]JWsuB 的SHTML,可以说是HTML的一种进化吧。像新浪的_blank>新闻系统就是这样的,_blank>新闻内容是固定的但它上面的广告和菜单等就是用#include引用进来的。
V29S* eNlF2M 目前,主要有以下几种用用途:
q7)]cY_ 1、显示_blank>服务器端环境变量<#echo>
cLN[o8ZU 2、将文本内容直接插入到文档中<#include>
Z!s>AgH9u 3、显示WEB文档相关信息<#flastmod #fsize> (如文件制作日期/大小等)
goBKr: &]w 4、直接执行_blank>服务器上的各种程序<#exec>(如CGI或其他可执行程序)
@+T{M:&l 5、设置SSI信息显示格式<#config>(如文件制作日期/大小显示方式)
2F*Dkv 高级SSI<XSSI>可设置变量使用if条件语句。
g-{<v4 NGI Aoy1<8WP%
使用SSI
3^iQe"P%a@ SSI是为WEB_blank>服务器提供的一套命令,这些命令只要直接嵌入到HTML文档的注释内容之中即可。如:
l1iF}>F2 <!--#include file="info.htm"-->
%BKR} 就是一条SSI指令,其作用是将"info.htm"的内容拷贝到当前的页面中,当访问者来浏览时,会看到其它HTML文档一样显示info.htm其中的内容。
Z<,CzKs+|| 其它的SSI指令使用形式基本同刚才的举例差不多,可见SSI使用只是插入一点_blank>代码而已,使用形式非常简单。
;/hH=IT 当然,如果WEB_blank>服务器不支持SSI,它就会只不过将它当作注释信息,直接跳过其中的内容;浏览器也会忽略这些信息。
RT_Pd\(qD tnKpn-LPA 如何在我的WEB_blank>服务器上配置SSI功能?
TS~Y\Cp 在一些WEB_blank>服务器上(如IIS 4.0/SAMBAR 4.2),包含 #include 指令的文件必须使用已被映射到 SSI 解释程序的扩展名;否则,Web _blank>服务器将不会处理该SSI指令;默认情况下,扩展名 .stm、.shtm 和 .shtml 被映射到解释程序(Ssinc.dll)。
cfy/*| Apache则是根据你的设置情况而定,修改srm.conf如:
Xdp`Z'g AddType text/x-server-parsed-html .shtml 将只对.shtml扩展名的文件解析SSI指令
C[87f-g AddType text/x-server-parsed-html .html将对所有HTML文档解析SSI指令
2y
.-4?e Netscape WEB_blank>服务器直接使用Administration Server(管理_blank>服务器)可打开SSI功能。
hq& Website使用Server Admin程序中的Mapping标签,扩展名添加内容类型为:wwwserver/html-ssi
j
44bF/ Cern_blank>服务器不支持SSI,可用SSI诈骗法,到
http://sw.cse.bris.ac.uk/WebTools/fakessi.html 上下载一个PERL脚本,即可使你的CERN_blank>服务器使用一些SSI指令。(不支持exec指令。)
nIN%<3U2 YiQeI|{oN SSI指令基本格式
0.{oA`5N SSI指令基本格式:
FRJ:ym=E 程序_blank>代码:
#P,[fgNy 3ZJagJ\O <!-– 指令名称="指令参数">
y9re17{
X <!-– 指令名称="指令参数">
kVG6\<c] 如
9 FFfRIVY 程序_blank>代码:
4
L~;>]7 bTo@gJkn <!--#include file="info.htm"-->
!=q:>}g <!--#include file="info.htm"-->
'#An+;x{ 说明:
;&t1FH#= 1.<!-- -->是HTML语法中表示注释,当WEB_blank>服务器不支持SSI时,会忽略这些信息。
_]PfeCn:j 2.#include 为SSI指令之一。
YVg}q#
3.file 为include的参数, info.htm为参数值,在本指令中指将要包含的文档名。
Dry;$C}P Oa_o"p<Lr 注意:
-<}>YtB
Q G+QNg.pH 1.<!--与#号间无空格,只有SSI指令与参数间存在空格。
CrwcYzrRWl 2.上面的标点="",一个也不能少。
]`i@~Z h\ 3.SSI指令是大小写敏感的,因此参数必须是小写才会起作用。
~XT
a= p*W ZY=Q SSI指令使用详解
@qr3v>3X< E't G5,/m #echo 示范
_.J[w6 作用:
,j(p}t 将环境变量插入到页面中。
luxKgcU 语法:
&L~31Ayj& 程序_blank>代码:
)(|0KarF lj SR?:\ <!--#echo var="变量名称"-->
uI:3$ <!--#echo var="变量名称"-->
|@Idf`N$ #3:'lGBIK dc@wf;o s2' :&5( 4f @\f7\ L8-[:1 本文档名称:程序_blank>代码:
O^="T^J KHs{/ <!--#echo var="DOCUMENT_blank>_NAME"-->
Mbi+Vv- <!--#echo var="DOCUMENT_blank>_NAME"-->
~bWWu`h 现在时间:程序_blank>代码:
z1@sEfk> JjTzq2'% <!--#echo var="DATE_blank>_LOCAL"-->
DRg~HT <!--#echo var="DATE_blank>_LOCAL"-->
Tdmo'"m8z_ 你的IP地址是程序_blank>代码:
}AH|~3|D r|H!s, <!--#echo var="REMOTE_blank>_ADDR"-->
3TvhOC>yG <!--#echo var="REMOTE_blank>_ADDR"-->
Fi3(glgd- ht74h #include 示范
d&R\7)0 作用:
rgvc5p 将文本文件的内容直接插入到文档页面中。
E#X!*q& 语法:
WSB|-Qj}W 程序_blank>代码:
t-|=weNy 'JKvy(n> <!--#include file="文件名称"-->
f}9`iN=k <!--#include virtual="文件名称"-->
q D>Y}Z! <!--#include file="文件名称"-->
!CMVZf;u <!--#include virtual="文件名称"-->
CbvL X="% file 文件名是一个相对路径,该路径相对于使用 #include 指令的文档所在的目录。被包含文件可以在同一级目录或其子目录中,但不能在上一级目录中。如表示当前目录下的的nav_blank>_head.htm文档,则为file="nav_blank>_head.htm"。
XJ1nhE virtual 文件名是 Web 站点上的虚拟目录的完整路径。如表示相对于_blank>服务器文档根目录下hoyi目录下的nav_blank>_head.htm文件;则为file="/hoyi/nav_blank>_head.htm"
[j+0EVwB 参数:
wb
Tg file 指定包含文件相对于本文档的位置
@LMV ? virtual 指定相对于_blank>服务器文档根目录的位置
nF[eb{GR` 注意:
E_I6 1、文件名称必须带有扩展名。
yar IR| 2、被包含的文件可以具有任何文件扩展名,我觉得直接使用htm扩展名最方便,微软公司推荐使用 .inc 扩展名(这就看你的爱好了)。
~x^+OXf!^g 示例:
T9;o.f S 程序_blank>代码:
d?qO`-
~$ $Qc%9p
@i <!--#include file="nav_blank>_head.htm"-->将头文件插入到当前页面
)Jjw}}$}Y <!--#include file="nav_blank>_foot.htm"-->将尾文件插入到当前页面
pS)X\Xyw <!--#include file="nav_blank>_head.htm"-->将头文件插入到当前页面
&b]KMAo3 <!--#include file="nav_blank>_foot.htm"-->将尾文件插入到当前页面
Z
7ZMu 6Q?6-,?_ #flastmod 和#fsize 示范
*Lk&@(
作用: #flastmod 文件最近更新日期
D
'_#?%3^ #fsize 文件的长度
Yiw^@T\H` 语法:
~~E=E;9 程序_blank>代码:
8; N}d)*O JI; i1@|b <!--#flastmod file="文件名称"-->
6!=9V0G~ <!--#fsize file="文件名称"-->
qmeEUch` <!--#flastmod file="文件名称"-->
21k-ob1Y <!--#fsize file="文件名称"-->
xupdjT%4 参数:
vlKKPS file 指定包含文件相对于本文档的位置 如 info.txt 表示当前目录下的的info.txt文档
eDZ3SIZ virtual 指定相对于_blank>服务器文档根目录的位置 如 /hoyi/info.txt 表示
X1~A "sW[ 注意:
gR6T]v 文件名称必须带有扩展名。
yaGVY*M0 示例:
J0) WRn"h 程序_blank>代码:
z+B W p*
v Vv <!--#flastmod file="news.htm"-->
K<9MK>T <!--#flastmod file="news.htm"-->
0`Qs=R`OM 将当前目录下news.htm文件的最近更新日期插插入到当前页面
6h*bcb#C 程序_blank>代码:
"@|V.d@ k
<Sa< <!--#fsize file="news.htm"-->
WW/m
/+ <!--#fsize file="news.htm"-->
2/gj@>dt 将当前目录下news.htm的文件大小入到当前页面
T`DlOi]Z_ rca"q[, #exec 示范
!Yi<h/: 作用:
Iur} ZAz 将某一外部程序的输出插入到页面中。可插入CGI程序或者是常规应用程序的输入,这取决于使用的参数是cmd还是cgi。
Xg#([}b 语法:
TKydOw@P" 程序_blank>代码:
(Q}ijwj BPs
& <!--#exec cmd="文件名称"-->
J)&+y;. <!--#exec cgi="文件名称"-->
Y##P9^zH1 <!--#exec cmd="文件名称"-->
b#'a4j-u <!--#exec cgi="文件名称"-->
/9#jv]C: 参数:
I:7,CV cmd 常规应用程序
^/YAokj cgi CGI脚本程序
6Z}))*3 9 示例:
Nfvg[c 程序_blank>代码:
6$;)CO!h KD*4n'm!> <!--#exec cmd="cat /etc/passwd"-->将会显示_blank>密码文件
r?>Hg+ <!--#exec cmd="dir /b"-->将会显示当前目录下文件列表
@g2L=XF <!--#exec cgi="/cgi-bin/gb.cgi"-->将会执行CGI程序gb.cgi。
}u)GERWO <!--#exec cgi="/cgi-bin/access_blank>_log.cgi"-->将会执行CGI程序access_blank>_log.cgi。
*\+'tFT6 <!--#exec cmd="cat /etc/passwd"-->将会显示_blank>密码文件
;lt;]7 <!--#exec cmd="dir /b"-->将会显示当前目录下文件列表
%),O9*[9 <!--#exec cgi="/cgi-bin/gb.cgi"-->将会执行CGI程序gb.cgi。
pjn%CR`; <!--#exec cgi="/cgi-bin/access_blank>_log.cgi"-->将会执行CGI程序access_blank>_log.cgi。
Mo=-P2)>lt 注意:
srA~gzF 从上面的示例可以看出,这个指令相当方便,但是也存在安全问题。
!{0!G 禁止方法:
fYPU'"hzG .Apache,将access.conf中的"Options Includes ExecCGI"这行_blank>代码删除;
4hz,F/ I .在IIS中,要禁用 #exec 命令,可修改 SSIExecDisable 元_blank>数据库;
?m^7O_1 p=T\3_q c$z_Zi!g# LJ#P- `!{& "Jd1&FsCwX 2DQC)Pe+z ![n`n(oN #config
(R,n`x2^ 作用: 指定返回给客户端浏览器的错误信息、日期和文件大小的格式。
mMWNUkDq 语法:
]bSt[ 程序_blank>代码:
|B.d7@{mM Q{-r4n|b <!--#config errmsg="自定义错误信息"-->
jX,~iZ_B <!--#config sizefmt="显示单位"-->
fs12<~+z <!--#config timefmt="显示格式"-->
A1;t60z+q> <!--#config errmsg="自定义错误信息"-->
nClU5 <!--#config sizefmt="显示单位"-->
Agf!6kh <!--#config timefmt="显示格式"-->
FvP1;E 参数:
2p ,6=8^v errmsg 自定义SSI执行错误信息,可以为任何你喜欢的方式。
[: j_Y3-9 sizefmt 文件大小显示方式,默认为字节方式("bytes")可以改为千字节方式("abbrev")
/_(Dq8^g@ timefmt 时间显示方式,最灵活的配置属性。
'>$A7 示例: 显示一个不存在文件的大小
y70gNPuTOD 程序_blank>代码:
|Ay#0uQ5Y }y/t~f+ <!--#config errmsg="_blank>服务器执行错误,请联系管理员
yiho@126.com,谢谢!"-->
GTvb^+6 <!--#fsize file="不存在的文件.htm"-->
Z&!$G'X <!--#config errmsg="_blank>服务器执行错误,请联系管理员
yiho@126.com,谢谢!"-->
v83 6nxL M <!--#fsize file="不存在的文件.htm"-->
?g.w%Mf* 以千字节方式显示文件大小
bhYaG i0 程序_blank>代码:
y~[So ,G _m-r}9au
<!--#config sizefmt="abbrev"-->
:b-(@a7> <!--#fsizefile="news.htm"-->
OR{"9)I <!--#config sizefmt="abbrev"-->
`lzH:B <!--#fsizefile="news.htm"-->
w{IqzmPiH 以特定的时间格式显示时间
`#bcoK5 程序_blank>代码:
WI3!?>d KS_d5NvYl <!--#config timefmt="%Y年/%m月%d日 星期%W 北京时间%H:%M:%s,%Y年已过去了%j天 今天是%Y年的第%U个星期"-->
q<7n5kJ~ <!--#echo var="DATE_blank>_LOCAL"--> 显示今天是星期几,几月,时区
2{N0. |5 <!--#config timefmt="今天%A, %B ,_blank>服务器时区是 %z,是"-->
`rV,<
<!--#echo var="DATE_blank>_LOCAL"-->
| <$O5b' <!--#config timefmt="%Y年/%m月%d日 星期%W 北京时间%H:%M:%s,%Y年已过去了%j天 今天是%Y年的第%U个星期"-->
yhmW-#+^e <!--#echo var="DATE_blank>_LOCAL"--> 显示今天是星期几,几月,时区
'r
CR8>k <!--#config timefmt="今天%A, %B ,_blank>服务器时区是 %z,是"-->
E~Nr4vq <!--#echo var="DATE_blank>_LOCAL"-->
Y8T.RS0 6qf`P!7d]M XSSI
(PF (,B XSSI(Extended SSI)是一组高级SSI指令,内置于Apache 1.2或更高版本的mod-include模块之中。
70~]J8T+u 其中可利用的的指令有:
@ XMC$s #printenv
oJy/PR3 #set
z_)$g=9$ #if
kOO2 ?L|Z #printenv
"'L SLp 作用: 显示当前存在于WEB_blank>服务器环境中的所有环境变量。
zx*f*L,6F 语法:程序_blank>代码:
?1sY S [R$4n-$ <!--#printenv-->
F(r&:3!97 <!--#printenv-->
Iq *7F5B 参数:无
*XuzTGa" 示例:
JI(|sAH 程序_blank>代码:
o~B=[ "( xu <!--#printenv-->
s~CA
@ <!--#printenv-->
3L|k3 `I4 *h1@eJHMz #set
)U`
c9*. 作用:可给变量赋值,以用于后面的if语句。
@z.!Dby 语法:程序_blank>代码:
t{9Ph]e r%4:,{HF <!--#set var="变量名"value="变量值"-->
"P~>AXcq <!--#set var="变量名"value="变量值"-->
CAO$Zt 参数:无
% |V:F. f 示例: 程序_blank>代码:
:gXj($ R.@GLx_zpQ <!--#set var="color"value="红色"-->
w&H7S{ <!--#set var="color"value="红色"-->
)XFMlSx) <Bwu N,} #if
+7w>ujeeJA 作用: 创建可以改变数据的页面,这些数据根据使用if语句时计算的要求予以显示。
tH(Z9\L 7 语法: 程序_blank>代码:
O?_'6T H;8(y4; <!--#if expr="$变量名=\"变量值A\""-->
xUYSD 显示内容
0#G"{M <!--#elif expr="$变量名=\"变量值B\""-->
)%6v~,'3Y 显示内容
^*W3{eyi(L <!--#else-->
Oqyh{q%] 显示内容
YA jk' <!--#endif"-->
Wo&i)S<i0F <!--#if expr="$变量名=\"变量值A\""-->
HDYf^mcW 显示内容
ETtR*5Y 5 <!--#elif expr="$变量名=\"变量值B\""-->
=S,^"D\Z: 显示内容
,=FYf|Z <!--#else-->
%2.T1X%! 显示内容
Y*6*;0Kx <!--#endif"-->
r*Mm5QozA 示例:
n(L {2r 程序_blank>代码:
Z(s}
#-
J0`?g6aY <!--#if expr="$SERVER_blank>_NAME=\"hoyi.zb169.net\""-->
8^T' a^Wt 欢迎光临好易CGI工厂在淄博热线的分站
http://hoyi.zb169.net。
?~$y3<[ <!--#elif expr="$SERVER_blank>_NAME=\"linux" target=_blank>linux.cqi.com.cn\"" -->
^U1;5+2G+~ 欢迎光临好易CGI工厂在太阳城的分站
http://linux" target=_blank>linux.cqi.com.cn/~hoyi。
shD$,!
k <!--#else-->
|Z<adOg 欢迎光临好易CGI工厂!
b$BUo8O} <!--#endif"-->
z9gZ/d <!--#if expr="$SERVER_blank>_NAME=\"hoyi.zb169.net\""-->
xucV$[f 欢迎光临好易CGI工厂在淄博热线的分站
http://hoyi.zb169.net。
^0 t`EZ$ <!--#elif expr="$SERVER_blank>_NAME=\"linux" target=_blank>linux.cqi.com.cn\"" -->
R$\ieNb 欢迎光临好易CGI工厂在太阳城的分站
http://linux" target=_blank>linux.cqi.com.cn/~hoyi。
WrV|<%EQh <!--#else-->
)S]c'}^ 欢迎光临好易CGI工厂!
Y9Pb <!--#endif"-->
!vU[V,~
注意: 用于前面指令中的反斜杠,是用来代换内部的引号,以便它们不会被解释为结束表达式。不可省略。
eK`tFs,u g$+3IVq& KP
i@wl3 IP地址如何分类?*
$]_=B Jyu
@`T6\ 1 IP地址是TCP/IP网络中用来唯一标识每台主机或设备的地址,IP地址由32位(共四个八位组)的二进制组成,IP地址分为两部分,左边网络编号部分用来标识主机所在的网络;右边部分用来标识主机本身。连接到同一网络的主机必须拥有相同的网络编号。
]b[3 th* 通过IP地址的引导位(最高位)来区分不同类别的IP地址:
}.Ug`7%G %V$^CWOy 注:n为网络编号位,h为主机编号位
90q*V%cS [wExjLW A类地址:0nnnnnnn.hhhhhhhh.hhhhhhhh.hhhhhhhh
4B|f}7%\ A类地址具有7位网络编号,因此可定义125个A类网络{27-2(网络编号不能是全0或全1)-1(127为环回地址)}每个网络可以拥有的主机数为16777214{224-2(主机位不能是全0或全1)}
pG
(8VteH 十进制表示范围:1.0.0.1-126.255.255.254
h0GXN\xI )TxhJB5| B类地址:10nnnnnn.nnnnnnnn.hhhhhhhh.hhhhhhhh
SXhJz=h B类地址具有14位网络编号,因此可定义16382个B类网络{214-2}
:%0Z 每个网络可以拥有的主机数为65534{216-2}
U_:/>8})d 十进制表示范围:128.0.0.1-191.255.255.254
R\XJ %c&h:7); C类地址:110nnnnn.nnnnnnnn.nnnnnnnn.hhhhhhhh
^Tl|v'
C类地址具有21位网络编号,因此可定义2097152个C类地址{221-2}
%T&kK2d; 每个网络可以拥有的主机数为254{28-2}
MT3UJ6 ~P 十进制表示范围:192.0.0.1-223.255.255.254
bv+PbK]iO n9#@
e}r D类地址:1110xxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx
>yaRz+ D类地址用于组播,前面4位1110引导,后面28位为组播地址ID。
jWm<!<~ 十进制表示范围:224.0.0.0-239.255.255.255
4|~o<t8 (|WqOwmoUt E类地址:总是以1111四位引导
8.vD]hO E类地址用于研究用
C 9DRVkjj 十进制表示范围:240-
CkOd>Kn f#!Ljjf$; RW3&]l= IP地址由InterNIC(因特网信息中心)统一分配,以保证IP地址的唯一性,但有一类IP地址是不用申请可直接用于企业内部网的,这就是Private Address,Private Address不会被INTERNET上的任何路由器转发,欲接入INTERNET必须要通过NAT/PAT转换,以公有IP的形式接入。
s}5;)>3~@ 这些私为地址为:
0s(G*D2%6 10.0.0.0-10.255.255.255(一个A类地址)
P:Bg() 172.16.0.0-172.31.255.255(16个B类地址)
f>Ge
Em~ 192.168.0.0-192.168.255.255(256个C类地址)
^mH^cP?/ \=w|Zeu{l ZN.
#g_ (u~@@d" 什么是虚拟目录?*
Cjw|.c` #zfBNkk &@ 每个 Internet 服务可以从多个目录中发布。通过以通用命名约定 (UNC) 名、用户名及用于访问权限的密码指定目录,可将每个目录定位在本地驱动器或网络上。虚拟服务器可拥有一个宿主目录和任意数量的其它发布目录。其它发布目录称为虚拟目录。
?@tp1?) 指定客户 URL 地址,服务将整个发布目录集提交给客户作为一个目录树。宿主目录是"虚拟"目录树的根。虚拟目录的实际子目录对于客户也是可用的。只有
http://www.服务支持虚拟服务器;而 FTP 和 gopher 服务则只能有一个宿主目录。
d!>PqPo lLnD%*03 注意 虚拟目录不出现在目录列表中(也称为
http://www.服务的"目录浏览")。要访问虚拟目录,用户必须知道虚拟目录的别名,并在浏览器中键入 URL,对于
http://www.服务,还可在 HTML 页面中创建链接。对于 gopher 服务,可在标志文件中创建明确的链接,以便用户可访问虚拟目录。对于 FTP 服务,可使用目录注释列出虚拟目录。
-&+[/ VLR W,lR9O XXO
如果虚拟目录是在"Internet 服务管理器"中定义的,则别名与虚拟目录相关联。别名是客户用于访问虚拟目录中信息的子目录名。如果管理员没有指定虚拟目录的别名,"Internet 服务管理器"将自动生嘲?名。
huO_ARwK' -(Yq$5Zc& q>,i `* 例如,假设管理员为
http://www.服务定义了两个目录,如下所示:
1B 2>8N ;XANITV Nl0*"}`I_ C:\Wwwroot <home directory>
}e1f kjWk D:\Webdata Alias = data
59GS: Z[ys>\_To v&|o5om Mu TlN g$uj<"^ orJN#0v4 ,XR1N$LN8_ 3~Ah8, 如果 C:\Wwwroot 含有子目录 C:\Wwwroot\Scripts\ 而 D:\Webdata 含有子目录 D:\Webdata\Images\,则 Web 客户可请求下列 URL:
caS5>wk`R oPl^tzO U4Il1|
M& http://inetsrvr.microsoft.com/schedule.htm g%Eb{~v http://inetsrvr.microsoft.com/scripts/query1.htm $)6y:t" \#L}KW nzU^G) http://inetsrvr.microsoft.com/data/stocks.htm Nvw'[?m yoQ}m/Cj ).5$c0`U& http://inetsrvr.microsoft.com/data/images/graph1.htm I~|.Re9a xzh`q 'V/+v#V+> 对于另一个实例,如果您想提供三个不同的产品目录,可将每个目录存储在服务器
http://www.company.com 上独立的硬盘驱动器中。虚拟目录可用于提出三个独立的驱动器作为三个子目录。
eX>x
+]l6 U8 '}( ]%pr1Ey 对于浏览器,虚拟目录显示为"根"宿主目录的子目录。必须为浏览器提供它将用于定义该目录的名称(别名)。
8a)lrIg mSr(PIH{\ PCtf&U