背景
最近在开发和学习的过程中,突然发现自己对于 HTTP/HTML/WWW/INTERNET/NETWORK 等等相关概念都不够了解。为了提升思维水平和学习能力,加速进步,需要从根本上掌握这些概念和其中包含的内容,了解他们从哪来,到哪去。
计算机网络 Network
计算机网络或者数据网络是一个允许计算机之间交换数据的电信网络。在计算机网络中,联网的运算设备使用一条数据链接来彼此交换数据。节点之间的连接使用有线媒介或者无线媒介。最著名的计算机网络是因特网。
因特网 Internet
因特网是一个由使用 TCP/IP 协议栈来连接全球范围设备的,互相连接的计算机网络组成的全球系统。它是一个由局域或全球范围的私人的、公共的、学术的、商业的和政府网络组成的网络,通过多种电子、无线和光网络技术连接。因特网传输广泛的信息资源和服务,例如相互连接的超文本文档和万维网应用、电子邮件、网络电话和针对文件分享的点对点网络。
万维网 WWW
万维网是一个信息空间,在其间文档和其他网络资源通过统一资源定位符所标识,通过超文本链接互联,并可以通过因特网访问。
超文本传输协议 HTTP
超文本传输协议是一个针对于分布的、协作的超文本信息系统的应用协议。对于万维网,HTTP 是数据通信的基础。超文本是使用包含文本的节点之间的逻辑链接的结构化文本。HTTP 是交换或者传输超文本的协议。HTTP 的开发是在 1989 年由 CERN 的李开始。HTTP 的标准化开发由 IETF 和 W3C 协调,最终出版了一系列的草案。HTTP/1.1 第一版定义,即最常用的 HTTP 版本,诞生于 1997 年,RFC 2068,但其已经在 1999 年由 RFC 2616 所废弃。最近的版本,即 HTTP/2,在 2015 被标准化,并已经被当前主流的服务器所支持。
超文本标记语言 HTML
超文本标记语言是针对创建网页和网络应用的标准标记语言。它和层叠样式表、JavaScript 一起,组成了针对万维网的的技术基础。网络浏览器从网络服务器或者本地存储接收 HTML 文档并且将其渲染成多媒体网页。HTML 原始地、语义地描述了一个包含该文档外观提示的网页。
HTML 元素是 HTML 页面的基础材料。和结构一起,图像和例如交互式表单等其他对象可以被嵌入到渲染的页面中。它通过为例如头部、段落、链接、引用和其他项目等文本表示结构化语义,提供了一个方法来创建结构化文档。 HTML 元素由使用尖括号写成的标记表述。例如 <img />
和 <input />
这样的标记直接讲内容引入到页面。其他例如 <p>...</p>
包围并提供关于文档文本的信息并可能包含其他标记作为子元素。浏览器不显示这些 HTML 标记,但是使用它们来解释页面的内容。
HTML 可以嵌入用脚本语言,例如 JavaScript 书写的程序,这些脚本语言可以影响网页的行为和内容。CSS 的包含定义了内容的外观和布局。 W3C,HTML 和 CSS 标准的维护者,从 1997 年起鼓励使用 CSS 取代直接的描述外观的 HTML。
HTML5
HTML5 是在万维网上用来结构化和展示内容的标记语言。它是 HTML 标准的第五个版本,也是当前的版本。
它由 W3C 在 2014 年 10 月发布,用于提升该语言对最新的多媒体的支持,同时保持简单的人类可读性,和对于例如浏览器和语法分析器等设备和电脑的统一的理解。HTML5 想要不仅包含 HTML4,也包括 XHML 1 和 DOM Level 2 HTML。
HTML5 包括详细的处理模型,这些模型用来促进更多共同操作的实现;它扩展、提升并合理化针对文档的标记的可用性,并为复杂的网络应用引入标记和 APIs。基于相同原因,HTML5 也是一个跨平台移动应用的选择,因为它包含了设计和低功耗设备共同工作的特性。
许多新的语法特性被纳入。为了原生包含并处理多媒体和图形化内容,新的 <video>
、<audio>
、<canvas>
元素被加入进来,并支持 SVG 内容和 用于数学公式的 MathML。为了丰富文档的语义内容,新的页面结构元素,例如<main>
、<section>
、<article>
、<header>
、<footer>
、<aside>
、<nav>
和 <figure>
被加入。新的属性被引入,一些元素和属性已经被移除,并且例如 <a>
、<cite>
、<menu>
已经被修改、重新定义或者标准化了。
这些 APIs 和 DOM 现在已经是 HTML5 规格书的基础部分,并且 HTML5 页更好的定义了对于任何无效文档的处理流程。
CSS
层叠样式表是一个用于描述用标记语言写成的文档样式的样式表语言。虽然经常被用于设置用 HTML 和 XHTML 写的网页的图像样式和用户界面,这门语言也可以应用于任何 XML 文档,包括普通的 XML、SVG 和 XUL,也可以应用于渲染语音合成或者其他媒体。和 HTML、JavaScript 一起,CSS 也是基础技术,大部分站点用该技术创建具有迷人视觉的网页、网络应用的用户界面以及大多数移动应用的用户界面。
CSS 主要应用于从将文档样式从文档内容中分离,包括例如布局、颜色和文字等方面。该分离操作可以提高内容可达性,提供更多灵活性和在样式特性的规格上的控制力,使得多个 HTML 页面可以共享通过在单独的 .css 文件中说明的相关 CSS 的格式,并可以减少复杂度和在结构化内容上的重复性。
通过在他们使用的 CSS 文件中编辑几行代码,而不是改变文档中的标记,就可以使得对一个或多个文档的图形设计的改变可以轻松快速的应用。
CSS 规格书描述了在对于一个特殊元素的多种规则匹配的情况下,决定哪种样式规则适用的优先计划。在这个所谓的层叠里,属性或者权值被计算并且赋值给规则,这样结果就可以预判出来。
CSS 规格书被 W3C 组织维护。MIME 类型 text/css 被注册来使用 CSS。针对 CSS 文档,W3C 运行了一个免费的 CSS 有效性验证服务。
JavaScript
JavaScript 是一个高级的、动态的、弱类型的解释语言。它已经在 ECMAScript 语言规格书中被标准化了。和 HTML、CSS 一起,它也是万维网内容产品的三个核心技术之一;多数的站点都使用它,并且它被所有现代浏览器所支持且不需要插件。JavaScript 由于头等函数是基于原型的,使其成为多重编程范式语言,支持面向对象、命令式和函数式编程风格。它具有一个 API 可以同文本、数组、日期和正则表达式工作,但是没有包含任何 I/O,例如网络、存储或者图形设备,这些依赖于那些它所潜嵌入的主机环境。
虽然 JavaScript 和 Java 有很强的外观相似度,包括语言名称、语法以及格子的标准库,这两种语言在其设计上还是两种语言并且大相径庭。JavaScript 主要受到例如 Self 和 Scheme 的编程语言的影响。
JavaScript 在非基于网络的环境中被使用,例如 PDF 文档、指定站点浏览器和桌面小部件。更新更快的 JavaScript 虚拟机和构建它们的平台也增加了对于服务器侧网络应用程序的流行程度。在客户端侧,JavaScript 已经被传统地当作了一个解释型语言来实现,但是更多的最近的浏览器执行了即时编译。它也在使用在游戏开发、桌面和移动应用创建和随运行时环境一起的,例如 Node.js 的服务器侧网络编程中。
DOM
DOM 是 Document Object Model 的缩写,意思为文档对象模型。文档对象模型是一个跨平台的、语言独立的 API,它将一个 HTML、XHTML 或者 XML 文档看成是一个树形结构,在这个树形结构中,每个节点都是一个代表文档一部分的对象。这些对象可以被编程操纵,并且作为其结果的任何可视化的变化都会反映在文档的显示上。
DOM 的主要标准由 W3C 控制,它在 2004 年最后一次开发了一个推荐。WHATWG 接管了标准的开发,并把它作为一个活跃的文件发布。W3C 现在已经发布了 WHATWG 标准的稳定版简要说明。
应用
浏览器
为了渲染例如一个 HTML 网页的文档,大多数浏览器都使用了一个类似于 DOM 的内部模型。每个文档节点被组织在一个被称为 DOM 树的树结构中,顶层的节点被命名为 Document Object。当一个 HTML 页面在浏览器中被渲染时,浏览器将 HTML 下载到本地存储并自动将其转换以便屏幕上显示出页面。DOM 也是 JavaScript 在页面中传播浏览器状态的途径。
JavaScript
当一个网页被加载的时候,浏览器创建了一个该页面的文档对象模型。
由于对象模型,JavaScript 被充分赋予了创建动态 HTML 的能力:
- JavaScript 可以增加、修改和删除页面中的所有 HTML 元素和属性;
- JavaScript 可以修改页面中的所有 CSS 样式;
- JavaScript 可以对页面中的所有当前存在的事件作出响应;
- JavaScript 可以在页面中创建新的事件;
ECMAScript
ECMAScript 是一个被 ECMA 国际标准化的作为商标的脚本语言规格书。它曾基于 JavaScript,但 JavaScript 现在跟随 ECMAScript。它通常应用于万维网的客户侧脚本。ECMAScript 的其他实现包括 JScript 和 ActionScript。
关系
Network 和 Internet
Network 是最基础的网络概念,无论协议、范围和应用领域是什么,只要是计算设备通过数据链接交互数据就是所谓的网络。
Internet 是一个特殊的、范围较大的 Network。
Internet 和 WWW
万维网是一个抽象的信息空间,因特网是万维网的基础,用户通过因特网的连接访问万维网的内容。
WWW 和 HTTP/HTML
HTTP 是万维网的主要传输协议,规定了万维网服务器和浏览器之间如何传输数据,也有其他的传输协议例如 FTP 等。HTML 是万维网的重要且主要的格式,描述了网页的页面和内容,也有很多其他的格式,例如 XML/JSON/JPG 等众多格式。
DOM 和 JavaScript
Mozilla 的这篇文章全面的解释了 DOM 的定义以及和 JavaScript 的关系。
DOM 和 JavaScript 以前是一体的,网景有网景的接口和语言,微软有微软的接口和语言。后来因为浏览器兼容性实在太差,JavaScript 先是在 ECMA 建立了 ECMAScript 标准,所有的浏览器按照标准对语言做支持就可以,后来 W3C 工作组又对 DOM 进行了标准化。因此这两样东西分离开来。JavaScript 可以独立于 DOM 运行,例如 Node.js;DOM 也可以用其他语言来访问,例如 Python。
DOM 和 HTML/CSS
普通的 HTML 格式会被浏览器转换成标准的 DOM,以便通过 JavaScript 通过编程方式访问或者显示出来。同时浏览器将 CSS 也转换成相应的格式,并和已经转换成 DOM 树的网页做匹配,形成最终的显示结果。因此,CSS 和 DOM 没有直接关系。
网友评论