DOCTYPE html 선언이란?
우리말로는 문서형(DTD, Document Type Declaration) 정의라고 번역할 수 있다.
웹문서가 어떤 버전의 HTML 언어로 작성되었는지 결정하는 기능.
DTD(Document Type Declaration)을 통해서 현재의 웹 문서가 어떤 버전의 HTML 기술로 작성되었는지 웹브라우저에 전달한다.
문서형은 HTML5, XHTML, HTML의 세가지 문서 유형이 존재하며, 기술한 유형에 따라 마크업 문서의 요소와 속성들을 처리하는 기준이 되며, 유효성 검사에 이용된다.
한편, 문서형 정의를 생략하는 경우, 웹 브라우저가 표준모드가 아니라 비표준 모드로 렌더링되어 크로스 브라우징에 어려움을 겪는다. 문서형 정의는 HTML 문서의 최상위에 위치해야 한다.
선언의 목적
문서 간 호환성을 높이기 위함.
HTML 버전마다 적용되는 태그가 있고, 적용되지 않는 태그가 있다. 만약 선언 없이 구버전과 신버전 HTML을 사용한다면, 웹브라우저는 현재 버전의 엄격한 기준으로 과거 버전에서 정상적으로 작성된 태그들을 문법 오류로 간주하는 오류를 범할 것이다.
<center>
, <font>
태그 등은 현재 HTML5 버전에서는 웹 표준이 아니다. 하지만 과거 HTML 문서에서는 표준이다.
이럴 경우 과거 문서가 단지 <font>
태그를 사용했다는 이유만으로 웹 표준이 아니라고 정의하게 되면 불합리!
즉 과거 HTML 버전에서는 해당 버전에 맞게 문법을 검사하고 현재 버전에서는 현재 기준에 맞게 검사하는 기능이다.
DTD
이전 버전의 HTML(HTML2~HTML4)은 SGML(Standard Generalized Makup Language)에 기반을 두어 만들어졌기 때문에 DTD 참조가 필요하며, 이 때문에 DOCTYPE 선언을 하려면 공개 식별자와 시스템 식별자가 포함된 긴 문자열을 작성해야 한다.
HTML5에서는
<!DOCTYPE html>
의 형태로 간단하게 선언할 수 있다.
SGML에 기반을 두지 않아서 DTD 참조가 필요 없으며, 최소한의 코드 작성이 기본 방향이라 매우 간단히 선언할 수 있다.
DOCTYPE과 MIME의 차이
웹 서버는 송신하는 각 문서를 MIME(Multipart Internet Mail Extensions)로 확인한다. MIME은 콘텐츠 타입이라고 부르기도 한다. 이 콘텐츠 타입은 문서의 HTTP head 요소에 들어있으며, 브라우저는 콘텐츠 타입에 따라 문서 처리 방식을 결정하게 된다. 콘텐츠 타입이 text/html
인 문서가 수신되면 브라우저는 그 문서를 HTML로 렌더링한다.
출처
#공부/웹
'웹' 카테고리의 다른 글
자바스크립트의 비동기 처리와 콜백, Promise (0) | 2019.12.14 |
---|---|
ARIA (0) | 2019.12.02 |
<meta> (0) | 2019.12.02 |