前言
两个月前做了这样的决定,当别人再问我的职业方向是什么时,我会毫不犹豫地和他说web前端开发。在那之前有人问只是简单地说了句没定,其实是不想定,因为不甘心定格在一个方向,人嘛,总是贪心的。为什么会有这样的转变呢,这里就不扯了。“web”、“web app”,看起来很简单、很熟悉的字眼,相信大家现在都身处其中,而且深深不能自拔。但是,扪心自问,你了解它们么?对了这个问题,本人那时候纠结了好几天,幸好最后有了自己的理解,正文部分是本人的梳理后的思路。
正文
要了解web app,先要了解web,而要了解web,首先要了解Internet。
一、什么是Internet?
Internet(中文:互联网),又称网际网络,或音译因特网、英特网,是网络与网络之间所串连成的庞大网络,这些网络以一组通用的协定相连,形成逻辑上的单一巨大国际网络。这种将计算机网络互相联接在一起的方法可称作“网络互联”。
Internet的简史(相信学习过计算机网络的同学对这部分都可以倒背如流了,因此这里不做详细介绍):
1946年第一台电子数字计算机在美国宾夕法尼亚大学实验室诞生;
60年代 Internet 前身 ARPANET 诞生;
70年代网络体系结构与网络协议的标准化;
90年代至今,Internet飞速发展。
二、Internet有什么用呢?
举一些大家熟得不能再熟的应用:
1、接发电子邮件,这是最早也是最广泛的网络应用。由于其低廉的费用和快捷方便的特点,仿佛缩短了人与人之间的空间距离,不论身在异国他乡与朋友进行信息交流,还是联络工作都如同与隔壁的邻居聊天一样容易,地球村的说法真是不无道理。
2、网络的广泛应用会创造一种数字化的生活与工作方式,叫做SOHO(小型家庭办公室)方式。家庭将不再仅仅是人类社会生活的一个孤立单位,而是信息社会中充满活力的细胞。
3、上网浏览或冲浪,这是网络提供的最基本的服务项目。你可以访问网上的任何网站,根据你的兴趣在网上畅游,能够足不出户尽知天下事。
4、查询信息。利用网络这个全世界最大的资料库,可以利用一些供查询信息的搜索引擎从浩如烟海的信息库中找到你需要的信息。随着我国“政府上网”工程的发展,人们日常的一些事物完全可以在网络上完成。
5、电子商务就是消费者借助网络,进入网络购物站点进行消费的行为。网络上的购物站点是建立在虚拟的数字化空间里,它借助Web来展示商品,并利用多媒体特性来加强商品的可视性、选择性。虽然目前网络购物还不完善,不会取代传统的购物方式,而只是对传统购物方式的一种补充。但它已经实实在在地来到了我们身边,给我们的生活多了一种选择。
6、丰富人们的闲暇生活方式。闲暇活动即非职业劳动的活动,它包括:消遣娱乐型活动如欣赏音乐、看电影、电视、跳舞、参加体育活动;发展型活动包括学习文化知识、参加社会活动、从事艺术创造和科学发明活动等。但与网络有直接关系的闲暇生活一般包括闲暇教育、闲暇娱乐和闲暇交往。
7、随着网络寻呼机等越来越普遍地应用于人们的生活之中,每个人都可以通过上网结交世界各地的网上朋友,相互交流思想,真的能做到“海内存知己,天涯若比邻”。
8.其他应用。现实世界中人类活动的网络版俯拾即是,如网上点播、网上炒股、网上求职、艺术展览等。
不管是哪种 Internet 应用,都离不开服务器(Server)。用户(User)可以使用 PC(Personal Computer)或PDA(Personal Digital Assistant,个人数字助理),连接到 Internet 并使用运行在 Internet 上的应用程序。
三、什么是 World Wide Web ?
World Wide Web(亦作“Web”、“WWW”、“W3”,中文:万维网),是一个由许多互相链接的超文本文档组成的系统,并通过 Internet 访问。 在这个系统中,每个有用的元素,包括文字、图片、视频等,称为一样“资源”;并且由一个全域“统一资源标识符”(URI)标识;这些资源通过超文本传输协议(Hypertext Transfer Protocol)传送给使用者,而后者通过点击链接来获得资源。
四、网页 And 网站
网页(英文:Web page)是一个文件,通常是 HTML 格式(文件扩展名为 .html 或 .htm)。网页通常用图像档来提供图画。网页通常要透过网页浏览器来阅读。 根据 W3C 对于 WEB PAGE 的定义,它是一个信息的集合,其内容包含一个或多个网络资源的信息,同时预期使其成为单一个 URI 。再进一步说,一个网页,其包含一个或多个嵌入于网页中的网络资源使其成为单一个 URI 档案( HTML ),而该 URI 并不再嵌入于其他档案之中。
网站(英文:Website)是指在互联网上,根据一定的规则,使用 HTML 等技术制作的用于展示特定内容的相关网页的集合。简单地说,网站是一种通讯工具,就像布告栏一样,人们可以通过网站来发布自己想要公开的资讯,或者利用网站来提供相关的网络服务。人们可以通过网页浏览器来访问网站,获取自己需要的资讯或者享受网络服务。
五、Web 等同 Internet 吗?
什么叫 Web?平时说到的 Web 有时候指 Internet ,有时候是指 World Wide Web,有时候指 Website,要区分它们还得看具体语境。
Web (万维网)常被当成 Internet(互联网) 的同义词,这是一种误解,事实上 Web 是靠着 Internet 运行的一项服务,它是 Internet 应用最广泛的部分。
那么,只要是在 Internet 上运行的应用程序就能称作 Web 应用程序么?我们先来看这样两类 Internet 应用:
网站(Web Site)
平日里上网看八卦,去论坛里灌水,玩开心网收菜等,这些都是在网站上进行。
网络游戏
魔兽世界,天龙八部,玩得不亦乐乎。
网站和网络游戏的共同点在于:都需要连接到Internet上的服务器才能使用,所以二者都是Internet应用。但是它们之间还是有所不同:网站的特点是我们要打开浏览器(Browser),如Microsoft Internet Explorer(IE)和Mozilla Firefox,在浏览器中访问各式各样的网站。而网络游戏的特点是我们要在本地安装特定的客户端软件,如果要玩魔兽世界,就一定要安装魔兽世界的客户端。这样一来,我们只需要一个浏览器,就可以逛遍世界上所有网站,而如果只有魔兽世界的客户端,就只能玩魔兽世界这一款游戏。
我们看到,网站以页面(Page)的形式显示信息,提供服务,并且需要呈现在浏览器中供用户浏览。可以说,网站就是一种Web应用程序。至此,我们可以得到结论:Web(万维网)不等同于 Internet(互联网),Web(万维网)是 Internet(互联网)发展而来的产物,Web(万维网)应用是 Internet(互联网) 应用中的一种。
六、B/S Versus C/S
Web 应用程序需要使用浏览器,因此又把它称为浏览器/服务器(Browser/Server)结构,即B/S结构;另一方面,网络游戏使用特定的客户端软件,因此把它称为客户端/服务器(Client/Server)结构,即 C/S 结构。
在 Internet 应用中,B/S 和 C/S 结构各有各的优势和劣势,因此目前的 Internet 应用这两种结构都有用武之地,彼此互相补充。比如我们没有办法通过浏览器来玩大型的3D网络游戏,这是因为浏览器的表现力太弱。而单独安装的客户端软件,可以访问到计算机底层资源,比如显卡的驱动程序,因此在这类应用中 C/S 结构更胜一筹。一些企业应用,如 MIS(Management Information System,管理信息系统)、OA(Office Automation,办公自动化)、ERP(Enterprise Resource Planning,企业资源计划)和 CRM(Customer Relationship Management,客户关系管理)等,当初是使用 VB 或 Delphi 构建 Windows 窗体程序,随着 B/S 结构应用程序的发展,这类企业应用慢慢的被 Web 应用取代。很重要的一点就是因为 B/S 结构应用程序在部署上比 C/S 要容易。C/S 结构应用程序需要在服务器和客户端都进行部署(想想魔兽世界的玩家数量),而 B/S 结构应用程序只需在服务器上部署。
B/S 和 C/S 的主要特点归纳为下表:
| B/S | C/S |
表现 | × | √ |
部署 | √ | × |
讲了那么多,到底什么是 Web App 呢?不要急,下面我们继续讲。
七、什么是 App ?
Application software(中文:应用软件),也称为 Application (中文:应用程序)或 "App",是计算机软件,适用于特定的计算平台或系统软件,旨在帮助用户执行特定任务。
八、什么是 Native App ?
Native App(中文:本地应用程序),适用于特定的平台或设备,具有特定用途的应用程序。相对于 Web App 而言,Native App 的大部分数据在本地,一部分或者无数据在网络服务器上。Native App 的跨设备运行需要通过平台移植来实现,在各个操作系统平台都有各自的开发标准和API。这个术语在移动计算领域经常被提及,因为传统的移动应用程序就是为了在特定的设备平台工作而创建的。
Native App的优势:
可节省带宽成本
编写优秀的程序可以提供最佳的用户体验,最优质的用户界面,最华丽的交互
针对不同平台提供不同体验
无网络环境下可以使用大部分或全部功能
可访问并调用本地资源,包括各种硬件资源
有较大的独立性,可以单独卖钱,也可以卖服务
可以通过虚拟化等方式运行其他平台的Native App,并且可以运行Web元素(相对成熟)
Native App的劣势:
每使用一台新设备就需要重新安装软件,而且软件未必提供了数据同步功能
用户需要自己下载更新
存在设备丢失或损坏造成的安全问题,服务器端的稳定和安全问题造成的影响较小
维持多个版本的成本比较高
平台移植花费较大精力时间成本
不同设备下的体验差异可能很大
九、什么是 Web App ?
首先,我们要明确,”Web App“中的”Web“通常指的是 World Wide Web。
关于 Web App,互联网上有以下几种说法:
1、所谓 Web App 即 Web 应用,是相对我们在 Windows、Mac、iPhone、Android 这些平台上使用的本地应用/软件(即 Native App)而言的。不过,随着互联网服务和本地软件之间的互相渗透,Web App 和 Native App 已经逐渐脱离了它们原本的框架,一个应用服务可以同时具有 Web App 和 Native App 的特质。
2、Web App 是指基于 Web 的系统和应用,其作用是向广大的最终用户发布一组复杂的内容和功能。 从一个简单的帮助消费者计算汽车租借费用的网页,到为商业人员和度假者提供全套旅游服务的大型复杂的 Web 站点,都是 Web App。它包括一些完整的 Web 站点,Web 站点的专门功能以及在 Internet、Intranet 或 ExtraNet 上的信息处理应用。
3、Web App 是一种通过网络(如互联网或内联网)访问的应用程序;也可以指计算机软件承载在浏览器支持环境下或使用浏览器支持语言(如Javascript)并依赖于web 浏览器来渲染的应用程序。
4、Web App 是指通过使用 Web 和 Web 浏览器技术,跨越网络完成一个或多个任务的应用程序,通常需要使用 Web 浏览器。
5、撇开各种不同的 Web 技术不谈,弄清楚 Web App 定义最困难的是如何从各种纷繁复杂的 Web App 中提取出他们的共同特征。当用户登录一个网站(如 Pixlr.com),大家很容易理解这是在访问一个 Web App 。但是对那些仅仅提供基础服务(如电话查询或是信息查询)的网站,区分用户是否在访问 Web App 就变得相当困难了。其实这些服务也是 Web App。我常常这样问自己“这个程序是否完成了某个任务?”。即便它只完成了某个非常小的任务,那么它也是一个 Web App。Google 的搜索引擎就是一个 Web App,它本质上和电话查询服务没有什么区别。
自己的总结:Web App 是一种通过使用各种 Web 技术,经 web 浏览器渲染,在 Internet 上完成一个或多个任务的应用程序。相对于 Native App 而言,它的大部分数据在网络服务器上,一部分或无数据在本地。全球开发者遵循统一的Web标准,分化较小,同一个App可以在不同设备上使用。
Web App的优势:
无需安装成本
开发成本低,一次编写,到处运行
跨平台和终端,可以轻松整合进入其他服务类web程序迭代更新容易
换设备后无需重新安装软件,直接点链接就可以使用,几乎不用进行同步
服务器端统一自动更新
减少了设备丢失或损坏造成的安全问题
可以通过虚拟化或远程桌面的方式运行各个平台上的Native App(实验阶段)
Web App的劣势:
功能、性能和效果目前还存在短板,不同设备下的体验差异有限,浏览的体验短期内还无法超越原生应用
消息推送不够及时
调用本地资源的能力弱,硬件资源的访问权限取决于浏览器
服务器端存在不可控风险
不支持离线模式(html5将会解决这个问题)
十、什么是Hybrid App ?
Native App 针对特定平台开发并在计算设备上安装。
Web App 广义上是跨平台的,没有安装在本地,而且在互联网上通过浏览器渲染。
Hybrid App(中文:混合应用程序),是结合了 Native App 和 Web App 特点的应用程序。
Hybrid App 具有以下特点:
1、不管设备连接成功与否,都能正常运行
2、集成设备的文件系统
3、集成基于Web服务
4、嵌入式浏览器,以提高动态在线内容的访问
后记
以上就是本人对“web”与“web app”及相关知识的梳理,有什么不对或不完善的地方还请各位大虾不吝赐教^^