前言
和大多数同学一样,刚学习HTML的时候首先就会了解到其基本结构,第一句就是<!DOCTYPE html>,大部分教程都会解释这个是用来声明文档类型和HTML版本的,更深入点可能会了解到还有HTML版本的差异等,但说起来总有些不清不楚的地方,今天从新梳理了下,记录一下。
1. 从互联网媒体类型MIME说起
互联网媒体类型(Internet media type,也称为MIME类型(MIME type)或内容类型(content type))是给互联网上传输的内容赋予的分类类型。 --- 维基百科
MIME类型标准由IANA发布,最早是用在SMTP协议的电子邮件中,现在WEB中的HTTP协议也在使用。
命名格式:类型名 / 子类型名 [ ; 可选参数 ]
媒体类型:参考https://www.w3school.com.cn/media/media_mimeref.asp
从参考手册可以查到,HTML是TEXT类型中的一个子类型。因此经常会在一个请求头部中看到Accept、Content-Type字段(Content-Type代表发送的实体数据的数据类型,Accept代表客户端希望接受的数据类型)。
2. 标记语言通用标准SGML
SGML是国际上定义电子文档和内容描述的标准。它源于1969年IBM公司开发的文档描述语言GML,它也是一个ISO标准。
MIME类型:application/sgml, text/sgml
延伸类型:HTML和XML同样衍生于它
3. HTML版本差异
在HTML5之前的版本都是基于SGML延伸的,需要引用DTD来指定标记语言的规则。所以旧版本的DOCTYPE声明会看起来很长。而HTML5 不是基于 SGML,因此不要求引用 DTD。
版本 | 声明 |
---|---|
HTML 5 | <!DOCTYPE html> |
HTML 4.01 Strict | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> |