欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-06-24 20:41:20
在开始文章之前,先讲一些闲言。之所以学习.net网页,主要是因为自己喜欢制作网页的过程,并且享受用html代码来完成突如其来的idea的过程,但是完成了网页别人不能使用也是一种遗憾,所以就得靠其他知...

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

 

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

 

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

 

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

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

 

图中的文档一般是指网页,所以我们在完成一个页面(比如说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三者之间的比较”,地址为:.

iis配置:

对于iis的配置过程,网上教程很多,本文不在赘述。我的电脑是windows8.1,64位操作系统,参考网址如下:.

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

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

以上就是简单的访问web服务器的过程。在这,推荐一部非常详细的关于访问web服务器的过程的文章,文章中专业术语较多。

 

 

其次,是对代码相关概念的解读。这些概念包括: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服务器控件及区别:

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

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

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

< input id="button4" type="button" value="button"runat="server"/>

是html服务器控件,此时我们点击此按钮,页面不会回传到服务器端,原因是我们没有为其定义鼠标点击事件。


我们为html服务器控件添加了一个onserverclick事件,点击此按钮页面会发回服务器端,并执行test(object sender, eventargs e)方法。


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

 

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

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

如:


<scriptlanguage=javascript>
document.write("这是用客户端脚本代码完成的")
</script>

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