关于Web标准与W3C的简单解析

  • W3C是什么?
  • 什么是Web标准?
  • Web标准与前端开发相关的主要内容

 一、主题解析

W3C:万维网联盟

英文全称:World Wide Web Consortium

创建时间:1994年

职能:制定web技术协议和指南,解决web应用在不同平台、技术和开发者带来的的不兼容性,确保web信息的顺利和完整流通。

成果/贡献:Web标准

1.2万维网简史:

万维网是由欧洲核子研究组织的一个项目发展而来,Tim Bemers-Lee(蒂姆·伯纳斯·李)开发出万维网的雏形。Tim Bemers-Lee万维网的发明人和万维网联盟的主任。

1994年10月万维网联盟于麻省理工学院计算机科学实验室成立,其创建目的是为了完成麻省理工学院与欧洲粒子物理研究所之间的协同工作,并得到美国国防部高级研究计划署与欧洲委员会的支持。

万维网成员机构:

美国麻省理工大学、欧洲数学与信息学研究联盟、日本庆应大学、中国北京航天工业大学四个全球总部的全部团队联合运营。W3C还在全球20个国家和地区设立办事处机构,并拥有各国*、行业、标准化组织、科研机构等近400家会员单位,覆盖IT及互联网、出版、电视与媒体、汽车、金融、航空等众多领域。

Web标准:(网络标准)

1.3Web与Internet的区别:

Internet即互联网是计算机网络的全球系统,它使用标准化的互联网协议套件(TCP/IP)通过数据包交换来交换数据,因此互联网是由TCP/IP标准定义的网络。

Web的全称是Web的全称是World Wide Web,即全球广域网,又被称为万维网。本质是一个信息空间,其中的资源、项目由统一的标识符URL全局标识。

所以,Web标准也就是全球广域网这个信息空间的实现技术协议和指南,例如网页设计和应用关于页面的技术标准包括:HTML、CSS、SVG、Ajax、及其他Web应用程序(WebApps)的技术标准等。

1.4Web标准主要包括:

网页设计和应用技术标准、设备网络技术标准、网络架构技术标准、语义网技术标准、XML技术标准、服务忘技术标准、浏览器和创作工具技术标准。

1.5W3C官方教程和课程

1.6Web所有标准和草案

 二、Web标准与前端开发相关的主要内容

2.1HTML相关标准:XHTML™ 1.0 可扩展超文本标记语言(第二版)HTMLHTML5

 XHTML标准的简单介绍

XHTML本质上是一种文档类型,XHTML1.0也是HTML4的另一种表述,也可以说它是符合XML标准的Web页面结构语言。浏览器会基于HTML文件中的DTD标记的XHTML1.0文档类型对HTML文件进行相对应的解析,最终生成基于XHTML1.0的页面上下文对象结构即Document结构。

例如一个严格符合XHTML1.0标准的HTML文件必须在DCOTYPE声明(必须)或者在在文件头部加入XML声明(非必须):

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html 
     PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <头>
    <title>虚拟图书馆</title>
  </头>
  <身体>
    <p>移至 <a href="http://example.org/">example.org</a>。</p>
  </正文>
</html>

除了以上标准的XHTML声明方式,可能在HTML文件中部分结构要求按照XHTML文档类型解析,XHTML标准可以与其他命名空间一起使用:

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <头>
    <title>一个数学例子</title>
  </头>
  <身体>
    <p>以下是 MathML 标记:</p>
    <math xmlns="http://www.w3.org/1998/Math/MathML">
      <申请> <日志/>
        <日志库>
          <cn> 3 </cn>
        </日志库>
        <ci> x </ci>
      </申请>
    </数学>
  </正文>

标准的XHTML文件除了需要按照要求声明文档类型以外,还主要包括:文档根元素必须是html、元素和属性名必须小写、对于非空元素必须闭合、属性必须使用引号引起来、属性值必须完整、属性不能出现在没有指定值的元素中、空元素必须使用“/”结束标签等,除了前面列举的部分标准以外还包含一系列XHTML其他标准规定没有严格的在编码中实现都可能会导致html文件解析出错。

HTML标准的简单介绍(这里不讨论HTML文件相关标准,仅仅讨论Web标准中的页面结构语言HTML):

