专栏首页noteless8.web的发展 互联网发展 起源 历史 cgi web项目发展 企业应用web项目 框架 发展 互联网技术发展 互联网技术包括 web技术发展 web开发技术

8.web的发展 互联网发展 起源 历史 cgi web项目发展 企业应用web项目 框架 发展 互联网技术发展 互联网技术包括 web技术发展 web开发技术

技术的发展迭代更新

你只有把你置身于它出现的那个年代,站在它要解决的那个问题面前

你才能更好地理解它.

web的发展离不开计算机网络的发展,没有网络就不会存在web

计算机网络把分布于各地的单独的计算机连接起来,可以进行数据的共享与交互.这是web的根基

计算机通过网络传输数据和通过网络进行基于文本文档的的传输交流

差距还是很大的

web正是填补这一段差距的发明

web起源:

1989年CERN(欧洲粒子物理研究所)中由Tim Berners-Lee领导的小组

提交了一个针对Internet的新协议和一个使用该协议的文档系统

该小组将这个新系统命名为Word Wide Web,它的目的在于使全球的科学家能够利用Internet交流自己的工作文档。

这个新系统被设计为允许Internet上任意一个用户都可以从许多文档服务计算机的数据库中搜索和获取文档。

1990年末,这个新系统的基本框架已经在CERN中的一台计算机中开发出来并实现了

1991年该系统移植到了其他计算机平台,并正式发布。

web的主要的元素包括:

html--超文本标记语言用于承载描述文档

web容器 --服务器用于存放文档

url   --统一资源定位符用于定位查找资源

浏览器 --客户端用于解析呈现文档

http-- 客户端服务器传输协议用来进行连接

当然这些   并不都是   被他们当时从0直接发明的,技术是不断累积进化的

这就是web的起始开端

CGI

最初在浏览器中主要展现的是静态的文本或图像信息,GIF图片则第一次为HTML页面引入了动态元素。

当然这并不能满足日益增加的需求

人们希望程序能够识别处理用户的数据请求,并进一步作出反馈,也就是动态处理反馈

随后CGI出现了

他就是为了让web服务器能够运行外部的程序,进而提供动态内容的一个规范

真正使服务器能根据运行时的具体情况,动态生成HTML页面

Common Gateway Interface 通用网关协议

CGI是外部应用程序(CGI程序)与WEB服务器之间的接口标准,是在CGI程序和Web服务器之间传递信息的过程。

CGI是实现这种功能的一个定义,一个接口规范,并不是某一确切的程序或者代码段

CGI可以用任何一种语言编写,只要这种语言具有标准输入、输出和环境变量。

通常的处理流程是:

⑴通过Internet把用户请求送到web服务器。

⑵web服务器接收用户请求并交给CGI程序处理。

⑶CGI程序把处理结果传送给web服务器。

⑷web服务器把结果送回到用户。

最初绝大多数的CGI程序被用来解释处理来自表单的输入信息

并在服务器产生相应的处理,或将相应的信息反馈给浏览器。

CGI程序使网页具有交互功能。

可想而知,有了CGI,web发生了多大的变化,不仅仅可以提供静态的资源了,还能够进行动态的处理,数据的计算等

而且,CGI对每个请求都会启动一个进程来处理,因此性能上的扩展性不高。

而且,想想一下,你要用C语言或者C++等等去一点点的处理html的内容,去拼接,去打印,是不是很辛苦?

做过js拼接的就可以理解,但是之前的CGI比你做过的js的拼接要恶心的多

于是有人想到了把静态的内容和动态的数据进行分离,也就是把固定的部分存起来,也就是相当于模板

然后再把数据刷新加载到模板上

Web请求处理的时候,你的程序先读出来模板,然后把动态的数据计算出来,把动态内容填充进去,形成最终返回。

聪明的你肯定想得到,这不就是填空题嘛

这就是Web编程脚本语言

1994年的时候,PHP诞生了,PHP可以把程序(动态内容)嵌入到HTML(模版)中去执行,不仅能更好的组织Web应用的内容,而且执行效率比CGI还更高。之后96年出现的ASP和98年出现的JSP本质上也都可以看成是一种支持某种脚本语言编程(分别是VB和Java)的模版引擎。

企业开发平台

两大重要阵营J2EE/.NET

这两者其实也可以说是一路互殴一路互相借鉴(CX)的发展到现在

当Web开始广泛用于构建大型应用时,系统的稳定性安全性分布式等方面的要求变得更高

刚才说道94年Php96年Asp,98年的jsp

其中jsp就是sun公司为首的java阵营对于web技术发展的贡献

