了解一下Web开发相关的历史,相关技术的演进历程,知其前世今生,非常有助于加深Web开发相关技术的理解和认识。

下面是对网上几篇相关文章的总结和摘要:

1. Web开发的发展史

对过去的15年来,Web开发从最初的纯HTML到CGI、PHP/JSP/ASP、Ajax、Rails、NodeJS的这个过程进行了简要的介绍。

http://blog.jobbole.com/45169/

2. Web开发技术的演变

静态页面时代、CGI时代、PHP、J2EE、Web层框架、摒弃EJB运动、Ajax、Ruby on Rails、JSF和CDI(可视化)、异步化的发展趋势。

http://blog.jobbole.com/45170/

1)静态内容的网站

HTML技术,主要是文本和图片(包括gif动态图片)。

特点:简单,只能做信息的展示,无法同用户进行交互。

2)最早的动态网站

主要采用CGI/Perl脚本技术,能够实现内容动态,具备了交互性,服务器能够访问文件系统或数据库。

缺点:伸缩性差(为每个请求分配一个新的进程)、安全性差(直接使用系统环境变量和文件系统)、脚本组织混乱并且缺少一种结构化的构造动态应用程序的方式。

3)有了参考模型的动态网站

主要采用PHP、ASP、JSP等技术,在一个比较通用的参考架构下,能够构造出伸缩性良好、安全的Web应用程序。

1994年,Rasmus Lerdorf创建了PHP。

刚刚开始只是一个简单的用Perl语言编写的程序,用来统计他自己网站的访问者。后来又用C语言重新编写,包括可以访问数据库。多年来,PHP经过不断的发展已经成为当前最热门的Web开发语言。如今全世界82%的网站使用PHP,ASP.net是17%,Java是2.9%(数据来源:http://www.csdn.net/article/1970-01-01/2825720)。1995年,正式对外发布了1.0版,目前最新版是PHP 7.1.10(2016年12月1日发布)。

1995年,PHP1就是个快速实用的工具包。

1997年11月,PHP2是个基本完善的程序包。

1998年6月,PHP3有了更好的执行效果和清晰的结构,强大之处在于可扩展性,吸引了全世界大量的开发者加入并提交新模块。

2000年5月,PHP4全新的引擎,性能提升了近10倍。同时,提高跨平台能力,开始支持面向对象(虽然还不完善)。

2004年7月,PHP5采用了第二代的Zend引擎。最大特色是引入面向对象的全部机制,引进了类型提示和异常处理。

PHP6,胎死腹中,是一个失败的专案,虽然做了一些改进,但始终没能发布正式版本,是一个被直接跳过的版本。

2015年11月,PHP 7(PHP NG):性能方面实现了跨越式提升,并引入了一些新特性。参考:PHP7革新与性能优化

更多内容可参考:PHP的历史 http://php.net/manual/zh/history.php.php PHP发展史

1996年,ASP 1.0诞生,简化了Web开发。

原来要写C语言,太难了;有了ASP只需要写写VBScript脚本或者JavaScript脚本即可,而且还有内部组件实现了cookie等高级功能,ADO(ActiveX Data Object)简化了数据库的相关操作。

1998年,微软发布了ASP 2.0。

与ASP 1.0的主要区别在于它的外部组件是可以初始化的,这样,在ASP程序内部的所有组件都有了独立的内存空间,并可以进行事务处理。

2000年,微软发不了ASP 3.0,随着Windows 2000一同附带。

优势在于它使用了COM+,因而其效率会比它前面的版本要好,并且更稳定。

2001年,ASP·NET出现了。

几乎完全是基于组件和模块化的,Web应用程序的开发人员使用这个开发环境可以实现更加模块化的、功能更强大的应用程序。

Java web的历史待补充。

1997年6月,SUN公司的Pavni Diwanji编写了Servlet 1.0规范。

1999年8月,Servlet 2.2发布,开始成为J2EE的一部分。

当前Servlet最新版是2013年5月发布的3.1, 属于Java EE 7,支持非阻塞I/O和WebSocket。

Servlet 4.0正在开发过程。

参考:https://en.wikipedia.org/wiki/Java_servlet

Java EE的发展历程:https://en.wikipedia.org/wiki/Java_EE_version_history

Java web开发技术的发展(从Servlet、JSP到模型一、模型二、框架、可视化开发):http://blog.csdn.net/javaeeteacher/article/details/6478450

4)Ajax:异步JavaScript和XML

