HTML5是HTML4.01和XHTML1.0之后超文本标记语言的最新版本,由一群自由思想者设计,最终实现了多媒体支持、交互性、更智能的表单和更好的语义标注。
HTML 5不只是 HTML规范的最新版本,它是用于生成现代 Web内容的一系列相关技术的总称,其中最重要的三个技术是:HTML5核心规范(table)、 CSS (class style)和 JavaScript。
一.HTML5 的历史
HTML在1993年第一次作为互联网草稿发布,随后经历了2.0、3.2和4.0,直到1999年 HTML4.01版本稳定下来。慢慢地,随着发展,越来越严格的 XHTML取代了它。
XHTML 的兴衰史
自发布了 HTML4.01版以来,万维网联盟(W3C)掌握了 HTML规范,但该组织并未发布新标准,而是致力于 XHTML1.0,以及之后的 XHTML2.0。XHTML是基于 XML的 HTML版本,它致力于实现更严格和统一的编码规范,解决了以前的 HTML4.01版本中由于编码不规范而导致浏览器出现的各种奇怪行为。因此, Web开发人员非常支持 XHTML。XHTML最大的优点,就是迫使开发人员养成良好的编码习惯,摒弃混乱的 HTML书写,最终减少浏览器解析页面的困难,方便移植到其他平台。
然而,越想往好的方面发展,往往就会带来灾难性的后果,世界上的一切都是如此。XHTML2.0规定了更严格的错误处理规则,规定浏览器必须拒绝无效的XHTML2页面,强制 Web开发人员在不向下兼容、不改变 HTML遗留下来的奇怪行为和编码习惯的情况下编写绝对正确的代码。按道理,取其精华,去其糟粕应该是件好事。但如果这样的话,上一个页面将不能兼容, Web开发人员的难度又增加了,而制定这一标准又太久,最终将被抛弃。
HTML5 的回归
W3C在2008年发布了HTML5的工作草案,XHTML2预定在2009年终止。在大约一年的时间里,HTML5规范进一步解决了很多实际问题,各大浏览器厂商开始升级产品支持HTML5。因此,浏览器的实验反馈,HTML5规范得到了不断的改进和完善,并很快融入到Web平台的实质性改进中。
和 XHTML2.0不同的是,开发HTML5规范的团队不会为了弥补以前 HTML的种种缺陷而去纠正它,而是尽可能地弥补 Web开发人员所需要的各种功能。其中包括更强大的CSS3,表单验证,音频视频,本地存储,地理定位,画作(画布),网络通讯等等。
二.HTML5 的功能
HTML5涵盖了哪些功能?主流浏览器是如何支持这些功能的?
1.HTML5 核心:
该部分主要组成为W3C官方规范,包括新的语义元素,新的增强的 Web表单,音频和视频,以及 JavaScript绘制的画布。大部分主流浏览器都对此有良好的支持;
2.曾经的 HTML5 标准:
这部分主要来源于原HTML5规范,大部分都需要JavaScript,支持Web应用开发。例如:本地数据存储、离线应用、消息传输;
3.非 HTML5 标准:
这部分通常指的是下一代功能。虽然从未进入HTML5标准,但人们还是会把它当作HTML5的一部分。这些包括最常见的CSS3,以及非常受欢迎的地理位置。
对于最为常用且实用的部分,基本上主流的浏览器都支持得比较好。而那些特殊需求的部分,则需要根据不同的浏览器检测才能知道是否支持自己想要的功能。
三.HTML5 的特点
在 HTML5 发展的同时,XHTML2.0 也在不断发展,那么到底是哪些特点导致 HTML5 取得最终的胜利呢?
1.向下兼容
对 XHTML2.0来说,需要遵循规则,否则不能显示,而HTML5则奉行“不破坏 Web”的原则。这就是说,以前存在的网页,仍然能够保持正确的显示。
HTML5规范当然是面向开发者,要求抛弃过去那些编码的坏习惯和废弃的标签元素;面向浏览器厂商,要求他们兼容 HTML遗留下来的所有东西,从而实现向下兼容。
2.用户至上
HTML 5遵循“用户至上”的原则,当出现具体问题时,首先考虑用户,其次考虑开发人员,然后再考虑浏览器厂商,最后才考虑制定规范。例如,开发者在编写代码时不严谨,导致本应出现警告或错误,但页面却正常显示。
3.化繁为简
HTML5 对比之前的 XHTML,做了大量的简化工作。具体如下:
(1)替换复杂的JavaScript具有浏览器的原生能力;
(2).DOCTYPE 被简化到极致;
(3).字符集声明被简化;
(4).简单强大的 API。
4.无插件范式
在HTML5出现之前,很多功能只能通过插件或者hack(比如画图API)来实现,但是HTML5本身就提供了这些支持。使用插件有许多问题,如下所示:
(1).插件安装容易失败;
(2).插件被浏览器或软件禁用屏蔽(如 Flash 插件);
(3).插件经常会被爆出漏洞被利用攻击;
(4).插件不容易与 HTML 文档其他部分集成(比如整体透明化等)。
5.访问通用性
这个原则分为三个概念:
(1).可访问性:比如更加利于残障人士的阅读方案;
(2).媒体中立:比如 HTML5 的媒体播放在不同设备或平台均能正常运行;
(3).支持所有语种:比如新元素。
6.引入语义
HTML 5引入一些标签元素来区分不同的意思和内容。该方法大大提高了代码编写者的可读性,并且便于代码区域查询。
7.引入原生媒体支持
HTML5的一个重大改进就是支持直接在浏览器中播放视频和音频文件,而这类功能之前都需要借助插件来实现。
8.引入可编程内容
HTML5 最大的变化就是引入了需要通过 JavaScript 编程才能完全的各种效果,而这些很多都是 HTML5 原生的。那么现在 HTML5 可以理解为 HTML + CSS + JavaScript + API 的总称。
以上就是关于HTML5的一些介绍,谢谢大家观看。
TML5 是第五个且是当前的 HTML 版本,它是用于在万维网上构建和呈现内容的标记语言。本文将帮助读者了解它。 -- Palak Shah
本文导航
-新标签和元素 …… 08%
-HTML5 的高级功能 …… 16%
-地理位置 …… 16%
-网络存储 …… 33%
-应用缓存(AppCache) …… 44%
-视频 …… 50%
-音频 …… 61%
-画布(Canvas) …… 71%
-HTML5 工具 …… 78%
编译自: http://opensourceforu.com/2017/06/introduction-to-html5/作者: Palak Shah
译者: geekpi
HTML5 是第五个且是当前的 HTML 版本,它是用于在万维网上构建和呈现内容的标记语言。本文将帮助读者了解它。
HTML5 通过 W3C 和Web 超文本应用技术工作组Web Hypertext Application Technology Working Group之间的合作发展起来。它是一个更高版本的 HTML,它的许多新元素可以使你的页面更加语义化和动态。它是为所有人提供更好的 Web 体验而开发的。HTML5 提供了很多的功能,使 Web 更加动态和交互。
HTML5 的新功能是:
新标签,如 <header> 和 <section>
用于 2D 绘图的 <canvas> 元素
本地存储
新的表单控件,如日历、日期和时间
新媒体功能
地理位置
HTML5 还不是正式标准(LCTT 译注:HTML5 已于 2014 年成为“推荐标准”),因此,并不是所有的浏览器都支持它或其中一些功能。开发 HTML5 背后最重要的原因之一是防止用户下载并安装像 Silverlight 和 Flash 这样的多个插件。
语义化元素: 图 1 展示了一些有用的语义化元素。
表单元素: HTML5 中的表单元素如图 2 所示。
图形元素: HTML5 中的图形元素如图 3 所示。
媒体元素: HTML5 中的新媒体元素如图 4 所示。
图 1:语义化元素
图 2:表单元素
图 3:图形元素
图 4:媒体元素
地理位置
这是一个 HTML5 API,用于获取网站用户的地理位置,用户必须首先允许网站获取他或她的位置。这通常通过按钮和/或浏览器弹出窗口来实现。所有最新版本的 Chrome、Firefox、IE、Safari 和 Opera 都可以使用 HTML5 的地理位置功能。
地理位置的一些用途是:
公共交通网站
出租车及其他运输网站
电子商务网站计算运费
旅行社网站
房地产网站
在附近播放的电影的电影院网站
在线游戏
网站首页提供本地标题和天气
工作职位可以自动计算通勤时间
工作原理: 地理位置通过扫描位置信息的常见源进行工作,其中包括以下:
全球定位系统(GPS)是最准确的
网络信号 - IP地址、RFID、Wi-Fi 和蓝牙 MAC地址
GSM/CDMA 蜂窝 ID
用户输入
该 API 提供了非常方便的函数来检测浏览器中的地理位置支持:
if (navigator.geolocation) {// do stuff
}
getCurrentPosition API 是使用地理位置的主要方法。它检索用户设备的当前地理位置。该位置被描述为一组地理坐标以及航向和速度。位置信息作为位置对象返回。
语法是:
getCurrentPosition(showLocation, ErrorHandler, options);
showLocation:定义了检索位置信息的回调方法。
ErrorHandler(可选):定义了在处理异步调用时发生错误时调用的回调方法。
options (可选): 定义了一组用于检索位置信息的选项。
我们可以通过两种方式向用户提供位置信息:测地和民用。
描述位置的测地方式直接指向纬度和经度。
位置信息的民用表示法是人类可读的且容易理解。
如下表 1 所示,每个属性/参数都具有测地和民用表示。
图 5 包含了一个位置对象返回的属性集。
图5:位置对象属性
网络存储
在 HTML 中,为了在本机存储用户数据,我们需要使用 JavaScript cookie。为了避免这种情况,HTML5 已经引入了 Web 存储,网站利用它在本机上存储用户数据。
与 Cookie 相比,Web 存储的优点是:
更安全
更快
存储更多的数据
存储的数据不会随每个服务器请求一起发送。只有在被要求时才包括在内。这是 HTML5 Web 存储超过 Cookie 的一大优势。
有两种类型的 Web 存储对象:
本地 - 存储没有到期日期的数据。
会话 - 仅存储一个会话的数据。
如何工作: localStorage 和 sessionStorage 对象创建一个 key=value 对。比如: key="Name", value="Palak"。
这些存储为字符串,但如果需要,可以使用 JavaScript 函数(如 parseInt() 和 parseFloat())进行转换。
下面给出了使用 Web 存储对象的语法:
存储一个值:
localStorage.setItem("key1", "value1");
localStorage["key1"] = "value1";
得到一个值:
alert(localStorage.getItem("key1"));
alert(localStorage["key1"]);
删除一个值: -removeItem("key1");
删除所有值:
localStorage.clear();
应用缓存(AppCache)
使用 HTML5 AppCache,我们可以使 Web 应用程序在没有 Internet 连接的情况下脱机工作。除 IE 之外,所有浏览器都可以使用 AppCache(截止至此时)。
应用缓存的优点是:
网页浏览可以脱机
页面加载速度更快
服务器负载更小
cache manifest 是一个简单的文本文件,其中列出了浏览器应缓存的资源以进行脱机访问。 manifest 属性可以包含在文档的 HTML 标签中,如下所示:
<html manifest="test.appcache">...
</html>
它应该在你要缓存的所有页面上。
缓存的应用程序页面将一直保留,除非:
用户清除它们
manifest 被修改
缓存更新
视频
在 HTML5 发布之前,没有统一的标准来显示网页上的视频。大多数视频都是通过 Flash 等不同的插件显示的。但 HTML5 规定了使用 video 元素在网页上显示视频的标准方式。
目前,video 元素支持三种视频格式,如表 2 所示。
下面的例子展示了 video 元素的使用:
<! DOCTYPE HTML><html>
<body>
<video src=" vdeo.ogg" width="320" height="240" controls="controls">
This browser does not support the video element.
</video>
</body>
</html>
例子使用了 Ogg 文件,并且可以在 Firefox、Opera 和 Chrome 中使用。要使视频在 Safari 和未来版本的 Chrome 中工作,我们必须添加一个 MPEG4 和 WebM 文件。
video 元素允许多个 source 元素。source 元素可以链接到不同的视频文件。浏览器将使用第一个识别的格式,如下所示:
<video width="320" height="240" controls="controls"><source src="vdeo.ogg" type="video/ogg" />
<source src=" vdeo.mp4" type="video/mp4" />
<source src=" vdeo.webm" type="video/webm" />
This browser does not support the video element.
</video>
图6:Canvas 的输出
音频
对于音频,情况类似于视频。在 HTML5 发布之前,在网页上播放音频没有统一的标准。大多数音频也通过 Flash 等不同的插件播放。但 HTML5 规定了通过使用音频元素在网页上播放音频的标准方式。音频元素用于播放声音文件和音频流。
目前,HTML5 audio 元素支持三种音频格式,如表 3 所示。
audio 元素的使用如下所示:
<! DOCTYPE HTML><html>
<body>
<audio src=" song.ogg" controls="controls">
This browser does not support the audio element.
</video>
</body>
</html>
此例使用 Ogg 文件,并且可以在 Firefox、Opera 和 Chrome 中使用。要在 Safari 和 Chrome 的未来版本中使 audio 工作,我们必须添加一个 MP3 和 Wav 文件。
audio 元素允许多个 source 元素,它可以链接到不同的音频文件。浏览器将使用第一个识别的格式,如下所示:
<audio controls="controls"><source src="song.ogg" type="audio/ogg" />
<source src="song.mp3" type="audio/mpeg" />
This browser does not support the audio element.
</audio>
画布(Canvas)
要在网页上创建图形,HTML5 使用 画布 API。我们可以用它绘制任何东西,并且它使用 JavaScript。它通过避免从网络下载图像而提高网站性能。使用画布,我们可以绘制形状和线条、弧线和文本、渐变和图案。此外,画布可以让我们操作图像中甚至视频中的像素。你可以将 canvas 元素添加到 HTML 页面,如下所示:
<canvas id="myCanvas" width="200" height="100"></canvas>
画布元素不具有绘制元素的功能。我们可以通过使用 JavaScript 来实现绘制。所有绘画应在 JavaScript 中。
<script type="text/javascript">var c=document.getElementById("myCanvas");
var cxt=c.getContext("2d");
cxt.fillStyle="blue";
cxt.storkeStyle = "red";
cxt.fillRect(10,10,100,100);
cxt.storkeRect(10,10,100,100);
</script>
以上脚本的输出如图 6 所示。
你可以绘制许多对象,如弧、圆、线/垂直梯度等。
为了有效操作,所有熟练的或业余的 Web 开发人员/设计人员都应该使用 HTML5 工具,当需要设置工作流/网站或执行重复任务时,这些工具非常有帮助。它们提高了网页设计的可用性。
以下是一些帮助创建很棒的网站的必要工具。
HTML5 Maker: 用来在 HTML、JavaScript 和 CSS 的帮助下与网站内容交互。非常容易使用。它还允许我们开发幻灯片、滑块、HTML5 动画等。
Liveweave: 用来测试代码。它减少了保存代码并将其加载到屏幕上所花费的时间。在编辑器中粘贴代码即可得到结果。它非常易于使用,并为一些代码提供自动完成功能,这使得开发和测试更快更容易。
Font dragr: 在浏览器中预览定制的 Web 字体。它会直接载入该字体,以便你可以知道看起来是否正确。也提供了拖放界面,允许你拖动字形、Web 开放字体和矢量图形来马上测试。
HTML5 Please: 可以让我们找到与 HTML5 相关的任何内容。如果你想知道如何使用任何一个功能,你可以在 HTML Please 中搜索。它提供了支持的浏览器和设备的有用资源的列表,语法,以及如何使用元素的一般建议等。
Modernizr: 这是一个开源工具,用于给访问者浏览器提供最佳体验。使用此工具,你可以检测访问者的浏览器是否支持 HTML5 功能,并加载相应的脚本。
Adobe Edge Animate: 这是必须处理交互式 HTML 动画的 HTML5 开发人员的有用工具。它用于数字出版、网络和广告领域。此工具允许用户创建无瑕疵的动画,可以跨多个设备运行。
Video.js: 这是一款基于 JavaScript 的 HTML5 视频播放器。如果要将视频添加到你的网站,你应该使用此工具。它使视频看起来不错,并且是网站的一部分。
The W3 Validator: W3 验证工具测试 HTML、XHTML、SMIL、MathML 等中的网站标记的有效性。要测试任何网站的标记有效性,你必须选择文档类型为 HTML5 并输入你网页的 URL。这样做之后,你的代码将被检查,并将提供所有错误和警告。
HTML5 Reset: 此工具允许开发人员在 HTML5 中重写旧网站的代码。你可以使用这些工具为你网站的访问者提供一个良好的网络体验。
Palak Shah
作者是高级软件工程师。她喜欢探索新技术,学习创新概念。她也喜欢哲学。你可以通过 palak311@gmail.com[1] 联系她。
via: http://opensourceforu.com/2017/06/introduction-to-html5/
作者:Palak Shah[2] 译者:geekpi 校对:wxy
本文由 LCTT 原创编译,Linux中国 荣誉推出
如果您正在运行一个网站,那么确保您的网站是安全的至关重要。黑客一直在寻找可利用的漏洞,如果他们能在您的网站上找到漏洞,他们可能会造成严重破坏。这就是网络渗透测试出现的地方。Web渗透测试是检测和利用网站上的安全漏洞的行为。在这篇文章中,我们将介绍什么是网络渗透测试、为什么需要它以及如何使用它来保护您的网站。我们还将研究一些可用的顶级 Web 渗透测试工具,包括开源和商业。
Web 应用程序渗透测试,通常称为 Web 应用程序安全测试,是检测和利用 Web 应用程序中的漏洞的活动。渗透测试可用于发现已知和未知的漏洞。一旦发现漏洞,测试人员可能会尝试利用它来窃取机密信息或获得对系统的控制权。
您可能需要对您的网站进行渗透测试的原因有很多。也许您正在启动一个新站点,并希望在上线之前确保它是安全的。或者,您可能遇到过网站被黑客入侵的事件,并且您想防止它再次发生。无论哪种方式,网络渗透测试都可以帮助您在潜在的安全问题被利用之前识别和修复它们。
有许多可用的网络渗透测试工具,包括开源的和商业的。以下是一些顶级选项:
Web 渗透测试可以通过在潜在漏洞被利用之前识别和修复它们来帮助您实现对安全标准的合规性。您可以通过确保您的网站安全来保护您的消费者数据并避免巨额罚款和损失。
为确保您有效地对您的网站进行渗透测试,请记住以下事项清单:
通过执行这些步骤,您可以确保您的网站安全且符合安全标准。
Wapiti 是 SourceForge 的一个免费开源项目,用于对 Web 应用程序进行黑盒测试。Wapiti 使用黑盒测试来分析 Web 应用程序的潜在安全漏洞。因为它是一个命令行程序,所以您需要熟悉各种 Wapiti 命令。
Wapiti 对于老手来说很容易使用,但对于新手来说可能很难。Wapiti 将有效负载注入网站以确定它是否易受攻击。这个特殊的开源安全测试工具可以处理 GET 和 POSTHTTP 攻击。
SQLMap 是一个免费的开源工具,可让您自动检测和利用基于数据库的 SQL 注入缺陷。安全测试软件拥有强大的测试引擎,可用于测试六种SQL注入攻击,即——
流行的开源安全测试软件是 SonarQube。它用于评估网站应用程序代码的质量以及识别安全漏洞。尽管它是用 Java 编写的,但 SonarQube 可以分析 20 多种不同的编程语言。SonarQube 识别问题并以绿灯或红灯显示。
第一个处理低风险的漏洞和问题,而后者指的是严重的漏洞和问题。更有经验的用户可以访问命令提示符。对于刚刚开始测试的个人,有一个交互式用户界面 (GUI)。
Astra Security 成立的目的是让最终用户更容易获得在线应用程序的安全性。Astra's Pentest 的精神已作为其精神的一部分融入日常生活。使用此 Web 应用程序渗透测试解决方案有几个好处。例如,您可以将 CI/CD 工具与 Astra pentest 套件连接起来,以便在有代码更新时触发自动扫描。
您还可以将其连接到例如 Jira 或 Slack,这样您就可以将渗透测试和恢复相关活动分配给您的团队成员,而无需他们访问套件。当然,渗透测试套件允许您与软件开发人员和安全专家交谈。
Netsparker 是一个在线应用程序和 Web API 安全工具,可以发现 SQL 注入和跨站点脚本漏洞。Netsparker 通过唯一地验证它们来证明已验证的问题是真实的,而不是误报。
因此,您不必在扫描完成后浪费数小时手动检查每个已识别的漏洞。它可以作为 Windows 程序和在线服务访问。
Acunetix 是一款全自动 Web 应用程序漏洞扫描程序,可发现和报告超过 4,500 个 Web 应用程序安全漏洞,包括SQL 注入和 XSS 的所有变体。
它通过自动化可能需要数小时才能手动执行的活动来补充渗透测试员的工作,同时仍能在创纪录的时间内提供正确的答案。
Acunetix 支持 HTML5、JavaScript和单页应用程序以及 CMS 系统。它为渗透测试人员提供强大的手动工具,并与流行的问题跟踪器和 WAF 一起使用。
因为它可以确保您网站的安全性,所以网络渗透测试至关重要。您可以通过执行 Web 渗透测试在潜在漏洞被黑客利用之前修复它们。有多种不同类型的 Web 渗透测试软件可用,包括开源的和商业的。在本文中,我们讨论了一些顶级 Web 渗透测试工具,可帮助您开始测试网站的安全性。
*请认真填写需求信息,我们会在24小时内与您取得联系。