ASP.NET网络编程学习第一步:清晰概念

    在开始文章之前,先讲一些闲言。之所以学习.net网页编程,主要是因为自己喜欢制作网页的过程,并且享受用html代码来完成突如其来的idea的过程,但是完成了网页别人不能使用也是一种遗憾,所以就得靠其他知识了,其中就包括使用.net进行网页制作。需要说明的是,我是一个初学者,在弄清楚这部分知识之后,将自己对于这部分知识的理解以及学习过程中遇到的问题写下来,供大家参考。必不可免,自己会有一些学习上的错误,如果读者在参考过程中发现这些错误,欢迎指正。


    第一步的学习,必须清晰相关概念。


    首先,传输相关概念的解读。相对而言,网站网页比较容易理解,网站是指网页的集合,可以方便地对网页进行管理。网页是用html等工具制作的用于展示特定内容的文档,其可分为静态页和动态页。静态页内容是预先确定的,并存储在Web服务器或者本地计算机/服务器之上。动态网页,是取决于由用户提供的参数,并根据存储在数据库中的网站上的数据中创建的页面。通俗地讲,静态页是照片,每个人看都是一样的,而动态页则是镜子,不同的人(不同的参数)看都不相同。


    本地客户端或本地浏览器均是指用户(也就是我们)正在使用的电脑上的浏览器,比如ie、firefox、Google等;web服务器一般指网站服务器,是指驻留于因特网上某种类型计算机的程序,可以向浏览器等Web客户端提供文档,也可以放置网站文件,让全世界浏览;可以放置数据文件,让全世界下载。目前最主流的三个Web服务器是Apache、Nginx、IIS。(web服务器概念是我从百度百科上粘贴过来的,概念中的web客户端指的是上文所说的本地客户端或本地浏览器)简单来说,用户访问一个网页的过程如下图所示:

ASP.NET网络编程学习第一步:清晰概念_第1张图片


    图中的文档一般是指网页,所以我们在完成一个页面(比如说index.html)之后,为了让其他人可以浏览,必须将其上传至特定web服务器。其他用户通过使用浏览器,向服务器发出web请求,服务器找到index.html文件,然后将其发送到用户的浏览器,浏览器通过解释html代码,将整个页面呈现出来。而我们使用网页编辑工具,比如sublime text或者Dreamweaver编辑好页面之后,直接在本地浏览器上观看的过程和上述过程没有任何联系,初学者需要注意。

    读到这里,应该比较清楚知道web服务器的作用了。Web服务器是一段程序,在客户端请求之后为客户端提供文档或其他数据文件。这种简单解释对于之后理解Apache和IIS会有帮助。

    之前所说,三个主流web服务器分别是Apache、IIS和Nginx,Nginx适用于linux和Unix系统,故此本文将不介绍。IIS支持ASP语言环境,本文将重点介绍IIS,并对Apache和IIS进行比较。

    IIS(Internet InformationServer,互联网信息服务)是微软公司的web服务器,其是一种Web(网页)服务组件,其中包括Web服务器、FTP服务器、NNTP服务器和SMTP服务器,分别用于网页浏览、文件传输、新闻服务和邮件发送等方面,它使得在网络(包括互联网和局域网)上发布信息成了一件很容易的事。


    Apache和IIS比较:


    如果是基于Linux平台的话,那不必多说自然是Apache了,因为IIS只能在Windows环境下运行,而Linux+Apache的整体性能、安全性、通用性也都强于Windows 2003+IIS 6.0,不过如果在Windows 2003的服务器上,IIS 6.0和Apache 2.2.6到底哪个性能最好呢?有大神做过测试,如果一个网站的大部分页面都是静态页面,那么Apache和IIS两者性能基本相同。而如果动态页面居多,那如果都在windows 2003服务器上,微软IIS比Apache性能好,但是Apache比较稳定,而IIS有时假死。对于其功能的详细说明和比较,本文将不再赘述,有兴趣的读者可以参考“一梦三四年”的博客:“web服务器之IIS,apache,tomcat三者之间的比较”,地址为:http://1035054540-qq-com.iteye.com/blog/1278803.

    IIS配置:

对于IIS的配置过程,网上教程很多,本文不在赘述。我的电脑是windows8.1,64位操作系统,参考网址如下:http://jingyan.baidu.com/article/0a52e3f4000e06bf63ed726a.html.

