ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

第1章 浏览器和浏览器内核

2022-05-19 22:35:52  阅读:178  来源: 互联网

标签:插件 网页 HTML 内核 浏览器 页面


1.1 浏览器

1.1.1 浏览器简介

提到浏览器,不得不提的重量级人物是 Berners-Lee。Berners-Lee 是W3C组织的理事,他在 80 年代后期 90 年代初期发明了世界上第一个浏览器 WorldWideWeb(后改名为 Nexus ),并在1991年公布了源代码。

2008 年,Google 公司以苹果开源项目 WebKit 作为内核,创建了一个新的项目 Chromium,该项目的目标是创建一个快速的、支持众多操作系统的浏览器,包括对桌面操作系统和移动操作系统的支持。这也就是说 Chromium 使用了同 Safari 一样的浏览器内核(这一说法大体上是正确的,实际上也还有很多不同)。

自此,对于桌面系统而言,三足鼎立之势已经形成。微软IE、Mozilla火狐和Google Chrome成了桌面系统上最流行的三款浏览器,三者一起占据了该市场超过90%的浏览器份额。

1.1.2 浏览器特性

大体上来讲,浏览器的这些功能包括网络、资源管理、网页浏览、多页面管理、插件和扩展、书签管理、历史记录管理、设置管理、下载管理、账户和同步、安全机制、隐私管理、外观主题、开发者工具等。下面是对它们之中的一些重要功能的详细介绍。

  • 网络: 它是第一步,浏览器通过网络模块来下载各种各样的资源,例如 HTML 文本、JavaScript 代码、样式表、图片、音视频文件等。网络部分其实非常重要,因为它耗时比较长而且需要安全访问互联网上的资源。
  • 资源管理: 从网络下载或者本地获取资源,并将它们管理起来,这需要高效的管理机制。例如如何避免重复下载资源、缓存资源等,都是它们需要解决的问题。
  • 网页浏览: 这是浏览器的核心也是最基本、最重要的功能,它通过网络下载资源并从资源管理器获得资源,将它们转变为可视化的结果,这也是后面介绍的浏览器内核最重要的功能。
  • 多页面管理: 很多浏览器支持多页面浏览,所以需要支持多个网页同时加载,这让浏览器变得更为复杂。同时,如何解决多页面的相互影响和安全等问题也非常重要,为此,一些浏览器做了大量的工作,例如可能使用线程或是进程来绘制网页。
  • 插件和扩展: 这是现代浏览器的一个重要特征,它们不仅能显示网页,而且能支持各种形式的插件和扩展。插件是用来显示网页特定内容的,而扩展则是增加浏览器新功能的软件或压缩包。目前常见的插件有 NPAPI 插件、PPAPI 插件、ActiveX 插件等,扩展则跟浏览器密切相关,常见的有 Firefox 扩展和 Chromium 扩展。这在第10章中会做介绍。
  • 账户和同步: 将浏览的相关信息,例如历史记录、书签等信息同步到服务器,给用户一个多系统下的统一体验,这对用户非常友好,是浏览器易用性的一个显著标识。
  • 安全机制: 本质是提供一个安全的浏览器环境,避免用户信息被各种非法工具窃取和破坏。这可能包括显示用户访问的网站是否安全、为网站设置安全级别、防止浏览器被恶意代码攻破等。

还有一个值得一提的就是浏览器的多操作系统支持,包括桌面和移动两个领域。

1.1.3 HTML

HTML(HyperText Markup Language),一种超文本标记语言,用于网页的创建和其他信息在浏览器中的显示。它的语法比较简单,基本上是一系列的标签(也称为元素),这些标签可以用来表示文字、图片、多媒体等。HTML1.0 由著名的 Berners-Lee(前面提到的第一个浏览器发明者)于1991年提出,后面历经多次版本更新,直到 1997 年的 4.0 版本和 1999 年的 4.01 版本。

HTML5包含了一系列的标准,一共包含了10个大的类别,它们分别是离线(offline)、存储(storage)、连接(connectivity)、文件访问(file access)、语义(semantics)、音频和视频(audio/video)、3D和图形(3D/graphics)、展示(presentation)、性能(performance)和其他(Nuts and bolts)。其中每个大的类别都是由众多技术或者是规范组成,表1-2描述了这10个类别所包含的具体规范。

