asp是动态还是静态
ASP是态还动态的。这事儿没多少讨论余地,静态但总有人被“ASP”这三个字母唬住,态还以为它跟HTML一样是静态写死了的静态页面。我见过一个刚入行的态还前端,拿着个.asp文件问我:“这玩意儿打开怎么全是静态代码,浏览器里啥也不显示?态还”他以为ASP文件双击就能像HTML那样直接跑起来。这就是静态混淆的起点。 ASP全称Active Server Pages,态还关键词在“Server”。静态它压根不是态还给浏览器直接解析的东西。你访问一个.asp页面,静态浏览器发请求到IIS(Windows那套服务器),态还IIS把文件交给ASP引擎,静态引擎从头到尾执行一遍里面的态还VBScript或JScript代码,该查数据库查数据库,该算逻辑算逻辑,最后把<% %>里的东西全部替换成纯HTML,再把结果吐回浏览器。浏览器拿到的那坨东西,跟静态HTML长得一模一样。但生成过程是动态的——每次请求都可能不一样。 我2003年做过一个企业内网的小系统,用的就是经典ASP。有个页面叫showOrder.asp,接收一个URL参数orderID,然后去Access数据库里捞对应的订单记录,循环输出到一个表格里。同一个showOrder.asp,传1就显示张三的订单,传2就显示李四的。文件本身没变,但输出变了。这就是动态。如果换成静态HTML,你得给每个订单手写一个HTML文件,一千个订单就一千个文件,改个表头要改一千次。ASP干的事就是让服务器在运行时拼出这些页面。 有人抬杠说:“那PHP、JSP不也这样吗?凭什么单说ASP?”对,它们都是动态网页技术。但ASP的“动态”还有一层更具体的含义:它支持服务器端脚本直接嵌入HTML。你打开一个.asp文件,会看到这样的结构: 那对<% %>标签就是动态的开关。服务器看到它们就执行,看不到就原样输出。浏览器永远看不到这些标签,它只看到五个<p>。你右键查看源代码,里面干干净净,没有一行ASP代码。这就是动态的痕迹被抹掉了。 另一个容易搞混的点:ASP文件的后缀是.asp,但你可以把纯HTML代码写进去,一点脚本都不加。这时候它跑起来跟静态页没区别。但技术分类不看你写了什么,看的是文件类型和服务器怎么处理它。IIS遇到.asp就调ASP引擎,遇到.html就丢出去。哪怕你写了个空的.asp,它也是动态页面——因为处理路径不同,开销也不同。静态HTML服务器直接读文件发走,ASP要过一遍引擎,哪怕脚本只有一行。 我见过有人把.asp文件改成.html,结果里面的<% %>代码全被浏览器当注释或乱码显示了。反过来,把.html改成.asp,只要服务器装了ASP,照样能跑,但没必要——纯静态内容走ASP是浪费CPU。这就像你开跑车去买菜,能到,但费油。 现在ASP(经典ASP)基本被ASP.NET取代了。但老系统里还大量存在。判断一个页面是动态还是静态,别光看后缀,看行为:刷新一下,内容变不变?带不同参数,结果一样吗?如果变了,就是动态。ASP属于后者。它从来不是静态的,只是它生成的最终产物看起来像静态的。这层伪装骗过不少人。<html> <body> <% For i = 1 To 5 %> <p>这是第 <%= i %> 段</p> <% Next %> </body> </html>
-
上一篇
-
下一篇