HTML又被称为超文本标记语言,与XHTML的第一个区别在于“可扩展”,HTML的元素是不可扩展的而XHTML可以进行自定义扩展;第二个区别在于XHTML需要严格的按照XML标准基础闭合和嵌套元素,而HTML可以在一定条件下不需要严格的闭合和嵌套标签;

但是在HTML5之前,HTML的文档依然采用XHTML文档类型来解析,所以XHTML1.0也通常被称作为HTML4,HTML在一定程度上标准化了一些元素及其相对因的特定属性,并没有形成自身相对应的文档类型,基于这个原因HTML4也通常被称为是XHTML向HTML发展的一个过渡版本。

HTML5标准的简单介绍:

HTML5标准是万维网联盟核心语言于2014年12月29日的第五次主要修订的超文本标记语言(HTML)版本,包含确定了新的文档类型解析标准即HTML5的文档类型,在该新的文档类型下采用以下方式来确定文档解析方式:

<!DOCTYPE html>

HTML5除了确定新的标准化的文档解析类型,还包括了标准了一部分HTML元素:section、article、main、aside、header、footer、nav、figure、figcaption、template等;

HTML5同时还废除了一部分HTML元素:frame、frameset、noframe、applet、big、center、basefront。

HTML5还标准化了一些新特性,比如音频、视频API,解决了在此之前与此相关的功能对插件的依赖问题;标准化的支持了新功能,比如地理位置、本地离线存储、会话存储、文件读写等API。

详细HTML5标准参考官方文档,关于HTML5与HTML4的区别也可参考万维网联盟官网的文档:https://www.w3.org/TR/2014/NOTE-html5-diff-20141209/

2.2CSS相关标准:Web 内容可访问性指南 1.0 的 CSS 技术CSS 盒模型模块级别 3CSS 页面浮动级联样式表 (CSS) 快照 2010CSS 伪元素模块级别 4选择器 API 级别 2

CSS相关标准是组成Web标准的重要部分,这一部分标准主要定义了标准化的Web样式实现技术是基于CSS的层叠样式表,以及标准化了样式相关实现标准,让所有web开发者在遵循该标准的前提下可以在任何web平台得到完全一致的样式呈现。

2.3HTTP相关标准:XMLHttpRequest 级别 1

在Web标准体系中,基于IP/TCP的HTTP是Web实现的网络技术基础,它是基于响应码会话验证实现自动连接,也因此实现了Web的开放互联。

这里列举的XMLHttpRequest是Web基于HTTP标准化的异步数据交换客户端标准。

该异步数据交换技术也通常被简称为ajax,其全称为Asynchronous Javascript And XML即异步JS和XML。但是要注意的是JavaScript不属于Web标准,所以整体的Ajax技术标准不属于Web标准。

2.4其他比较常见的前端开发相关标准:WebRTC 1.0:浏览器之间的实时通信文件接口WebSocket APIJSON-LD 1.0 处理算法和 API跨域资源共享W3C DOM 4.1UI 事件 KeyboardEvent 键值网址地理定位 API 规范第 2 版WebM 流格式触摸事件可缩放矢量图形 (SVG) 1.1(第二版)

在其他相关标准中这里需要终点提到DOM标准,在很多时候我们都会将Web标准简单的用结构、样式、行为来分类理解和描述,通常我们将HTML相关标准理解为结构,CSS相关标准理解为样式,将JS理解为行为,这样的描述仅仅只能用于开发规范的结构、样式、行为相分离,如果描述为Web标准是不合适的。我们需要注意的是JS不是Web标准,在Web标准中承载行为的是DOM和其他一些API,JS只是实现这个行为逻辑的过程的一种方式,说的简单点就是其他编程语言一样可以调用DOM接口实现行为的逻辑过程。

 

关于更详细的Web标准和Web开发技术建议大家参考W3C的官方标准文档,这篇博客仅仅只是做了非常简单的描述,其目的是为想深度学习Web技术的朋友提供一些阅读标准文档的思路,如果在某些内容上存在于Web标准真实含义有出入的地方还请各路兄弟姐妹指正,感谢各位看官!

 

 

 

上一篇:自考总结——学习方法(一)


下一篇:Markdown怎么使用制表符TAB键?为什么TAB失灵了?