1997年,Servlet技术问世,1998年,JSP技术诞生。紧接着EJB问世

Java Servlet、Java Server Pages (JSP)和Enterprise Java Bean (EJB )是Java EE中的核心规范

Servlet和JSP是运行在服务器端的Web组件,EJB运行在服务器端的业务组件,是一种分布式组件技术。

让Java开发者同时拥有了类似CGI程序的集中处理功能和类似PHP的HTML嵌入功能

此外,Java的运行时编译技术也大大提高了Servlet和JSP的执行效率

1999年,Sun正式发布了J2EE的第一个版本。

紧接着,遵循J2EE标准,为企业级应用提供支撑平台的各类应用服务软件争先恐后地涌现了出来。

IBM的WebSphere、BEA的WebLogic都是这一领域里最为成功的商业软件平台。

2000年随之而来的.net平台,是一个强调多语言间交互的通用运行环境

2001年,ECMA通过了Microsoft提交的C#语言和CLI标准,这两个技术标准构成了.NET平台的基石

它们也于2003年成为了ISO的国际标准。

2002年,Microsoft正式发布.NET Framework和Visual Studio .NET开发环境。

早在.NET发布之前,就已经有许多Windows平台的Web开发者迫不及待地利用Beta版本开发Web应用了。

这大概是因为,.NET平台及相关的开发环境不但为Web服务端应用提供了一个支持多种语言的、通用的运行平台,

而且还引入了ASP.NET这样一种全新的Web开发技术。

ASP.NET超越了ASP的局限

可以使用VB.NET、C#等编译型语言,支持Web Form、.NET Server Control、ADO.NET等高级特性。

客观地讲,

.NET平台,尤其是.NET平台中的ASP.NET的确不失为Web开发技术在Windows平台上的一个集大成者。

框架的百家争鸣时代

随者两大平台的诞生,web的技术发展趋于成熟与稳定,人们希望能够更好更快更高效的开发web

各种辅助web开发的技术,百花齐放,百家争鸣

web应用越来越复杂,各种功能的页面,各种各样的URL地址

大量的后台数据

MVC的概念被引入到web项目中来,出现了Structs   Spring MVC等

控制器Controller负责响应请求,协调Model和View。

Model,View和Controller的分开,是一种典型的关注点分离的思想,

不仅使得代码复用性和组织性更好,使得Web应用的配置性和灵活性更好。

此时,数据的访问也不仅仅是直接sql访问,出现了ORM(Object Relation Mapping)的概念

2001年出现的Hibernate就是其中的佼佼者

更多的全栈框架开始出现,比如2003年出现的Java开发框架Spring

同时更多的动态语言也被加入到Web编程语言的阵营中

2004年出现的Ruby开发框架Rails,2005出现的Python开发框架Django

都提供了全栈开发框架,或者自身提供Web开发的各种组件,或者可以方便的集成各种组件。

浏览器客户端技术的日新月异

JavaScript

此时web服务器已经可以比较高效的进行动态数据的处理了

但是这中间有一个问题,服务器负责表单的一些校验工作

看起来好像没什么,但是站在当时的环境下

在那个绝大多数用户都在使用调制解调器上网的时代

用户填写完一个表单点击提交,需要等待几十秒,完了服务器反馈给你说某个地方填错了......你是不是会崩溃?

JavaScript诞生于1995年,就是用来完成这种工作的,前身是livescript

大家可以深挖一下javascript的历史,不要单纯的以为这就是一种语言,像java一样

最开始是由浏览器厂商Netscape(网景)着手开发的

跑在我自己的浏览器软件内部的一段只有我自己认识的代码,用来完成一些浏览器客户端的功能

你可以这么理解,浏览器是我自己开发的一个软件,我为了实现某种功能定义了一些规范条件语法

比如我说在我这个软件内var可以定义一个变量,我的这个软件就认识这个var

别的地方其实是不认识的

当然,浏览器不止一家,出现了这么一个东西,大家就会都去搞,撕逼大战热火朝天

最终出来机构调节停火,也就是出台了ECMAScript,这是一个规范

由ECMA-262定义的ECMAScript其实与Web浏览器没有依赖关系。

Web浏览器只是ECMAScript实现可能的宿主环境之一。

JavaScript是一个ECMAScript规范的实现,就好像HotSpot遵循java虚拟机规范一样

完整的js实现包括

1.核心(ECMAScript)

2.文档对象模型(DOM)

3.浏览器对象模型(BOM)

CSS

另外由于项目应用规模的不断扩大,页面也越来越越复杂,你会发现,将样式与模板放到一个页面上

是一个非常糟糕的设计思路

