1、Web应用框架的架构
基于请求的框架较早出现,它用以描述一个web应用程序结构的概念和传统的静态Internet站点一样,是将其机制扩展到动态内容的延伸。对一个提供HTML和图片等静态内容的网站,网络另一端的浏览器发出以URI形式指定的资源的请求,Web服务器解读请求,检查该资源是否存在于本地,如果是则返回该静态内容,否则通知浏览器没有找到。Web应用升级到动态内容领域后,这个模型只需要做一点修改。那就是web服务器收到一个URL请求(相较于静态情况下的资源,动态情况下更接近于对一种服务的请求和调用)后,判断该请求的类型,如果是静态资源,则照上面所述处理;如果是动态内容,则通过某种机制(CGI、调用常驻内存的模块、递送给另一个进程如Java容器)运行该动态内容对应的程序,最后由程序给出响应,返回浏览器。在这样一个直接与web底层机制交流的模型中,服务器端程序要收集客户端籍get或post方式提交的数据,转换,校验,然后以这些数据作为输入运行业务逻辑后生成动态的内容(包括HTML、JavaScript、CSS、图片等)。
基于组件的框架采取了另一种思路,它把长久以来软件开发应用的组件思想引入到web开发。服务器返回的原本文档形式的网页被视为由一个个可独立工作、重复使用的组件构成。每个组件都能接受用户的输入,负责自己的显示。上面提到的服务器端程序所做的数据收集、转换、校验的工作都被下放给各个组件。现代web框架基本上都采用了模型、视图、控制器相分离的MVC架构,基于请求和基于组件两种类型大都会有一个控制器将用户的请求分派给负责业务逻辑的模型,运算的结果再以某个视图表现出来,所以两大分类框架的区别主要在视图部分,基于请求的框架仍然把视图也就是网页看作是一个文档整体,程序员要用HTML、Javascript和CSS这些底层的代码来写“文档”,而基于组件的框架则把视图看作由积木一样的构件拼成,积木的显示不用程序员操心(当然它们也是由另一些程序员开发出来的),只要设置好它绑定的数据和调整它的属性,把他们大大从编写HTML、Javascript和CSS这些界面的工作中解放出来。 基于请求的和基于组件的两种框架各有优劣。虽然一眼看上去后者有很大的吸引力,普通的web开发人员只要使用专门的公司或开源组织提供的组件就可以轻松开发出好用漂亮的界面,但是有几种因素综合起来不利于这种理想中的方案。要编写一个没有潜在问题的、跨浏览器的、显示美观并且有足够灵活性可以调整的服务器端组件是需要高水平的技能、丰富的经验和较多时间的,即使付出这些成本,也不能完全避免使用者失望的情况。
综合来看,基于请求的框架要程序员自己动手的地方比较多,但也因此可以更精细地控制HTML、CSS和Javascript这些最终决定应用程序界面的代码,特别是如果要在界面上有创新,尝试新的视觉效果和用户操作,必然选择基于请求的框架。基于组件的框架可以提高开发界面的效率,前提是选用的组件质量优秀。
2、web服务器和web框架的区别
架构比前端开发更高级些,就好比盖房子一样,先把架子画出来,再进行堆积砖头等等,一座房子好不好,得看架子好不好,做网站也是一样的原理
3、什么是web开发、web开发框架?
WEB开发就比较好理解了,就是开发网页程序,不需要安装桌面程序直接通过浏览器进行操作的程序,而WIN程序是桌面程序,需要安装桌面程序进行操作。WEB框架是指哪些为了提高WEB程序开发效率而开发出来的中间件基础平台,开发人员不需要从0开始写代码,而是框架已做好了一些模板类的东西,开发人员通过调用框架来开发程序,以节省时间和成本。前端WEB框架比较有名的如Bootstrap、extjs、easyui、flex、MiniUI、jQuery UI等。现在也有一些包含了前后端的WEB开发框架,称为快速开发平台,可以更方便也开发WEB程序。
4、什么是 Web 框架
在Clojure里有大量的web框架,但是初学者应该把他们自己的服务器栈移动到Ring生态系统。我经常被Clojure的初学者问到的一个问题是“我应该使用什么web框架?”这是一个好问题。Python有Django。PHP有Drupal。当然Ruby有所有web框架之王,Ruby on Rails。在Clojure里你应该使用什么框架?实际上这个问题是难以回答的。外面有很多web框架了。有人把 Compojure 叫做框架,虽然它真正是一个类库。 lib-noir 为你做了大量工作。然而有属于你的真正框架,像 Pedestal 或 Hoplon ,它们提供基础功能和解决web开发的抽象。所有这些项目是伟大的,但是对于初学者,我不得不推荐建立你自己的web栈,从Ring开始。Compojure实际上只是一个路由类库,而不是框架。虽然有 playnice , bidi , Route One 和 gu 等其它替代品,但是你能够用它满足路由需要。如果你不想下决定,那就使用Compojure。它使用广泛、表现优秀。如果你想深入,可以看看其他文档。它们针对不同的场景各有优点。lib-noir 来自于 Noir ,后者是一个web框架(现在废弃了)。它比较容易,还为你提供了一些管道,因此你刚好借助建好的大量基础设施来开始一个项目。lib-noir是以类库形式存在的基础设施。我还没有用过,但是很多人喜欢它。然而,当我研究它的时候,我发现它提供了太多我不需要的东西,或太过琐碎。如果得到了大规模的应用(像Rails),你就能得到生态系统的效应,这通常是良性的,但是还没有这样。lib-noir被应用了,只是完全不占优势。Pedestal 有很多支持者。它的目标是通过提供使用ClojureScript、消息队列形式的、一个明智的前端环境来处理单页app。如果你需要“实时app”,它或许为是你准备的。尽管如此,我仍然警告你,它不适合Clojure初学者。Pedestal引入了大量新概念,甚至有经验的Clojure程序员也不得不去学习。 这个教程 又长又费力。如果你不了解Clojure,你去学习Pedestal会遇到问题的。Hoplon 也是为web app设计的。它为你提供了用ClojureScript实现的DOM(包括自定义组件),数据流编程(像电子表格)和客户端-服务器端通信。这是勇敢的一步,但是再一次,需要你接受花很长时间才能理解的编程模型。如果你还不熟悉Clojure,你就是在自找麻烦。外面还有其它框架。但是我推荐你考虑自己条件。如果你在学习Clojure,掌握web app如何工作的最好方法就是得到一个配置了一些基本handler的 Ring Jetty适配器。根据需要添加中间件。写一些自己的中间件。使用Compojure做路由。使用 Hiccup 生成HTML。这个安装将让你学到很多。Ring仅仅是个函数。借助一些基本概念和Ring SPEC,你可以快速建立正是你想要的web服务器,你能够全面理解它。自己建立的经历能够让你在框架如何整合上受益良多。况且,Ring有优势。大多数人写功能(以中间件或handler的形式)是以Ring为假设、而不是其它。因此保持靠近本质,你就会接近庞大的彼此兼容的、预编写的类库池。Ring就是Clojure web生态系统的所在地。
5、web后台框架包括哪些?
给大家总结介绍主流的web后端开发框架。一、Laravel
当我们谈到后端web开发框架时,laravel会出现在前面。自2011年成立以来,Laravel为开发者展示了一条光明的道路。Laravel是一个免费的开源PHP web框架,旨在按照模型-视图-控制器(MVC)架构模式构建最先进的web应用程序。
Laravel的一些特性是具有专用依赖管理器的模块化打包系统、有助于应用程序部署和维护的实用工具、访问关系数据库的许多方法,以及它面向语法的方向。这就是为什么它被认为是最好的PHP框架,并促使企业为他们的下一个项目雇佣Laravel开发人员的原因。
二、ThinkPHP
ThinkPHP是一个快速、兼容而且简单的轻量级国产PHP开发框架,诞生于2006年初,原名FCS,2007年元旦正式更名为ThinkPHP,遵循Apache2开源协议发布,从Struts结构移植过来并做了改进和完善,同时也借鉴了国外很多优秀的框架和模式,使用面向对象的开发结构和MVC模式,融合了Struts的思想和TagLib(标签库)、RoR的ORM映射和ActiveRecord模式。
ThinkPHP可以支持windows/Unix/Linux等服务器环境,正式版需要PHP5.0以上版本支持,支持MySql、PgSQL、Sqlite多种数据库以及PDO扩展,ThinkPHP框架本身没有什么特别模块要求,具体的应用系统运行环境要求视开发所涉及的模块。
三、Yii
Yii与Asp.net非常相似,也是PHP中非常出色的开源web开发框架之一。Yii框架最适合为需要执行重复任务的系统开发应用程序。这个web开发框架具有内置的基于组件的模型、数据库抽象层、事件驱动的编程特性和模块化应用程序体系结构。Yii编码器遵循快速应用开发(RAD)。
换句话说,Yii允许您在非常短的时间内启动和运行web应用程序。此外,使用Yii框架,您还可以方便地根据不断变化的业务需求定制应用程序。使用简单的数据迁移实用程序,您可以方便地在不同的安装上升级/降级应用程序版本。因此,您也可以考虑为您的web开发项目雇佣Yii开发人员。
四、Symfony
symfony是一个PHP框架,非常适合大型或复杂的企业级项目。这是一个非常稳定的框架。Symfony 3.1(当前版本)帮助全栈开发人员创建可伸缩的网站,以灵活地更改业务需求。
Symfony可以使用一些最大的开源平台,如PHPBB、Piwik和Drupal。Symfony由一组PHP组件、一个应用程序框架、一个社区和一种哲学组成,所有这些组件协同工作,帮助实现web上的一个共同目标。这些原因使得Symfony成为web开发的高级框架。
五、CakePHP
cakephpCakePHP是一个用PHP编写的开源web开发框架,从一开始就在市场上非常流行。它基于模型-控制器-视图和关联数据映射的概念。通过使用CakePHP, processionals可以轻松地以结构化和快速的方式开发web应用程序。使用CakePHP的最大优势之一是它提供了详细的文档和实用指南,以及非常容易编写代码的框架。
因此,开发人员可以使用这个框架轻松地创建web应用程序。如果您选择这个框架进行开发,那么通过编写相对较少的代码,您将能够实现更多的功能。您甚至可以通过这个框架重用旧项目的代码,从而使CakePHP web应用程序开发速度更快。
6、web框架和web服务器的区别
简单来说,web服务器(web server)的主要作用是,接收客户端请求,而web框架(web framework)则是处理web服务器收到的请求,并生成HTML内容,将生成的内容传递给web服务器,再由web服务器返回给客户端。
服务器和客户端之间的连接靠web服务器来维持,web服务器接收到请求后,将请求以及相关的参数传递给web框架,由框架负责生成内容,并将生成的内容传递给web服务器。所以web服务器的职责是接受并返回请求,web服务器的职责是内容生成。
对于Django这类的MVC 框架来说,面临的主要挑战是:易开发;对请求对象的完全访问;保持某种状态的能力;最重要的是能有写出业务级逻辑的方式。
而对于 apache, tomcat, nginx这类web 服务器来说,面临的主要挑战是并行;和数以千计的用户同时保持连接(高并发);能够在一定时间内传送大量数据(吞吐量)。
虽然Django这类的框架自带有web服务器,但是在面对以上挑战(高并发,吞吐量)时,性能太鸡肋,所以需要专门的web服务器。
7、web前端主流框架主要有哪些
现在主流的三大框架是:Angular,React,Vue。
AngularJS诞生于2009年,由Misko Hevery等人创建而成,后来被Google收购,AngularJS弥补了HTML在构建应用方面的不足,它是一款优秀的前端JS框架,通过使用标识符结构来扩展Web应用中的HTML词汇,使得开发者能够使用HTML来声明动态内容。
React 是一个 Facebook 和 Instagram 用来创建用户界面的JavaScript 库。很多人认为 React 是 MVC 中的 V(视图)。我们创造 React 是为了解决一个问题:构建随着时间数据不断变化的大规模应用程序。React 可以非常轻松地创建用户交互界面。为你应用的每一个状态设计简洁的视图,在数据改变时 React 也可以高效地更新渲染界面。
近几年最火的前端框架当属Vue.js了,Vue.js是一个构建数据驱动的 web 界面的渐进式框架。Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件,相比其它的 MVVM 框架,Vue.js 更容易上手。很多使用过vue的程序员这样评价它,“vue.js兼具angular.js和react.js的优点,并剔除了它们的缺点”。