English
 电子信箱
 加入收藏

  威盾防火墙 >> 新闻中心 >> 威盾新闻 >> 理解Web应用的工作原理

 

理解Web应用的工作原理

威盾防火墙 2015-02-16

 

大多数人在日常生活中都会用到Web应用。有时是作为假期生活的一部分,有时是为了访问E-mail、预定假期、从在线商店购买商品或是查看感兴趣的新闻消息等。Web应用的形式有很多种。

不管是用何种语言编写的Web应用,有一点是相同的:它们都具有交互性并且多半是数据库驱动的。在互联网中,数据库驱动的Web应用非常普遍。它们通常都包含一个后台数据库和很多Web页面,这些页面中包含了使用某种编程语言编写的服务器端脚本,而这些脚本则能够根据Web页面与用户的交互从数据库中提取特定的信息。电子商务是数据库驱动的Web应用的最常见形式之一。电子商务应用的很多信息,如产品信息、库存水平、价格、邮资、包装成本等均保存在数据库中。如果读者曾经从电子零售商那里在线购买过商品和产品,那么应该不会对这种类型的应用感到陌生。数据库驱动的Web应用通常包含三层:表示层(Web浏览器或呈现引擎)、逻辑层(如C#、ASP、.NET、PHP、JSP等编程语言)和存储层(如Microsoft SQL Server、MySQL、Oracle等数据库)。Web浏览器(表示层,如Internet Explorer、Safari、Firefox等)向中间层(逻辑层)发送请求,中间层通过查询、更新数据库(存储层)来响应该请求。

下面看一个在线零售商店的例子。该在线商店提供了一个搜索表单,顾客可以按特定的兴趣对商品进行过滤、分类。另外,它还提供了对所显示商品作进一步筛选的选项,以满足顾客在经济上的预算需求。可以使用下列URL查看商店中所有价格低于$100的商品:

  1. http://www.victim.com/products.php?val=100 

下列PHP脚本说明了如何将用户输入(val)传递给动态创建的SQL语句。当请求上述URL时,将会执行下列PHP代码段:

  1. // connect to the database  
  2. $conn = mysql_connect("localhost","username","password");  
  3.  
  4. // dynamically build the sql statement with the input   
  5. $query = "SELECT * FROM Products WHERE Price < '$_GET["val"]' " .  
  6.           "ORDER BY ProductDescription";  
  7.  
  8. // execute the query against the database  
  9. $result = mysql_query($query);  
  10.  
  11. // iterate through the record set  
  12. while($row = mysql_fetch_array($result, MYSQL_ASSOC))  
  13. {  
  14.     // display the results to the browser   
  15.  
  16.     echo "Description : {$row['ProductDescription']} <br>" .  
  17.        "Product ID : {$row['ProductID']} <br>" .  
  18.        "Price : {$sow['Price']} <br><br>";  

接下来的代码示例更清晰地说明了PHP脚本构造并执行的SQL语句。该语句返回数据库中所有价格低于$100的商品,之后在Web浏览器上显示并呈现这些商品以方便顾客在预算范围内继续购物。

  1. SELECT *  
  2. FROM Products  
  3. WHERE Price < '100.00'  
  4. ORDER BY ProductDescription; 

一般来说,所有可交互的数据库驱动的Web应用均以相同的(至少是类似的)方式运行。

【责任编辑:云霞 TEL:(010)68476606】


相关内容: 最新内容:
一种简单的应用架构[2015-02-16]
SQL注入攻击及其防范检测技术研究[2015-02-16]
防范SQL注入式攻击[2015-02-16]
IIS 6 的文件损坏会影响OWA[2015-02-15]
网站架设:让IIS支持PHP的配置方法[2015-02-15]
Apache扩大对微软IIS领先优势[2015-02-15]