局部更新,响应更快,真正用Web应用取代了Web页面。典型的产品如Google Mail和Google Map。

5)Ruby on Rails:通过约定的规范方式开发Web应用

基于Ruby on Rails 5分钟构建博客的演示完全征服了全世界的开发者。

第一次将广泛应用于桌面应用的开发模式——MVC,搬到了Web应用开发领域。

6)客户端开发技术的崛起

2007年到2010年的三种开发潮流:

一是智能手机和移动应用;二是非常流行的JavaScript库——jQuery;三是Node.JS发布,通过JavaScript开发高性能的服务端程序!

7)客户端开发技术的规范化

客户端框架如Backbone、Ember、Derby、Meteor、AngularJS等等,简化了客户端的开发,并且也逐步形成了MVC的模式。

8)网络架构异步化分布式的发展趋势

到了这里,可以说上层的各类技术都发展的差不多了,底层的技术又有了新的突破。

Netty是由JBOSS提供的一个java开源框架。
Netty提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序。
Netty 是一个基于NIO的客户,服务器端编程框架,使用Netty 可以确保你快速和简单的开发出一个网络应用,例如实现了某种协议的客户,服务端应用。
Netty相当简化和流线化了网络应用的编程开发过程,例如,TCP和UDP的socket服务开发。

这是一段非常常见的、很官方的介绍。前面都好理解,从“基于NIO”就不知所云了。

NodeJS也是一个异步化的、基于JavaScript的开发框架。

Java社区很快出现了和NodeJs有相同设计思路的项目,Vertx就是其中的优秀代表。
它充分借鉴了NodeJs和Erlang/OTP Actor模型的优秀设计,
利用分布式消息机制进行对象间通信,利用Netty进行网络异步操作,
方法调用倡导异步调用,有自己的模块化机制。

Web开发的发展历史的更多相关文章

  1. Web开发技术发展历史

    Web开发技术发展历史   来自:天码营 原文:http://www.tianmaying.com/tutorial/web-history Web的诞生 提到Web,不得不提一个词就是"互 ...

  2. 【转载】Web开发技术发展历史-版本1

    原文在这里. Web开发技术发展历史 Web的诞生 提到Web,不得不提一个词就是“互联网”.Web是World Wide Web的简称,中文译为万维网.“万维网”和我们经常说的“互联网”是两个联系极 ...

  3. 【转载】Web开发技术发展历史-版本2

    原文在这里. Web开发的发展史 导读:Arunr 把过去 15 年以来,Web开发从最初的纯 HTML 到 CGI.PHP\JSP\ASP.Ajax.Rails.NodeJS 这个过程简要地进行了介 ...

  4. Web 开发模式演变历史和趋势

    前不久徐飞写了一篇很好的文章:Web 应用的组件化开发.本文尝试从历史发展角度,说说各种研发模式的优劣. 一.简单明快的早期时代 可称之为 Web 1.0 时代,非常适合创业型小项目,不分前后端,经常 ...

  5. [转] Web 开发模式演变历史和趋势

    文章转自梦想天空--前端文摘:Web 开发模式演变历史和趋势 一.简单明快的早期时代 可称之为 Web 1.0 时代,非常适合创业型小项目,不分前后端,经常 3-5 人搞定所有开发.页面由 JSP.P ...

  6. 前端文摘:Web 开发模式演变历史和趋势

    今天的<前端文摘>给大家分享一篇玉伯的文章.文章详细介绍了 Web 开发的四种常用模式以及未来可能成为流行趋势的 Node 全栈开发模式,相信你看了以后一定会有收获. 您可能感兴趣的相关文 ...

  7. Web开发的发展

    领导以前是做C的,没有做过Web开发,就问我,Web技术发展的大致过程,我就是简单的说了开发过程的演化,下来后有自己找些资料补充下,如下所示:(着这是个简单的说明,感兴趣的可以再自己找找资料). 1. ...

  8. [Java Web整合开发王者归来·刘京华] 2、 Java Web开发概述

    1.Web相关概念 1-1.胖客户与瘦客户 >_<" RCP的定义及优缺点:       >_<"TCP的定义及优缺点:             1-2.B ...

  9. [Java Web] 1、Web开发初识——一大堆历史和技术名词

    LZ前言 LZ最近发现网络真是个神奇的东西,以前做的好玩的只能自娱自乐(或者说顾影自怜),现在只要发一个帖子,写一个博客,很快能引来一大群小伙伴的围观(有时候还能遇见几个大牛给个战略性的指导)...L ...