1996年12月W3C推出了CSS规范的第一个版本

CSS(Cascading Style Sheets,层叠样式表)是一种将表示样式应用到标记的系统。

CSS以设计、改变其HTML页面的样式而知名,并使用于Web和其他媒介,如XML文档中.

AJAX/前端框架/Node

而对于browser端,除了前面提到的js  css

在98年还出现了AJAX,05年之后大放异彩

主要是为了解决每次数据的更新都需要刷新页面,需要重新载入整个的页面数据

哪怕你仅仅需要变动的是一个数字而已,这显然是资源的浪费,以及没必要的等待

ajax就是为了解决这个问题的而出现的一种局部刷新的技术

AJAX即“Asynchronous JavaScript and XML”(异步的JavaScript与XML技术)

指的是一套综合了多项技术的浏览器端网页开发技术

可以基于JavaScript的XmlHttpRequest的用于创建交互性更强​的Web应用。

ajax的出现,可以让前后端工程师以ajax接口为分界点进行前后端分离

规定好交互接口后,前后端工程师就可以根据约定,分头开工

开发环境中通过Mock等方式进行测试,同时在特定时间节点进行前后端集成测试。

但是,随着业务功能的愈发复杂

这种模式本质上和JSP时代的Web开发并无本质区别,只不过是将复杂的业务逻辑从JSP文件转移到了JavaScript文件中而已。

所以很自然的又把MVC模式应用到了前端

前端开发也出现了大量的MVC框架

比较典型的包括BackboneJS, AngularJS, EmberJS, KnockoutJS。

随着各大浏览器的竞争,引擎越来越牛逼

Google V8引擎的性能已经足以运行大型Javascript程序。

在V8之上加以网络、文件系统等内置模块,形成了如今的Node.js。

随着Node.js的出现,JavaScript开始拥有在服务端运行的能力

它的异步本质使得Node.js在处理I/O密集型业务中优势凸显

而大多Web业务中I/O性能都是瓶颈。

完整内容点击标题进入

1.计算机发展阶段

2.计算机组成-数字逻辑电路

3.操作系统简单介绍

4.计算机启动过程的简单介绍

5.计算机发展个人理解-电路终究是电路

6.计算机语言的发展

7.计算机网络的发展

8.web的发展

9.java web的发展

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Weex初探--从安装到运行首个app

    好多人说Weex跨平台不错,一直要推荐我玩一下,我就不信了,来安装玩一下试试效果。实践出真知!安装过程各种坑,工具太多了,太麻烦了,差点放弃(还好坚持下来呢)。

    AWeiLoveAndroid
  • WebView深度学习(二)之全面总结WebView遇到的坑及优化

    这篇文章讲一下WebView遇到的那些坑,带领各位爬坑。这里如果有你没遇到的问题,欢迎留言告诉我,我尽我所能帮你解决。感谢大家支持。

    AWeiLoveAndroid
  • nginx 配置目录转发

    server { listen 80; autoindex off; server_name image.imooc.com; ...

    Dar_Alpha
  • html学习笔记1

    1.网页文档的结构和格式的定义是由HTML元素来完成的.HTML元素是由单个或一对标签定义的范围。一个标签就是左右分别有(<)(>)的字符串。开始标签是指不以/...

  • JSP/Servlet Web 学习笔记 DayOne

      1)JSP是一种动态网页技术标准,它是在传统的页面HTML文件中插入Java程序段和JSP标记(tag),从而形成JSP文件(*.jsp),也称JSP页面。

    Rekent
  • RESTful小拓展

    RESTful 即Resource Representation State Transfer 相对应Resource 资源层,Representation 表...

    Dar_Alpha
  • Web前端都学点儿啥?

    Web开发如今是如日中天,热的发烫。但是Web开发相关的技术和知识却像N座大山一样,耸立在我们面前,连绵起伏,漫无边际。那么这些山头那些我们应该占领,那些我们应...

    笔阁
  • 深入理解Java的接口和抽象类(转)

      对于面向对象编程来说,抽象是它的一大特征之一。在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类。这两者有太多相似的地方,又有太多不同的地方。很...

    Dar_Alpha
  • JSP/Servlet Web 学习笔记 DayTwo

       定义JSP文件中的全局属性、一个JSP页面可以包含多个page指令、除了Import以外,其他page指令定义的属性/值只能出现一次。

    Rekent
  • ionic入门之AngularJS扩展

    ionic是一个强大的混合式/hybridHTML5移动开发框架,特点是使用标准的HTML、 CSS和JavaScript,开发跨平台(目前支持:Android...

    笔阁

扫码关注云+社区

领取腾讯云代金券