ASP.NET编程模型
在开始介绍ASP.NET系列文章的时候,我觉得应该先谈谈HTTP,虽然ASP.NET对http做了大量的封装,我们在不知道http的情况下一样可以构建WEB应用程序,但是我觉得在大致的了解http后更有益于我们理解web程序的原诶理。
http的历史我就不介绍了,这里只是简单的介绍http,要想详细了解可以查阅其它关于http的资料
http属于TCP/IP的顶层,属于应用层协议。现在的版本为1.1,http的原理为:用户点击页面,浏览器把请求发送给服务器。服务器接受请求,处理请求后响应给客户端。这样就完成了典型的:请求----响应。所以http是状态的协议。服务器并不存储任何有关客户端的状态信息。每次的请求响应之间都是相互隔离的。一次请求响应就是一个独立完整的操作。所以在web编程的时候一定要注意无状态。与胖客户端是完全不同的。
http实质上还是以以TCP方式工作,因为首先客户端必须要找到服务器,然后连接服务器才能传输内容。在http1.1中,客户端与服务器直接持久连接,而http1.0则不行。
http的请求与响应
http请求方法一共有8中,典型的有3种
GET请求:请求获取特定的资源
POST请求:请求向指定资源提交数据进行处理(关于GET和POST的区别,我在http://www.cnblogs.com/ColeLiu/archive/2011/10/31/2230357.html有介绍)
PUT请求:想指定资源位置上传其最新内容
HEAD请求:向服务器请求获取与GET请求相一致的响应,只不过响应体将不被返回。
DELETE请求:请求删除指定的资源
OPTIONS请求:返回服务器针对特定资源所支持的http请求方法
CONNECT请求:预留给能够将连接改为管道方式的代理服务器
一般我们使用最多的就是GET和POST。我们在请求服务器的时候,实际上会以如下格式发送到服务器。
GET请求的格式,URI=http://www.google.cn/search?hl=zh-CN&username=edrick
GET /search/?hl=zh-CN&username=edrick HTTP/1.1
Host:www.google.cn
User-Agent:.... //这里为浏览器的特定信息。可以用来确定浏览器的信息
Connection:Keep-Alive
(空行)
POST请求的格式
POST /HTTP/1.1
Host:www.google.cn
User-Agent:...
Content-Type:application/x-www-form-urlencoded
Content-Length:35
Connection:Keep-Alive
(空行)
# zh-CN......(请求的附加信息,加密)
这里需要注意的是Content-Type,即MIME类型,请求主体的内容是如何编码的。即客户端与服务器使用的数据类型契约。Content-Length说明了请求主体的字节数。
http响应
HTTP/1.1 200 OK
Content-Language:zh-CN
Content-Type:text/html;charset=GB2312
.......
这里需要注意的有两点,响应的第一行都为状态行,Content-Type为数据格式。
常用的状态码
200 OK:找到了资源并且一切正常
304:该资源在上次请求之后没有任何更改。通常被缓存
401:客户端无权访问该资源
403:客户端未能获得授权,通常在401之后,用户名密码错误
404:在指定的位置不存在所申请的资源
405:不支持对应的请求方法
501:服务器不能识别请求或者未实现指定的请求
关于HTTP就先介绍到这里了。下面我们看看ASP.NET的编程模型
首先我们搞清楚什么是ASP.NET,ASP.NET为.net framerwork的一部分。它是在.net环境下快速建立web应用程序的技术,属于B/S结构的程序。那么B/S结构与传统的C/S结构(胖客户端)结构的程序有什么区别呢。C/S的程序主要的优点是计算响应的速度快,因为客户端是部署在我们的本地,利用网络与服务器通信。缺点是部署和版本更新麻烦。而B/S程序的客户端通常为不同的浏览器。我们的程序部署在服务器上,用户通过浏览器访问服务器获得内容。优点是部署更新简便,因为用户共用服务器。但是也依赖于特定的浏览器或DOM。缺点是使用的是HTTP协议,无状态。用户的操作必须经过请求-响应。用户体验不是很好,不过现在又了Ajax可以达到无刷新。

浙公网安备 33010602011771号