表 1-2 HTML5类别和包含的各种规范

类别 具体规范
离线 Application cache, Local storage, Indexed DB,在线/离线事件
存储 Application cache, Local storage, Indexed DB等
连接 Web Sockets,Server-sent事件
文件访问 File API,File System,FileWriter,ProgressEvents
语义 各种新的元素,包括Media,structural,国际化,Link relation,属性,form类型,microdata等方面
音频和视频 HTML5 Video,Web Audio,WebRTC,Video track等
3D和图形 Canvas 2D,3D CSS变换,WebGL,SVG等
展示 CSS3 2D/3D变换,转换(transition),WebFonts等
性能 Web Worker,HTTP caching等
其他 触控和鼠标,Shadow DOM, CSS masking等

在 HTML 历史上的早期阶段,网页内容是静态的,也就是说内容是不能动态变化的。服务器将内容传给浏览器之后,页面显示结果就固定不变了,这显然难以满足各种各样的现实需求。随后 JavaScript 语言诞生了,该语言是 EMCAScript 规范的一种实现。因为最初还有其他用于网页的脚本语言,例如 JScript 。所以,标准化组织制定了脚本语言的规范,也就是 EMCAScript。而 JavaScript 作为其中的一个实现,受到了极为广泛的使用。虽然 JavaScript 语言的定义受到了众多的批评,但是如今,网页已经离不开它了,HTML5 中的很多规范都是基于 JavaScript 语言来定义的。网页第三个革命性成果是CSS(Cascading Style Sheet),也就是级联样式表。因为早期阶段的网页不仅是静态的,而且表现形式非常固定和简单,所以内容没有办法以各种可视化处理效果展示出来。引入了 CSS 之后,这一技术使得内容和显示分离开来,对网页开发来说,极大地增强了显示效果并提升了开发效率。

伴随 HTML 技术的另一个技术是 HTTP,这是一种构建在 TCP/IP 之上的应用层协议,用于传输 HTML 文本和所涉及的各种资源,包括图片和多媒体等。随后,安全版的 HTTP 也就是 HTTPS 诞生,它在 HTTP 之下加入 SSL/TLS,用于安全地传输数据。

1.1.4 用户代理和浏览器行为

用户代理(User Agent)是个很奇怪的东西,其作用是表明浏览器的身份,因而互联网的内容供应商能够知道发送请求的浏览器身份,浏览器能够支持什么样的功能。因此,网页内容提供商便可以为不同的浏览器发送不同的网页内容。例如通常为 Chrome 的桌面版和 Android 版发送不同的网页内容以适应屏幕和操作系统的差别,或者是因为不同的浏览器支持的标准不一样,这样做的目的当然是为了避免浏览器不支持的功能以及获得更好的用户体验。

因为某种浏览器的流行,很多内容提供商和网站需要根据流行的浏览器来定制内容,当后来者需要相同内容的时候,就只能是通过这些用户代理的信息来模仿获得。

1.1.5 实践:浏览器用户代理

以百度的首页为例,当读者在地址栏输入百度的网址 www.baidu.com 后,默认情况下,Google Chrome中显示的网页内容如下图所示。读者可以看到这是一个传统的网页布局、链接排布非常密集、适合用鼠标单击的操作系统。

image

在 Chrome 中,读者可以给用户代理设置任何自己定义的内容。有两种方法:其一是在 Chrome 启动时加入命令行参数--user-agent=”xxx”;

其二是首先打开 Chrome 的开发者工具,然后在右下角单击“设置”,之后选择“覆盖”选项,最后读者单击“用户代理”框来为该页面设置新的用户代理。这里,我们选择 “Chrome-Android Mobile” 。需要记住的是,它们都不会被保存,所以重启后无效。

刷新当前的页面,读者会看到一个全新的页面,该页面跟读者在手机上看到的页面相同。该页面是为Android系统设计的,HTML元素之间的间距更大,页面更简洁,更适合触屏手机这样的硬件和系统,如下图所示的结果。

1.2 浏览器内核及特性

1.2.1 内核和主流内核

1.2.2 内核特征

1.3 WebKit内核

1.3.1 WebKit介绍

1.3.2 WebKit和WebKit2

1.4 本书结构

标签:插件,网页,HTML,内核,浏览器,页面
来源: https://www.cnblogs.com/Huang-zihan/p/16290406.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有