WEB客户端技术
Web客户端的主要作用之一就是用来发送HTTP请求并接收服务器响应。也就是说,只要能达成这一目的的任何工具或程序,都可作为Web的客户端来对待,而不能仅限于浏览器。比如我们可以使用CURL工具来处理HTTP请求和响应,也可以使用编程语言(只要能支持网络编程的程序设计语言均可,如JAVA, C#, C++, C, PHP等,并且不难,后续章节将具体介绍如何使用Java来处理HTTP协议)。也正因为如此,对Web系统的测试变得不再简单,我们不能单纯只是考虑在标准的网页浏览器中进行测试,还需要考虑到用户完全有可能绕开浏览器界面,而直接使用其它工具或者自己编写程序来完成请求的发送和响应的接收。这对Web系统的安全性提出了挑战,需要我们在设计系统时考虑到这些因素,因为服务器在处理请求时是不管请求的来源是否合法的,当然,它也没法管。这是网络体系结构的设计所决定的。
基于以上的分析,我们既然可以使用其它工具或者自己编写程序来处理HTTP请求和响应,那是不是就意味着我们可以开发出自己的浏览器来呢?理论上来说是这样的,因为处理HTTP请求和响应本身就是浏览器的重要工作之一。但是开发的一个浏览器的技术瓶颈并不在对协议本身的处理上,而在于对响应的解析和对Javascript脚本的解析处理,这牵涉到浏览器的另一大技术核心:渲染引擎。我们评价一个浏览器的好与坏,也主要是在对浏览器的渲染引擎进行评价。我们可以看到,每家厂商的浏览器的主要功能都差不多,但是处理速度却不一样,并且对标准的支持也不尽相同,其核心就在于渲染引擎的不一样。我们也许会经常听到浏览器厂商在做宣传时会写上“XXX浏览器搭载了最新版页面渲染引擎,速度大幅提升”之类的广告词,在原因也就在此。
网页浏览器的页面渲染引擎负责取得网页的内容(HTML、XML、图像等等)、整理排版(例如CSS等),以及计算网页的显示方式,然后会输出至显示器或打印机。所有网页浏览器、电子邮件客户端以及其它需要编辑、显示网络内容的应用程序都需要页面渲染引擎。当前比较流行的