在学习B/S之前,写过一篇博客《走过C/S,走进B/S》。从那时开始,就认识到了B/S的与众不同。现在,B/S项目结束了,学习了很长时间,是应该整理整理B/S项目下的知识了。例如:它的工作原理,它的页面布局......那一个个绚丽的网页,都是如何实现的?
想了很久,不知道该给这篇博客写个什么标题,总觉得标题写成“B/S学习总结”很是单调。不经意间,发现这篇博客正好是自己CSDN上的第100篇博客,那么,就以此作为博客的标题啦~~顿时变得很有味道的感觉啦~~
首先,我们先来回顾一下,B/S是什么。
【What is B/S?】
毫无疑义,B/S中的B:Browser,S:Server,即我们的B/S程序的客户端就是浏览器(各种各样的浏览器,不管你是IE还是Firefox、Chrome等等),而服务端又是什么呢?服务端是指我们利用.Net平台(当然也可以是PHP、Java、Ruby、Python等)开发出来的应用程序,这些程序运行在各种Web Server上(例如:IIS、Apache、Tomcat等)。
在整个项目下来,一个牛腩新闻发布系统就让我们见识到了B/S模式的强大,一开始的时候,真的没有想到,自己可以做出一个新闻网站。
我们在学习完一个完整的牛腩新闻发布系统后,便开始了各个部分的学习。下面我们接着从客户端(Broswer)说。
【Broswer】
HTML
超文本标记语言。HTML包含HTML标签和纯文本,用于描述网页。Web浏览器的作用读取HTML文档,并且以网页的形式显示它们。
XML
可扩展标记语言,被设计用来传输和存储数据。
和HTML的关系是:使用了XML,可以使得数据和显示分离。利用XML专门负责对数据的操作,而利用HTML专门负责对页面上的显示操作。这样,在修改数据的情况下不会导致HTML文件的改动,方便维护页面。
JavaScript
一种脚本语言,通常直接嵌入HTML页面,被设计用来向HTML页面添加交互行为。没有JavaScript的话,我们只能添加各种超链接的操作,而这是远远不够的。有了JavaScript的情况下,我们可以对事件作出响应,可以被用来验证验证数据,可以被用来创建cookies......
CSS
层叠样式表,它是用于控制网页样式并允许将样式信息与网页内容分离的一种标记性语言。CSS的学习盒子模型是重点,我们调整页面布局,都需要利用其中的各种属性,如:内边距、外边距等。CSS+DIV则可以让实现结构与表示分离,通过DIV结点的ID,Class等,使得我们更容易对页面布局进行设计。
JQuery
它实际上是JavaScript的一个框架,它将经常用到的JavaScript方法进行封装,宗旨是write less,do more.
AJAX
异步JavaScript和XML。传统的Web应用程序,在接到用户的请求后,服务器直接接收处理传过来的表单,然后返回一个新的网页。如果用户前后两次请求,页面内容相差很少,页面整体刷新没有必要,就会造成很差的用户体验度。然而,通过AJAX,可以实现网页的局部刷新,使得我们可以创建更好、更快以及更友好的WEB应用程序。
客户端,所用的技术不多,但对于主要的开发框架我们还是必须了解的呀。
【Client】
在学习过程中,我们的开发都是基于.NET Framework。ASP.NET是我们Web开发框架的基础,而学习中接触的ASP.NET Web Forms是目前微软提供的主流的Web开发框架之一。除此之外,ASP.NET MVC也是主流开发框架之一。
ASP.NET
因为在B/S学习阶段,只是在牛腩新闻发布系统中与服务器端的学习有过接触,现在也觉得比较生疏了。而通过看自己之前总结的博客,也算是很快就拾起了。在《【ASP.NET】初次见面》一文中,就介绍了ASP.NET的由来和优点。
ASP.NET之Web Forms
在我们从C/S到B/S的过渡阶段来说,首先接触Web Forms开发框架也是给我们提供了很大的接受空间,因为在这里我们也都是从拖拽控件做起,添加一系列的方法。
ASP.NET之MVC
想要对MVC做一个了解,可参见博客《MVC框架》
【BS工作原理】
在对浏览器和服务器各自梳理后,接下来的一个问题也就很明显了,即浏览器和服务器是如何建立联系的,从用户的操作开始,用户在浏览器页面提交表单操作,向服务器发送请求,服务器接收并处理请求,然后把用户请求的数据(网页文件、图片、声音等)返回给浏览器,至此一次请求完成。而浏览器的请求是如何形成发送的,服务器又是如何返回的。
下面就一起来回顾BS模式下的程序的运行原理。
通过上面的图,我们很容易看到一次请求的整个过程。下面一次来看看其中的具体知识点:
HTTP协议
超文本传输协议。HTTP是客户端浏览器或其他程序与Web服务器之间的应用层通信协议。
我们在浏览器的地址栏里输入的网站地址叫做URL (Uniform Resource Locator,统一资源定位符)。当你在浏览器的地址框中输入一个URL或是单击一个超级链接时,URL就确定了要浏览的地址。浏览器通过超文本传输协议(HTTP),将Web服务器上站点的网页代码提取出来,并翻译成漂亮的网页。
HTTP协议之请求消息
指的是浏览器端向服务器端发出的请求,也就是用户对所需要资源发出的消息。
HTTP协议有很多方法可以使得客户端与服务端进行交互,常用的有几种:GET、HEAD和POST。GET方法取回由Request-URI标识的信息。HEAD方法也是取回由Request-URI标识的信息,只是可以在响应时,不返回消息体。POST方法可以请求服务器接收包含在请求中的实体信息,可以用于提交表单,向新闻组、BBS、邮件群组和数据库发送消息。
HTTP协议之响应消息
指的是服务端对客户端的消息进行回复,也就是将所需要的资源返回给用户。
HTTP协议中对响应消息也有固定的格式,在此我们对其原理机制不做研究,下面的图片是一个典型的响应消息:
【总结】
对BS的学习也有了这么长的一段时间,通过最后的整理总结,通过写下自己的第100篇CSDN博客,对BS的理论知识有了进一步的认识,对BS模式下的开发有了进一步的了解,对自己后面的学习也充满了信心。
最后给大家附上一张B/S总结导图吧: