web开发技术初探

最近在弄wordpress, 想弄一个自己的博客,wordPress是用php写的一套博客框架,所以顺道学了一下phptutorial。

对于web开发技术中眼花缭乱的开发语言,觉得很迷惘,所以又花了写时间对一些语言进行了总结和分类,希望对以后有些帮助。

一些概念介绍:

1.      Web Server: 也可以是web Container, 用于部署webproject, 用于处理webclient 端来的请求,同时生成response返回,等等, 现有的具体的web Server 有要钱的IIS和免费的Apache。

2.      Server Side code: 是指在webServer端解析和执行的代码,现有的一些server端语言有(PHP,ASP, Perl,  JSP)。

3.      Client Side code: 是指在webclient 端(webbrowser)端解析和执行的代码,比如(JavaScript(JS),html)。

4.       Client 端代码比较常用的就是JS和html了,而Server端的语言有很多种选择,不论选择PHP,ASP, perl还是JSP, 都能处理client端返回的请求,这里不讨论哪些语言好,哪些语言不好。 对于不同的Server端语言,选择不同的web Server支持,如果 选择ASP,就选择微软的IIS作为webserver。如果 选择PHP, 选择Apache作为webserver。如果选择JSP,选择Apachetomcat 作为webserver, 选择perl语言, 就不知道用什么webserver了。

 

一般的网站的逻辑部署图如下:

 

用户通过浏览器访问网络另一端的web Server,对于一个网站来说,web Server只是作为一个后台服务的接入层,客户和后来逻辑的中间层,web server 解析Client端的http请求,webserver 访问后台相应的应用逻辑服务器,获取相应的数据和逻辑处理,webserver等待后台逻辑的返回,生成相应的httpResponse。

 

简单的Web Client 和 Web Server交互流程图:


1.      用户通过web browser访问网站,获取ClientSide的网页。

2.      Web Server找到相应的网页,分装成response返回。

3.      Web browser在得到 client side的网页时,要对网页进行渲染,解析和执行JS代码。

4.      如果需要从server端获取数据时,通过Get或则POST方法,向webServer发送httpRequest.

5.      Web Server在接收到httpRequest后,找到相应的server端代码来对httpRequest进行解析,生成相应的httpResponse 返回给web browser.

6.      Web browser在接收到http Response之后设置相应的数据,生成动态的网页。

 

Client端 JS  sample代码:

<html>
<head>
<script type="text/javascript">
//该函数会在下面选择form中被触发
function showUser(str)
{
if (str=="")
  {
 document.getElementById("txtHint").innerHTML="";
  return;
  } 
//构建httpRequest
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera,Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=newActiveXObject("Microsoft.XMLHTTP");
  }
//为httpReqest设置回调函数,当response返回时被触发
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 &&xmlhttp.status==200)
    {
   document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
    }
  }
//初始化httpRequest,通过Get方法发出Request
//指定server side的get user.php处理该Request, 同时给了个参数q
xmlhttp.open("GET","getuser.php?q="+str,true);
xmlhttp.send();
}
</script>
</head>
<body>

<form>
<select name="users"οnchange="showUser(this.value)">
<option value="">Select aperson:</option>
<option value="1">PeterGriffin</option>
<option value="2">LoisGriffin</option>
<option value="3">GlennQuagmire</option>
<option value="4">JosephSwanson</option>
</select>
</form>
<br />
<div id="txtHint"><b>Personinfo will be listed here.</b></div>

</body>
</html>


Server端PHP sample代码:

<?php
//获得Get 方法中的q参数
$q=$_GET["q"];

//链接本地数据库
$con = mysql_connect('localhost', 'peter','abc123');
if (!$con)
  {
  die('Could not connect: ' .mysql_error());
  }

mysql_select_db("ajax_demo", $con);

//构建和执行SQL语句
$sql="SELECT * FROM user WHERE id ='".$q."'";
$result = mysql_query($sql);

//构建HTTPResponse,直接echo.
echo "<table border='1'>
<tr>
<th>Firstname</th>
<th>Lastname</th>
<th>Age</th>
<th>Hometown</th>
<th>Job</th>
</tr>";

while($row = mysql_fetch_array($result))
  {
  echo "<tr>";
  echo "<td>" .$row['FirstName'] . "</td>";
  echo "<td>" .$row['LastName'] . "</td>";
  echo "<td>" .$row['Age'] . "</td>";
  echo "<td>" .$row['Hometown'] . "</td>";
  echo "<td>" .$row['Job'] . "</td>";
  echo "</tr>";
  }
echo "</table>";

//最后关闭数据库链接
mysql_close($con);
?>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值