简单的说Web就是为用户提供的一种在互联网上浏览信息的服务,Web服务是动态的、可交互的、跨平台的和图形化的。
Web服务为用户打开了一扇获取互联网服务的大门,这些服务不仅仅包括信息浏览服务,也包括各种交互式服务,包括聊天、购物、学习等等内容,可以说Web的出现释放了互联网巨大的力量。
Web应用开发也经过了几代技术的不断发展,目前Web开发依然是最重要的开发内容之一。说到Web开发就一定会涉及到Web技术的基本呈现方式,基础的技术包括超文本标记语言(HTML)和HTTP协议,HTML是一种呈现数据的方式(给人看的),而HTTP则是一组通信的标准(语法、语义、时许),可以简单的理解为HTTP携带HTML。
为了能够更全面的了解Web,下面简单的梳理一下Web发展的历史,介绍一下其中涉及到的技术。
早期的Web服务比较简单,用户发出请求到达服务器之后,服务器给出对应的回应,用户通过浏览器把回应的内容(HTML)解析(呈现)出来,看一个图:
图中有几个重要的元素需要简单的解释一下,Browser代表浏览器,浏览器是发送消息和接受消息的终端,是用户与Web服务交互的基本手段。用户发送请求的内容会封装成request对象然后发送到服务端,ruquest中封装了用户的元信息和提交的数据信息,其中元信息就是用户的基本信息,包括浏览器版本号、服务端口、使用的操作系统等内容。
httpd是处理HTTP请求的服务(进程),httpd会启动相应的服务来处理用户的请求,往往是把服务端对应的文件(HTML)封装成response对象并返回给用户,用户的浏览器解析出response中的内容并最终呈现给用户。整个过程需要了解浏览器、服务器、资源(文件)三者之间的关系,以及各自所部署的位置。
早期的Web应用多以静态资源为主,把提供静态资源服务的Web服务称作为Web Site(网站),为了丰富Web服务,定义了能够进行动态服务的Web Application,看一个图:
Web Application的功能就非常强大了,它能够动态处理业务逻辑。这里面新增加了两个重要的角色,一个是CGI(公共网关接口),另一个是Database(数据库)。CGI提供业务处理能力,数据库提供数据存储服务。CGI在服务端的执行过程如图所示:
CGI的出现解决了Web动态交互的问题,可以说Web服务的形式就更加丰富了,也由此开启了一个Web开发的大时代。
虽然CGI的方式能解决动态交互问题,但是CGI自身也有诸多问题,比如扩展性差、处理能力不强、依赖平台、重量级等,此时在Web领域推出了一个技术就是Java Web技术,Java Web技术能够有效解决这些问题,看一个处理流程图:
通过与CGI的对比能够看出,Servlet技术的资源消耗更少。由于Java Web表现出来的优秀性能,所以在Web开发领域得到了广泛的应用。后来推出的JavaEE技术更是进一步的解决了性能问题,为Web服务构建大型应用奠定了基础,看一个图:
虽然目前Java Web技术已经有了更多的方案,比如轻量级处理方案(Spring),但是Java Web却是目前大型互联网平台的常见解决方案,看两个图:
以上就是Web服务的发展过程,包括技术发展的一个简单介绍。
我做Java Web开发多年,目前也在带Java开发团队,我会陆续在头条写一些关于Web技术方面的文章,对Web技术感兴趣的朋友可以关注我的头条号,相信一定会有所收获。