随机推荐

  1. Tomcat 常用配置及网站部署

    一.同一Tomcat  多个端口部署不同的项目       在tomcat 安装目录下C:/Program Files/apache-tomcat-6.0.29/conf找到server.xml (1 ...

  2. Django Nginx+uwsgi 安装配置

    使用 python manage.py runserver 来运行服务器.这只适用测试环境中使用. 正式发布的服务,我们需要一个可以稳定而持续的服务器,比如apache, Nginx, lighttp ...

  3. cherrypy应用探究

    1. cherrypy是什么? cheerypy是一个有pythonic特性的面向对象的http服务框架. 玩python的人都应该知道pythonic这个单词.python大神给我们的建议 : &g ...

  4. YbSoftwareFactory 代码生成插件【十四】:通过 DynamicLinq 简单实现 N-Tier 部署下的服务端数据库通用分页

    YbSoftwareFactory 的 YbRapidSolution for WinForm 插件使用CSLA.NET作为业务层,CSLA.NET的一个强大的特性是支持 N-Tiers 部署.只需非 ...

  5. 关于strlen误用的一点记录

    今天帮一个朋友查一个错误,是运行时报vector iterator incompatible,一般这种问题是向量和迭代器的类型不兼容,或者是进行迭代器判等时前后向量的结构发生变化,如erase操作之后 ...

  6. zabbix_sender自定义监控

    这里推荐这个博客 http://www.ttlsa.com/monitor/zabbix/ 在这里学一遍都不用买书,直接就能玩转zabbix了 回归正题 zabbix相关包下载地址:http://ww ...

  7. 将windows server 2016改造为像windows 10一样适合个人使用的系统

    Windows server 2016 RTM已流出,具体可以搜索wzor大神泄露的,英文版本是0911的.现根据我安装后整理的如何配置使个人更适合使用. 20170102更新:wzor泄漏的0911 ...

  8. 阿里巴巴矢量图标的使用Demo

    一.html网页的使用步骤: 1. 登录进入阿里巴巴矢量图标库中,选择自己喜欢的图标,放到购物车,http://www.iconfont.cn/plus/manage/index?manage_typ ...

  9. OC-《购票系统》

    来个命令行的购票系统 --1-- 需求分析 1.1 分析 1.2 功能分析 1.3 流程分析 --2-- 原型展示 2.1 界面原型 --3-- 系统设计 3.1 类设计 3.2 框架模块设计 --4 ...

  10. 我人生中的jQuery选择器

    Jquery选择器 一.Jquery选择器简介 JavaScript只是一种运行于客户端,可以被客户端浏览器解析的一段代码.它和java没有任何关系.JavaScript简称JS.jQuery是对JS ...