客户端运行一种特殊的软件,叫Web浏览器。它的工作方式是:当用户键入网址,它会发送一个请求给远程的服务器主机,比如我们访问 http://www.a.com/1.aspx 那么它会告诉服务器:
HTTP 1.0
GET 1.aspx
HOST www.a.com
服务器端有一个程序在监听来自客户的请求,这个程序叫 Web Server。典型的,IIS承担了这个工作。
于是服务器听到了客户机的请求,它知道客户机请求的是 1.aspx,而 aspx 是一个需要 ASP.NET 动态解析的脚本,于是它调用 ASP.NET 解析程序(ASP.NET 解析程序可以看作 IIS 的一个插件,在早期版本内,这个插件叫 ISAPI,现在实现的机制变的复杂)
ASP.NET 知道它请求的是 1.aspx,于是在磁盘上的某个相对路径上找到这个文件,执行。
最后会合成一个 HTML 代码。
比如说:
<html><body><form action=2.aspx><input id=textbox1 type=textbox /><submit value="ok"></form></body></html>
IIS 接收了 ASP.NET
,并且回答:
HTTP 1.0 200 OK
Date: Mon,1 Jan 2010 00:00:00 GMT
Content-Length: 500
<html><body><form action=2.aspx><input id=textbox1 type=textbox /><submit value="ok"></form></body></html>
客户端浏览器接收到数据,于是将 HTML 代码显示出来。比如看到 <input> 就会画一个文本框,看到 <table> 就画一个表格。
这时候用户输入一个文本,比如 hello world,并且单击 OK 按钮提交。
浏览器就会发送另一个请求:
HTTP 1.0
POST 2.aspx
HOST www.a.com
textbox1=hello%20&submit=ok
服务器端就知道了,于是再调用 ASP.NET
ASP.NET会自动执行2.aspx
并且产生 Forms 对象,并且将textbox1=hello%20&submit=ok填入:
Forms["textbox1"] = "hello world"
Forms["submit"] = "ok"
你的脚本就看到了这个值,并且做出处理,比如写入数据库。
然后再返回客户端。
客户端和服务器端就像我们MSN聊天那样一应一答。
至于“控件”、“事件”这些全部是 ASP.NET 变的魔术而已。
关于 HTTP 稍微详细地介绍,你可以先看下:http://baike.baidu.com/view/9472.htm