在配置完成之后,在浏览器输入栏中输入:192.168.191.1:81(本机ip+端口,端口默认为80,此处我将其设计为81,对测试结果不影响),就可以预览之前完成的页面。此时,用另一台电脑,ip任意,都可访问该网页。(注意:必须关闭配置电脑的防火墙,其他电脑才可访问)这个时候,如果用配置电脑中的浏览器直接访问,那么配置电脑既是web服务器,也是客户端;如果用其他电脑访问,那么其他电脑是客户端,配置电脑是服务器。


    以上就是简单的访问web服务器的过程。在这,推荐一部非常详细的关于访问web服务器的过程的文章,文章中专业术语较多,有兴趣可以移步:http://www.360doc.com/content/11/0121/15/2614615_88098027.shtml.


 

    其次,是对代码相关概念的解读。这些概念包括:HTML代码、JS代码、HTML控件、HTML服务器控件、Web服务器控件以及他们的区别。


    1、HTML代码:

    HTML是指超文本标记语言,是构成网页文档的主要语言。HTML的结构包括头部(Head)、主体(Body)两大部分,它是一种描述性文本,由HTML命令组成,用来说明文本、图形、动画、视频等在网页上如何显示。需要说明的是,HTML代码需要浏览器来解读才能将内容显示给用户。


    2、JS代码:

    JS即Javascript,Javascript是一种由Netscape的LiveScript发展而来的脚本语言,主要目的是为了解决服务器终端语言,比如Perl,遗留的速度问题。当时服务端需要对数据进行验证,由于网络速度相当缓慢,只有28.8kbps,验证步骤浪费的时间太多。于是Netscape的浏览器Navigator加入了Javascript,提供了数据验证的基本功能。(参考百度百科)

    HTML代码和JS代码的区别:

    不同点:扩展名不同、运行环境不同(HTML:浏览器、JS:JS解释器)

    相同点:都是客户端代码


    3、HTML控件、HTML服务器控件以及Web服务器控件及区别:

    对于这三者的详解以及不同点的区分,这篇博客已经讲的非常清楚:http://developer.51cto.com/art/200908/141256.htm.

    读完之后,可以大概总结出这样几点:

    Html控件和html服务器控件主要区别在于:Html服务器控件多了runat=”server”属性;

    Html控件运行在客户端,html服务器控件运行在服务器端;当ASP.NET 网页执行时,会检查标注有无runat 属性,如果标注没有设定,那么Html标注就会被视为字符串,并被送到字符串流等待送到客户端,客户端的浏览器会对其进行解释;如果Html标注有设定runat="server" 属性,Page 对象会将该控件放入控制器,服务器端的代码就能对其进行控制,等到控制执行完毕后再将Html服务器控件的执行结果转换成Html标注,然后当成字符串流发送到客户端进行解释。

    ASP.NET服务器控件和HTML服务器控件不同点主要在于事件处理模型不同。Html标注和Html服务器控件的事件处理都是在客户端的页面上,而Asp.net服务器控件则是在服务器上,举例来说:

<span style="font-family:Microsoft YaHei;">< input id="Button4" type="button" value="button"runat="server"/></span>

是Html服务器控件,此时我们点击此按钮,页面不会回传到服务器端,原因是我们没有为其定义鼠标点击事件。
<span style="font-family:Microsoft YaHei;"><input id="Button4" type="button"value="button" runat="server"onserverclick="test" /></span>

我们为Html服务器控件添加了一个onserverclick事件,点击此按钮页面会发回服务器端,并执行test(object sender, EventArgs e)方法。
<span style="font-family:Microsoft YaHei;"><input id="Button4" type="button"value="button" runat="server"onserverclick="test" /></span>

是Asp.net服务器控件,并且我们没有为其定义click,但是我们点击时,页面也会发回到服务器端。


    4、服务器代码和客户端代码的区别:

    客户端代码是指运行在客户端浏览器中的代码,如html静态网页文件中的javascript或vbscript脚本代码,使用时要用<scriptlanguage=javascript> 和</script>将代码括起来,当用户访问到服务器上的这种文件时,服务器会将文件找到后直接发到客户端,客户在浏览器中就可以看到这种文件的结果.

如:

<span style="font-family:Microsoft YaHei;"><html>
<body>
<scriptlanguage=javascript>
  document.write("这是用客户端脚本代码完成的")
</script>
</body>
</html></span>

    服务器端代码是指运行在服务器上的文件中的代码,如动态网页asp文件,也可以是javascript或vbscript脚本代码,但是代码要用<script language=JavaScript runat=Server> 和</script>,或者用<%和%>将代码括起来,当用户访问这种文件时,服务器找到后会先在服务器上运行该文件,并将运行的结果动态地生成html文件,再发送到客户端,用户在浏览中就能看到它的运行结果了.

如:

<span style="font-family:Microsoft YaHei;"><html>
<body>
<%
  Response.write("这是用服务器端代码完成的")
%>
</body>
</html></span>


你可能感兴趣的:(ASP.NET网络编程学习第一步:清晰概念)