热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

破”网“而出

前言两个月前做了这样的决定,当别人再问我的职业方向是什么时,我会毫不犹豫地和他说web前端开发。在那之前有人问只是简单地说了句没定,其实是

前言

两个月前做了这样的决定,当别人再问我的职业方向是什么时,我会毫不犹豫地和他说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”及相关知识的梳理,有什么不对或不完善的地方还请各位大虾不吝赐教^^

 

 

 


转载于:https://www.cnblogs.com/xusheng/archive/2012/03/25/2416271.html


推荐阅读
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • 本文介绍了RPC框架Thrift的安装环境变量配置与第一个实例,讲解了RPC的概念以及如何解决跨语言、c++客户端、web服务端、远程调用等需求。Thrift开发方便上手快,性能和稳定性也不错,适合初学者学习和使用。 ... [详细]
  • 在重复造轮子的情况下用ProxyServlet反向代理来减少工作量
    像不少公司内部不同团队都会自己研发自己工具产品,当各个产品逐渐成熟,到达了一定的发展瓶颈,同时每个产品都有着自己的入口,用户 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • 本文介绍了在使用Python中的aiohttp模块模拟服务器时出现的连接失败问题,并提供了相应的解决方法。文章中详细说明了出错的代码以及相关的软件版本和环境信息,同时也提到了相关的警告信息和函数的替代方案。通过阅读本文,读者可以了解到如何解决Python连接服务器失败的问题,并对aiohttp模块有更深入的了解。 ... [详细]
  • Python瓦片图下载、合并、绘图、标记的代码示例
    本文提供了Python瓦片图下载、合并、绘图、标记的代码示例,包括下载代码、多线程下载、图像处理等功能。通过参考geoserver,使用PIL、cv2、numpy、gdal、osr等库实现了瓦片图的下载、合并、绘图和标记功能。代码示例详细介绍了各个功能的实现方法,供读者参考使用。 ... [详细]
  • 利用Visual Basic开发SAP接口程序初探的方法与原理
    本文介绍了利用Visual Basic开发SAP接口程序的方法与原理,以及SAP R/3系统的特点和二次开发平台ABAP的使用。通过程序接口自动读取SAP R/3的数据表或视图,在外部进行处理和利用水晶报表等工具生成符合中国人习惯的报表样式。具体介绍了RFC调用的原理和模型,并强调本文主要不讨论SAP R/3函数的开发,而是针对使用SAP的公司的非ABAP开发人员提供了初步的接口程序开发指导。 ... [详细]
  • ASP.NET2.0数据教程之十四:使用FormView的模板
    本文介绍了在ASP.NET 2.0中使用FormView控件来实现自定义的显示外观,与GridView和DetailsView不同,FormView使用模板来呈现,可以实现不规则的外观呈现。同时还介绍了TemplateField的用法和FormView与DetailsView的区别。 ... [详细]
author-avatar
yangxinhui2602905795
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有