‘壹’ JAVA web中 怎样调用系统的计算器
写一个Applet嵌入到页面中,然后再Applet中调用系统计算器
楼上的,请先弄清前后台代码再回答问题,你写在<%%>里面的java程序在后台执行了,如果后台使用的是window系统的话,你会在你的服务器上打开一个计算器,如果不是,等着报错吧
‘贰’ 什么是Web页
恩!对简单明了 就是网页!
‘叁’ 求解做一个Web数学计算器
简单的写了个代码,简单用了内嵌的CSS、javascript.
<html>
<head>
<title>Demo</title>
<style type="text/css">
*{margin:0px;padding:0px;}
.table1{width:300px;border:1px solid blue;background:gray;}
</style>
<script type="text/javascript">
function myCal()
{
var num = document.getElementsByTagName("input");
var oper = document.getElementsByTagName("select");
var resultp;
switch(oper[0].value)
{
case "+":
resultp=parseFloat(num[0].value)+parseFloat(num[1].value);
alert(resultp);
break;
case "-":
resultp=parseFloat(num[0].value)-parseFloat(num[1].value);
alert(resultp);
break;
case "*":
resultp=parseFloat(num[0].value)*parseFloat(num[1].value);
alert(resultp);
break;
case "/":
resultp=parseFloat(num[0].value)/parseFloat(num[1].value);
alert(resultp);
break;
default:
break;
}
}
</script>
</head>
<body>
<table class="table1">
<tr><td>请输入第一个数:</td><td><input type="text" name="num1"/></td></tr>
<tr><td>请输入第二个数:</td><td><input type="text" name="num2"/></td></tr>
<tr>
<td>
<select name="oper">
<option value="+">+</option>
<option value="-">-</option>
<option value="*">*</option>
<option value="/">/</option>
</select>
</td>
<td ><input type="submit" value="计算" onclick="myCal()"></td></tr>
</table>
</body>
</html>
‘肆’ 什么是web,具有什么特点
什么是web,具有什么特点
WEB应用程式一般为B/S模式,B/S模式有以下特点: 开发、维护和升级更经济。 提供了一致的使用者接口。 开放性强。 结构扩充套件性好,易于扩充套件。 资讯系统整合性更强。
什么是hap体系,hap具有什么特点
HACCP是食品安全管理体系~HACCP主要是预防为主的体系~全过程的控制~而不是事后检验~建议你去下载一份ISO22000-2005看看~
什么是Web2.0? 有什么特点?
什么是Web2.0
Web2.0是以Flickr、43Things.等网站为代表,以Blog、TAG、SNS、RSS、wiki等社会软体的应用为核心,依据六度分隔、xml、ajax等新理论和技术实现的网际网路新一代模式。”
Blog——部落格/网志:Blog的全名应该是Web log,后来缩写为Blog。Blog是一个易于使用的网站,您可以在其中迅速释出想法、与他人交流以及从事其他活动。所有这一切都是免费的。
RSS——站点摘要:RSS是站点用来和其他站点之间共享内容的一种简易方式(也叫聚合内容)的技术。最初源自浏览器“新闻频道”的技术,现在通常被用于新闻和其他按顺序排列的网站,例如Blog。
WIKI——网络全书:Wiki--一种多人协作的写作工具。Wiki站点可以有多人(甚至任何访问者)维护,每个人都可以发表自己的意见,或者对共同的主题进行扩充套件或者探讨。
Wiki指一种超文本系统。这种超文本系统支援面向社群的协作式写作,同时也包括一组支援这种写作的辅助工具。
网摘:“网摘”又名“网页书签”,起源于一家叫做Del.icio.us的美国网站自2003年开始提供的一项叫做“社会化书签”(Social Bookmarks)的网路服务,网友们称之为“美味书签”(Delicious在英文中的意思就是“美味的;有趣的”)。
SNS——社会网路:Social Neork Sofwaret,社会性网路软体,依据六度理论,以认识朋友的朋友为基础,扩充套件自己的人脉。
P2P——对等联网:P2P是peer-to-peer的缩写,peer在英语里有“(地位、能力等)同等者”、“同事”和“伙伴”等意义。这样一来,P2P也就可以理解为“伙伴对伙伴”、“点对点”的意思,或称为对等联网。目前人们认为其在加强网路上人的交流、档案交换、分布计算等方面大有前途。
IM——即时通讯:即时通讯(Instant Messenger,简称IM)软体可以说是目前我国上网使用者使用率最高的软体。聊天一直是网民们上网的主要活动之一,网上聊天的主要工具已经从初期的聊天室、论坛变为以MSN、QQ为代表的即时通讯软体。
RSS为Really Simple Syndication(简易供稿)的缩写,是某一站点用来和其它站点之间共享内容的一种简易方式,也叫聚合内容。网路使用者可以在客户端借助于支援RSS的新闻聚合工具软体(例如SharpReader NewzCrawler、FeedDemon RSSReader),在不开启网站内容页面的情况下阅读支援RSS输出的网站内容。可见,网站提供RSS输出,有利于让使用者发现网站内容的更新。在高速高质高效成为主流呼声的网际网路时代,RSS无疑推动了网上资讯的传播,提出了另一种看世界的方式。
RSS,原意是把网站内容如标题、连结、部分内文甚至全文转换为可延伸标示语言(XML:eXtensible Markup Language)的格式,以向其它网站供稿,使用者可以用一般的浏览器观看,也可以用特殊的“阅读器”软体来阅读。
-----------------------------------------------------------------------------------------------
历史很重要。对一个技术的学习也应当从历史出发,通过其在时间形成历史的流变,得以知晓现状,甚至能够预知未来。
那Web1.0是什么呢?
他们说,记得静态HTML的时代么?
(那个时代的应用、人们的Web体验、对社会的影响如何?)
那么动态HTML和静态HTML下的Web相比,是多少版本?1.5?对了,他们是真这么叫的。
(在效果和影响上,与1.0相比,扩充套件和加深多少?)
要呈现的资料储存在资料库中,通过Web服务端的程式,应使用者的请求,取出资料,加上事先设计的模板,动态的生成Html程式码,传送到使用者的浏览器那里。
他是1.0系列,应为使用者在浏览器中所见和Web1.0一样,它有0.5的升级,因为资料不是事先制作并发布,而是动态生成,和使用者的需要互动生成。
那好,再加0.5,到Web2.0,变化是在哪里呢?
(看到了正在崛起的和改变的,会继续朝着什么方向改变网际网路和社会呢?)
更新:关于各个版本的差别,看看亚马逊的例子。
事情没有那么幸运,Web2.0并不是一个具体的事物,而是一个阶段,是促成这个阶段的各种技术和相关的产品服务的一个称呼。所以,我们无法说,Web2.0是什么,但是可以说,那些是Web2.0。
WikiPedia的Web2.0条目下列出了这些条件:
*CSS和语义相关的XHTML标记
*AJAX技术
*SyndicationofdatainRSS/ATOM
*AggregationofRSS/ATOMdata
*简洁而有意义的URLs
*支援释出为weblog
*RESTian(preferred)或者XMLWebserviceAPIs
*一些社会性网路元素
必须具备的要素有:
*网站应该能够让使用者把资料在网站系统内外倒腾。
*使用者在网站系统内拥有自己的资料
*完全基于Web,所有的功能都能透过浏览器完成。
(以上内容引用自英文版维基网络)
虽然这只是一家之言,不过,对于其中谈到的几个要素,大家还是公认的。
-基于RSS/ATOM/RDF/FOAF等XML资料的同步、聚合和迁移。
资料不再和页面和网站混粘在一起,它独立了,它跟着使用者走。这是Web2.0的很重要特征。这也是为什么Blog是Web2.0的代表的原因。在网志上,常主角的是相互独立的一则则的网志。
独立,然后有物理表现。现在,就能让他们活跃起来。透过对XML资料的处理,这些内容能被自由的组合,被各种应用程式,不论是Web程式还是桌面程式等呈现和处理。
当然,最重要的是背后的人。
-社会性因素。
内容跟着人走,内容又能够被使用者自由的组合,也就是说,使用者能够自由的借助内容媒介,建立起一个个的社群,发生各种社会性的(网路)行为。
此外还有标签以及建立在开放标签系统之上的Folksonomy。
-第三个公认的因素是开放API,
这个技术性稍强些,得另花时间研习,可以先看看例子:amazon、flickr、googlemap等。
从Web应用的产品/服务生产者角度来说,该如何建立Web2.0的产品呢?
重要的是要抓住这么几点,一个是微内容(这里有定义),一个是使用者个体。除了这两个最基本的之外,还可以考虑社群内的分享以及提供API。
(bruce收藏的一些API内容::bruce./blog/showlog.asp?cat_id=34&log_id=709 )
微内容:英文是microcontent。使用者所生产的任何资料都算是微内容,比如一则网志,评论,图片,收藏的书签,喜好的音乐列表、想要做的事情,想要去的地方、新的朋友等等。这些微内容,充斥着我们的生活、工作和学习,它的数量、重要性,还有我们对它的依赖,并不亚于那些道貌岸然、西装革履的正统文章、论文、书籍。
对微内容的重新发现和利用,是网际网路所开创的平等、民主、自由风气的自然衍生,也是网际网路相关技术消减资讯管理成本之后的一个成果。
我们每天都生产众多的微内容,也消费着同样多的微内容。对于Web2.0来说,如何帮助使用者管理、维护、储存、分享、转移微内容,就成了关键。
使用者个体。对于Web1.0的典型产品/服务来说,使用者没有具体的面貌、个性,它只是一个模糊的群体的代名词而已。但是对于Web2.0的产品和服务来说,使用者是个实实在在的人。Web2.0所服务的,是具体的人,而不是一个如同幽灵般的概念。并且,这个人的具体性,会因为服务本身而不断地充实起来。
如何为这个具体的个体服务,是Web2.0设计的起点。
因此,一类可以被称作Web2.0的产品/服务将是这样:
服务于使用者个体的微内容的收集、建立、释出、管理、分享、合作、维护等的平台。
其他的呢?恐怕就设计到好些人提到的,微内容的XML表现;微内容的聚合;微内容的迁移;社会性关系的维护;接口的易用性等等。
以及是否就是开源、参与、个人价值、草根、合作等等?
Web2.0是许多方面起头并进又相互牵连的一个新的阶段的到来。因此,不同的人,有着不同的看法。那么,对于Web开发人员来说,Web2.0意味着什么呢?
他们说Web2.0阶段,Web是一个平台,或者说,Web正在变得可程式设计,可以执行的Web应用。野心家们设想这个它的终极目标是WebOS。
Web1.0时候,Web只是一个针对人的阅读的释出平台,Web由一个个的超文字连结而成。现在的趋势发生了变化,Web不仅仅是Html文件的天下,它成了互动的场所。
Web2.0Conference网站的横幅引用JeffBezos的话说“Web1.0i *** akingtheinterforpeople,web2.0i *** akingtheinterbetterforputers”。
具体来讲,他们说Web成为一个开发环境,借助Web服务提供的程式设计接口,网站成了软体构件。
这些,就是WebService的目标吧,资讯孤岛通过这些WebService的对话,能够被自由构建成适合不同应用的建筑来。
一些例子:del.icio.us、flickr、a9、amazon、yahoo、google、msn等提供的程式设计接口衍生出的各种应用。
为什么要开放APIs,这涉及到集市中的商业方面的技术策略。当然,还有更深层的原因,那是什么呢?
这种互动不仅体现在不同的网站服务之间,同时还体现在使用者和Web之间在浏览器上的互动。这也是为什么在美味书签的收藏中Web2.0和AJAX如此相关的一个原因。
在Web页面上使用桌面程式有的那些便利,真的是很享受的事情。这恐怕也是Web可程式设计的一个方面,Web页面不再是标记和内容混合那样的简单,它就是一个可以程式设计的地方(是这样理解吧?)
有人反对说,AJAX的使用对搜寻引擎不友好,只有Web1.0的站长才关心这个事情吧,在Web2.0时候,站长应该关心的是使用者参与的便利、使用者的自由度,至于搜寻,有RSS/ATOM/RDF等,更本用不着操心,Google不是已经顺应这个趋势,让大家主动提交了么?
可程式设计的第三个方面,是否在于Web应用和桌面应用之间的无缝连线趋势的出现?类似这里说的“从工具上,是由网际网路浏览器向各类浏览器、rss阅读器等内容发展”
程式设计的一个重要目的是对资料的操作,因此,对于网站来说,除了WebService接口之外,最近为简便方式就是将内容以RSS/RDF/ATOM格式,或者有意义的XHTML格式输出,同时实现内容和表现的分离。
[Web2.0是个历史学的概念,而非是个技术性的概念,它是对Web发展历史断代的成果。对这个概念的梳理,能帮助我更好的把握网际网路正在发生的技术与文化。]
---------------------------------------------------------------
中文网志圈谈论的Web2.0内容摘要:
-“Web2.0是用来研究现象、发现规律的东西,不是用来招商引资、搭台唱戏的东西。当越来越多的网际网路应用采取与使用者互动的方式,越来越多的内容是由使用者产生,越来越多的使用者参与到网际网路创造的过程中的时候,其实它代表了一种新的思潮。在这种思潮之下,一些新的技术开始出现,一些古老技术重新焕发了生机。随便你怎么表述这样一种现象,但现象本身是实实在在存在的,不管是叫它Web2.0,还是社会化网际网路。”[Keso:老冒给Web2.0浇了一桶冷水]
-“我觉得最有价值的一个是,web应用的资料格式开始逐渐出现了交换“标准”...这些标准...更加容易被机器自动化处理...能帮助人更好地过滤和定制化资讯。其次,更多的服务将以webservice的形式来提供,...这使得web服务可以被互相整合,从而诞生更多新的服务...人的重要性被提高了。过去web更多注重在资讯提供,而现在的越来越多的应用更加关注人,也就是所谓“社会性”。此外web的可用性改进正在被越来越重视...”[老冒:朝web2.0泼点冷水]
-“我认为Webx.x是人们为了区别不同时代Web的发展而使用的,而这些概念也是经过归纳出来的结果。抓住对方向,如Wikipedia中所提到的朝向互动及社会网路的方向发展,不论应用何种技术,只要能达到目的都是很好的。甚至作为一般的使用者,都可以不去理会Webx.x的讨论,因为我们都已经在使用这些技术或网站了。”[图书馆观点:Web2.0]
-“RSS逐渐成为线上内容提供服务的标准发行平台。Blog以及user-generated内容的兴起。MyYahoo提供的RSS整合型服务。同时提出了值得密切关注的一些发展中领域,其中包括搜寻技术,个性化,User-Generated内容(包括blog,评论,影象和声音),音乐,短视讯和Aessibility(易访问性)”[Owen:MaryMeeker新作-关于DigitalWorld的发展报告的摘取]
-“我们谈论的Web2.0带给我们的是一种可读写的网路,这种可读写的网路表现于使用者是一种双通道的交流模式,也就是说网页与使用者之间的互动关系由传统的“Push”模式演变成双向交流的“Two-WayCommunication”的模式。而对于Web服务的开发者来说,Web2.0带来的理念是服务的亲和力,可操作性,使用者体验以及可用性。”[Owen:BaCKpACK-体验可读写的Web服务]
-“web2.0是一种可以被分发的资讯概述,web文件被格式化成了web资料。我们不会再看到不同旧地资讯,现在我们所注意到是一种聚合、再混合内容的工具。”[songzhen:也说Web2.0的翻译]
-“从这些应用中可以看到:如果基于传统的HTML,同样的功能实现将变得非常复杂和不稳定,资料的再生产和交换成本是很高的。所以:RSS这个标准最终要的贡献就是使得网际网路的大部分网站变得可程式设计:类似的例子还有Blog中的:TrackBackPing等机制,这些机制都是依赖XML/RPC实现的。当初为Lucene设计一个RSS/XML的接口也是为了这个初衷,它使得全文检索服务可以轻松的嵌入到各种应用中,通过关键词将各种内容之间实现更丰富的关联(WellReferenced)。”[车东:RSS,简单协议使得网际网路可程式设计]
-“聚合的可能性以及如何更好地聚合(通常来说,更好的聚合应该基于个人知识管理和人际关系管理)很显然应该成为新一代或者说web2.0架构的核心之一。还有,你会重新发现,恰好是分散带动了聚合,聚合促进了分散,通过聚合的思维,网际网路的网路状变得越来越丰富和密集,web2.0就变得越来越有趣味,它将web1.0时代的硕大节点即入口网站不断消解,去努力创造一个更加和谐的自然网路图谱。”[Horse:rss,聚合的无数可能]
-“新的web2.0网站都依赖于使用者参与、使用者主导、使用者建设”。[Horse:Web2.0这个词]
-Keso:Web1.0与Web2.0的区别
-“表面上看,Bloglines取代了门户,成为一个新的中心,但这里有一个重大的区别。门户是只读的,它带有某种锁定的性质。你可以离开门户,但你无法带走门户的内容。Bloglines则完全不同,你觉得它好用,就会继续使用,有一天你不再喜欢Bloglines,你完全可以汇出你的OPML,到另一个RSS订阅网站,或者干脆用客户端软体浏览同样的内容。所以,像Bloglines这样的网站,是可写的,你可以汇入,也可以汇出。就像你对资讯拥有选择权,对服务提供商也同样拥有选择权,没有人可以锁定你,主动权在你自己手上。”[Keso:再说资讯选择权]
-“Flickr、del.icio.us、Bloglines等Web2.0服务,通过开放API获得了很多有趣、有用的想法,并借助外部的力量,让使用者获得了更好的体验。更多大公司也加入到开放API的潮流中,Google、Yahoo!、Amazon、Skype。Google桌面搜寻今年3月才开放API,很快就产生了大量的创造,大大扩充了可搜寻的档案格式。”[Keso:开放API]
-“归纳:web1.0天天谈门户,web2.0谈个人化;web1.0谈内容,web2.0谈应用;web1.0商业模式,web2.0谈服务;web1.0谈密闭、大而全,web2.0大家谈开放、谈联合;web1.0网站中心化,web2.0谈个人中心化;web1.0一对一,web2.0谈社会性网路;web1.0不知道你是狗,web2.0你去年夏天干了什么我一清二楚甚至想要干什么呢。。。”[van_wuchanghua:发现了N.HOOLYWOOD,我还知道你今年夏天要干什么]
-“我认为Web2.0有下面几个方面的特性:个性化的传播方式.读与写并存的表达方式.社会化的联合方式.标准化的创作方式.便捷化的体验方式.高密度的媒体方式.”[飞戈:Web2.0与未来的网路]
-“用RAILS写的网站带有典型的读写网路的特征:RAILS建立的三个架构中的ACTIVERECORD这个模组中,如果你读读它最重要的基类ActiveRecord::Base,你会发现有CREAT,EDIT,SAVE,DESTROY这些方法已经天然包含在内了,这让实现一个数据库的CRUDS行为变得如此简单。由于这些类的方法直接和网页的名称对映到一起,这使得网页本身就像一个可以编缉的资料库的资料项。”[Blogdriver:RUBYONRAILS,wEB2.0世界新生的创造力]
-“Greasemonkey一定名列前茅。这个通过UserScript就能修改任何网页输出效果的外挂极大的提高了使用者阅读的自主性,一推出就引起了轰动,同时也引来了不少争议。”[Webleon:platypus,完全可写的网际网路]
-“Web1.0到Web2.0的转变,具体的说,从模式上是单纯的“读”向“写”、“共同建设”发展;从基本构成单元上,是由“网页”向“发表/记录的资讯”发展;从工具上,是由网际网路浏览器向各类浏览器、rss阅读器等内容发展;执行机制上,由“ClientServer”向“WebServices”转变;作者由程式设计师等专业人士向全部普通使用者发展;应用上由初级的“滑稽”的应用向全面大量应用发展。”[Don:Web2.0概念阐释]
Web2.0阶段的一个重要特征是开放,和Web初期的开放有很大不同,有以下几种突出的表现:
内容方面。
-内容的创作共用授权。它的广谱和可选择性,让它具有了足够的生命力。CC先是在网志圈中广泛采用,后来许多商业公司也纷纷采用CC方式(比如BBC);先是文字世界采用,后来逐渐推广到了多媒体世界,比如音讯、视讯、Flas *** 等等。一场自由的文化(freeculture)运动在各个方面悄然铺开。
-内容来源方面的开放。和早期的Web阶段相比,由于使用相关装置的成本降低,利用相关技术的门槛减低,人们可以自由生产并发布各种内容,比如文字资讯,比如语音记录,比如视讯录制等。资讯的生产和传播不再仅仅是商业资本或者技术精英的特权。在Web的新阶段,原来在商业、技术与大众之间的资讯生产和传播的落差被削平。消除资讯垄断和去中心化已经成为可能。不仅如此,资讯的生产和消费的模式也发生了变化,从原来的生产/消费的对立,变成了参与式的资讯集市。
Web主体方面。
-商业网站也渐渐采取了开放的、参与的模式。除了内容上的CC授权出现之外。原来并不外露的内容,也随着blog、podcasting等的兴盛而对外开放。一些网站还在技术层面开放,比如开放原始码,比如开放APIs(程式设计接口),让自己成为一个平台,让使用者可以参与衍生产品的创造,使用者本身也是产品的生产者。不仅是内容、技术层面,在鼓励使用者的参与上,也有相应的开放出现,比如一些新闻网站的RSS源的输出、引用通告(trackback)功能的采纳、blogthis便利的提供,无一不是让使用者参与到内容生产、传播的各个环节。
-个人资讯层面的开放。有开放,才有交流,才有社会行为和形态产生。个人内容的开放是与一类Web2.0服务的兴起有关。它涵盖了内容(文字、声音、影像、视讯)、关系、行为等等。
什么是顺序表,它具有什么特点
一、顺序表是在计算机记忆体中以阵列的形式储存的线性表,是指用一组地址连续的储存单元依次储存资料元素的线性结构。线性表采用顺序储存的方式储存就称之为顺序表。顺序表是将表中的结点依次存放在计算机记忆体中一组地址连续的储存单元中。
二、顺序表特点:将表中元素一个接一个的存入一组连续的储存单元中,这种储存结构是顺序结构。
采用顺序储存结构的线性表简称为“ 顺序表”。顺序表的储存特点是:只要确定了起始位置,表中任一元素的地址都通过下列公式得到:LOC(ai)=LOC(a1)+(i-1)*L 1≤i≤n 其中,L是元素占用储存单元的长度。
什么是基因突变?它具有什么特点
一个基因内部遗传结构的改变。又称为点突变,通常可引起一定的表型变化。野生型基因通过突变成为突变型基因。突变型一词既指突变基因,也指具有这一突变基因的个体。
任何型别的突变,都具有随机性、稀有性和可逆性等共同的特性。
特点:
①随机性。指基因突变的发生在时间上、在发生这一突变的个体上、在发生突变的基因上,都是随机的。在高等植物中所发现的无数突变都说明基因突变的随机性。在细菌中则情况远为复杂。
②稀有性。突变是极为稀有的,野生型基因以极低的突变率发生突变。
④少利多害性。一般基因突变会产生不利的影响,被淘汰或是死亡,但有极少数会使物种增强适应性。
什么是第二代IPD?具有什么特点?
第二代IPD即eIPD.
eIPD:是IPD(Integrated Proct Development 整合产品开发)理论的升级是第二代IPD;eIPD继承IPD理论的思想、方法,使用现代IT手段与工具将Integrated Proct Development 整合产品开发理论拓展成为eIPD。
eIPD理论来源
美国PRTM公司提出 “PACE——Proct And Cycle-time Excellence”后,提出ePACE概念。PACE对应于IPD,其管理重点在于“关注点在于改善产品的上市时间”;ePACE对应于eIPD,不仅关注点在于改善产品的上市时间而且“关注在于研发生产力的改善”。
eIPD与IPD理论的差异
eIPD继承了IPD所有理论基础,eIPD解决了纸面化的IPD咨询文件不能落地到日常业务运作问题。让企业IPD流程100%得到执行,IPD流程100%控制监控、保证IPD流程100%不会变形与退化。
螳螂具有什么特点
螳螂(mantis)亦称刀螂,无脊椎动物。属于昆虫纲、有翅亚纲、螳螂科,是一种中至大型昆虫,头三角形且活动自如,复眼大而明亮;触角细长;颈可自由转动。前足腿节和胫节有利刺,胫节镰刀状,常向腿节摺叠,形成可以捕捉猎物的前足;前翅皮质,为覆翅,缺前缘域,后翅膜质,臀域发达,扇状,休息时叠于背上;腹部肥大。除极地外,广布世界各地,尤以热带地区种类最为丰富。
‘伍’ 第五章:Web服务器
5.1各种形状和尺寸的Web服务器
Web服务器会对HTTP请求进行处理并提供响应。术语“Web服务器”可以用来表示Web服务器的软件,也可以用来表示提供Web页面的特定设备或计算机。
Web服务器有着不同的风格、形状和尺寸。有普通的10行Perl脚本的Web服务器、50MB的安全商用引擎以及极小的卡上服务器。但不管功能有何差异,所有的 Web服务器都能够接收请求资源的 HTTP请求,将内容回送给客户端(参见图1-5)。
5.1.1Web服务器的实现
Web服务器实现了HTTP和相关的TCP连接处理。负责管理Web服务器提供的资源,以及对Web服务器的配置、控制及扩展方面的管理。
Web服务器逻辑实现了HTTP 协议、管理着Web资源,并负责提供Web服务器的管理功能。Web服务器逻辑和操作系统共同负责管理TCP连接。底层操作系统负责管理底层计算机系统的硬件细节,并提供了TCP/IP网络支持、负责装载Web资源的文件系统以及控制当前计算活动的进程管理功能。
5.3实际的Web服务器会做些什么
例5-1显示的 Perl服务器是一个Web服务器的小例子。最先进的商用Web服务器要比它复杂得多,但它们确实执行了几项同样的任务,如图5-3所示。
(1)建立连接一—接受一个客户端连接,或者如果不希望与这个客户端建立连接,就
将其关闭。
(2)接收请求——从网络中读取一条HTTP请求报文。(3)处理请求——对请求报文进行解释,并采取行动。(4)访问资源-———访问报文中指定的资源。
(5)构建响应——创建带有正确首部的 HTTP响应报文。(6)发送响应——将响应回送给客户端。
(7)记录事务处理过程—-将与已完成事务有关的内容记录在一个日志文件中。
5.4第一步——接受客户端连接
如果客户端已经打开了一条到服务器的持久连接,可以使用那条连接来发送它的请求。否则,客户端需要打开一条新的到服务器的连接(回顾第4章,复习一下HTTP的连接管理技术)。
5.4.1处理新连接
客户端请求一条到Web服务器的TCP连接时,Web服务器会建立连接,判断连接的另一端是哪个客户端,从TCP连接中将IP地址解析出来。'一旦新连接建立起来
并被接受,服务器就会将新连接添加到其现存Web服务器连接列表中,做好监视连接上数据传输的准备。
Web服务器可以随意拒绝或立即关闭任意一条连接。有些Web服务器会因为客户端IP地址或主机名是未认证的,或者因为它是已知的恶意客户端而关闭连接。Web服务器也可以使用其他识别技术。
5.4.2客户端主机名识别
可以用“反向 DNS”对大部分Web服务器进行配置,以便将客户端IP地址转换成客户端主机名。Web服务器可以将客户端主机名用于详细的访问控制和日志记录。但要注意的是,主机名查找可能会花费很长时间,这样会降低Web事务处理的速度。很多大容量Web服务器要么会禁止主机名解析,要么只允许对特定内容进行解析。
可以用配置指令HostnameLookups启用Apache的主机查找功能。比如,例5-2中的Apache配置指令就只打开了HTML和CGI资源的主机名解析功能。
例5-2配置Apache,为 HTML和CGI资源查找主机名
HostnameLookups off
<Files ~" - 《html |htmlcgi)$">
HostnameLookups on
</Files>
5.5第二步—接收请求报文
连接上有数据到达时,Web服务器会从网络连接中读取数据,并将请求报文中的内容解析出来(参见图5-5)。
解析请求报文时,Web服务器会:
·解析请求行,查找请求方法、指定的资源标识符(URI)以及版本号,3各项之
间由一个空格分隔,并以一个回车换行(CRLF)序列作为行的结束,“
·读取以CRLF结尾的报文首部;
检测到以CRLF结尾的、标识首部结束的空行(如果有的话)﹔
·如果有的话(长度由content-Length首部指定),读取请求主体。
解析请求报文时,Web服务器会不定期地从网络上接收输入数据。网络连接可能随时都会出现延迟。Web服务器需要从网络中读取数据,将部分报文数据临时存储在内存中,直到收到足以进行解析的数据并理解其意义为止。
5.5.1 报文的内部表示法
有些Web服务器还会用便于进行报文操作的内部数据结构来存储请求报文。比如,数据结构中可能包含有指向请求报文中各个片段的指针及其长度,这样就可以将这些首部存放在一个快速查询表中,以便快速访问特定首部的具体值了(参见图5-6)。
5.5.2连接的输入/输出处理结构
高性能的 Web服务器能够同时支持数千条连接。这些连接使得服务器可以与世界各地的客户端进行通信,每个客户端都向服务器打开了一条或多条连接。某些连接可能在快速地向Web服务器发送请求,而其他一些连接则可能在慢慢发送,或者不经常发送请求,还有一些可能是空闲的,安静地等待着将来可能出现的动作。
因为请求可能会在任意时刻到达,所以Web服务器会不停地观察有无新的Web请求。不同的Web服务器结构会以不同的方式为请求服务,如图5-7所示。
·单线程Web服务器(参见图5-7a)
单线程的Web服务器一次只处理一个请求,直到其完成为止。一个事务处理结束之后,才去处理下一条连接。这种结构易于实现,但在处理过程中,所有其他连接都会被忽略。这样会造成严重的性能问题,只适用于低负荷的服务器,以及type-o-serve这样的诊断工具。
·多进程及多线程Web服务器(参见图5-7b)
多进程和多线程Web服务器用多个进程,或更高效的线程同时对请求进行处理。3可以根据需要创建,或者预先创建一些线程/进程。°有些服务器会为每条连接分配一个线程/进程,但当服务器同时要处理成百、上千,甚至数以万计的连接时,需要的进程或线程数量可能会消耗太多的内存或系统资源。因此,很多多线程Web服务器都会对线程/进程的最大数量进行限制。
·复用I/O的服务器(参见图5-7c)
为了支持大量的连接,很多Web服务器都采用了复用结构。在复用结构中,要同时监视所有连接上的活动。当连接的状态发生变化时(比如,有数据可用,或出现错误时),就对那条连接进行少量的处理,处理结束之后,将连接返回到开放连接列表中,等待下一次状态变化。只有在有事情可做时才会对连接进行处理,在空闲连接上等待的时候并不会绑定线程和进程。
·复用的多线程Web服务器(参见图5-7d)
有些系统会将多线程和复用功能结合在一起,以利用计算机平台上的多个CPU.多个线程(通常是一个物理处理器)中的每一个都在观察打开的连接(或打开的连接中的一个子集),并对每条连接执行少量的任务。
5.6第三步———处理请求
一旦Web服务器收到了请求,就可以根据方法、资源、首部和可选的主体部分来对请求进行处理了。
有些方法(比如POST)要求请求报文中必须带有实体主体部分的数据。其他一些方法(比如OPTIONS)允许有请求的主体部分,也允许没有。少数方法(比如GET)禁止在请求报文中包含实体的主体数据。
这里我们并不对请求的具体处理方式进行讨论,因为本书其余大多数章节都在讨论这个问题。
5.7第四步——-对资源的映射及访问
Web 服务器是资源服务器。它们负责发送预先创建好的内容,比如HTML页面或JPEG 图片,以及运行在服务器上的资源生成程序所产生的动态内容。
5.7.1 docroot
Web服务器支持各种不同类型的资源映射,但最简单的资源映射形式就是用请求URI作为名字来访问Web服务器文件系统中的文件。通常,Web服务器的文件系统中会有一个特殊的文件夹专门用于存放Web内容。这个文件夹被称为文档的根目录(document root,或docroot)。Web服务器从请求报文中获取URI,并将其附加在文档根目录的后面。
在图5-8中,有一条对/specials/saw-blade.gif 的请求到达。这个例子中Web服务器的文档根目录为/us/local/httpd/files。Web服务器会返回文件/usr/local/httpd/files/specials/saw-blade.gif。
在配置文件httpd.conf中添加一个 DocumentRoot行就可以为Apache Web服务器设置文档的根目录了:
DocumentRoot /usr/ local/httpd/files
服务器要注意,不能让相对URL退到docroot之外,将文件系统的其余部分暴露出来。比如,大多数成熟的Web服务器都不允许这样的URI看到Joe的五金商店文档根目录上一级的文件:
http://www.joes-hardware.com/ ..
5.8.3重定向
Web服务器有时会返回重定向响应而不是成功的报文。Web服务器可以将浏览器重定向到其他地方来执行请求。重定向响应由返回码3XX说明。Location响应首部包含了内容的新地址或优选地址的URI。重定向可用于下列情况。
·永久删除的资源
资源可能已经被移动到了新的位置,或者被重新命名,有了一个新的URL。Web服务器可以告诉客户端资源已经被重命名了,这样客户端就可以在从新地址获取资源之前,更新书签之类的信息了。状态码301 Moved Permanently就用于此类重定向。·临时删除的资源
如果资源被临时移走或重命名了,服务器可能希望将客户端重定向到新的位置上去。但由于重命名是临时的,所以服务器希望客户端将来还可以回头去使用老的URL,不要对书签进行更新。状态码303 See Other以及状态码307 TemporaryRedirect就用于此类重定向。
‘陆’ 计算机web技术介绍
计算机web技术介绍
Web 客户端的主要任务是展现信息内容。Web客户端设计技术主要包括:HTML语言、Java Applets、 脚本程序、 CSS、 DHTML、插件技术以及VRML技术。下面是我给你带来的web技术相关知识,欢迎阅读!
1) HTML语言。
HTML是Hypertext Markup Language(超文本标记语言)的缩写,它是构成Web页面的主要工具。
2)Java Applets,
即Java 小应用程序。使用 Java语言创建小应用程序, 浏览器可以将Java Applets从服务器下载到浏览器,在浏览器所在的机器上运行。Java Applets可提供动画、音频和音乐等多媒体服务。1996年,着名的 Netscape浏览器在其2.0版本中率先提供了对Java Applets的支持,随后,Microsoft的IE3.0也在这一年开始支持Java技术。Java Applets使得Web页面从只能展现静态的文本或图像信息,发展到可以动态展现丰富多样的信息。动态Web页面,不仅仅表现在网页的视觉展示方式上,更重要的是他可以对网页中的内容进行控制与修改。
3)脚本程序。
他是嵌入在HTML文档中的程序。使用脚本程序可以创建动态页面,大大提高交互性。用于编写脚本程序的语言主要有JavaScript和VBScript。JavaScript由Netscape公司开发,具有易于使用、变量类型灵活和无须编译等特点。VBScript由Microsoft公司开发,与JavaScript一样,可用于设计交互的Web页面。要说明的是,虽然JavaScript和VBScript语言最初都是为创建客户端动态页面而设计的,但他们都可以用于服务端脚本程序的编写。客户端脚本与服务端脚本程序的区别在于执行的位置不同,前者在客户端机器执行,而后者是在Web服务端机器执行。
4) CSS(Cascading Style Sheets),
即级联样式表。通过在HTML文档中设立样式表,可以统一控制HTML中各标志显示属性。1996年底,W3C提出了CSS的建议标准,同年,IE3.0引入了对CSS的支持。CSS大大提高了开发者对信息展现格式的控制能力,1997年的Netscape4.0不但支持CSS,而且增加了许多Netscape公司自定义的动态HTML标记,这些标记在CSS的基础上,让HTML页面中的各种要素“活动”了起来。
5) DHTML(Dynamic HTML),
即动态HTML。1997年,Microsoft发布了IE4.0,并将动态HTML标记、CSS和动态对象(Dynamic Object Model)发展成为一套完整、实用、高效的客户端开发技术体系,Microsoft称其为DHTML。同样是实现HTML页面的动态效果,DHTML技术无须启动Java虚拟机或其他 脚本环境,可以在浏览器的支持下,获得更好的展现效果和更高的执行效率。
6) 插件技术。
这一技术大大丰富了浏览器的多媒体信息展示功能,常见的插件包括QuickTime、Realplayer、Media Player和Flash等。为了在HTML页面中实现音频、视频等更为复杂的多媒体应用,1996年的Netscape2.0成功地引入了对QuickTime插件的支持,插件这种开发方式也迅速风靡了浏览器的世界。同年,在Windows平台上,Microsoft将COM和 ActiveX技术应用于 IE浏览器中,其推出的IE3.0正式支持在HTML页面中插入 ActiveX控件,这为其他厂商扩展Web客户端的信息展现方式提供了方便的途径。1999年,Realplayer插件先后在Netscape和IE浏览器中取得了成功,与此同时,Microsoft自己的媒体播放插件Media Player也被预装到了各种Windows版本之中。同样具有重要意义的还有Flash插件的问世:20世纪90年代初期,Jonathan Gay在FutureWave公司开发了一种名为Future Splash Animator 的二维矢量动画展示工具,1996年,Macromedia公司收购了FutureWave,并将Jonathan Gayde 的发明改名为我们熟悉的Flash。从此, Flash动画成了Web开发者表现自我、展示个性的最佳方式。
7)VRML技术。Web已经由静态步入动态,并正在逐渐由二维走向三维,将用户带入五彩缤纷的虚拟现实世界。VRML是目前创建三维对象最重要的工具,它是一种基于文本的语言,并可运行于任何平台。
Web服务端技术
与Web客户端技术从静态向动态的演进过程类似,Web 服务端的开发技术也是由静态向动态逐渐发展、完善起来的。Web服务器技术主要包括服务器、CGI、 PHP、ASP、ASP.NET、Servlet和JSP技术。
1)服务器技术。
主要指有关Web服务器构建的基本技术,包括服务器策略与结构设计、服务器软硬件的.选择及其他有关服务器构建的问题。
2) CGI(Common Gateway Interface)技术,
即公共网关接口技术。最早的Web服务器简单地响应浏览器发来的 HTTP请求,并将存储在服务器上的 HTML文件返回给浏览器。CGI是第一种使服务器能根据运行时的具体情况,动态生成HTML页面的技术。1993年,NCSA(National Center 佛日Supercomputing Applications)提出CGI1.0 的 标准草案,之后分别在1995 年和1997年,制定了CGI1.1和1.2标准。CGI技术允许服务端的 应用程序根据客户端的请求,动态生成HTML页面,这使客户端和服务端的动态信息交换成为了可能。随着CGI技术的普及,聊天室、论坛、电子商务、信息查询、全文检索等各式各样的Web应用蓬勃兴起,人们可以享受到信息检索、信息交换、信息处理等各更为便捷的信息服务了。
3) PHP(Personal Home Page Tools)技术。
1994年,Rasmus Lerdorf发明了专用于Web服务端编程的PHP语言。与以往的CGI程序不同,PHP语言将HTML代码和PHP指令合成为完整的服务端动态页面,Web应用的开发者可以用一种更加简便、快捷的方式实现动态Web功能。
4) ASP(Active Server Pages)技术,
即活动服务器页面技术。1996年,Microsoft借鉴Php的思想,在其Web服务器IIS 3.0中引入了ASP技术。ASP使用的脚本语言是我们熟悉的VBScript和Javascript。借助Microsoft Visual Studio等开发工具在市场上的成功,ASP迅速成为Windows系统下Web服务端的主流开发技术。
5)ASP.NET技术。
由于它使用C#语言代替ASP技术的JavaScripe脚本语言,用编译代替了逐句解释,提高了运行效率,ASP.NET是建立.NET Framework的公共语言运行库上的编程框架,可用于在服务器上生成功能强大的Web应用程序,代替以前在WEB网页中加入ASP脚本代码,使界面设计与程序设计以不同的文件分离,复用性和维护性得到提高,已经成为面向下一代企业级网络计算的Web平台,是对传统ASP技术的重大升级和更新。
6) Servlet、 JSP技术。
以Sun公司为首的Java阵营于1997和1998年分别推出了Servlet和JSP技术。JSP的组合让Java开发者同时拥有了类似CGI程序的集中处理功能和类似PHP的HTML嵌入功能,此外,Java的运行时编译技术也大大提高了Servlet和JSP的执行效率。Servlet和JSP被后来的JavaEE平台吸纳为核心技术。
;