Mozilla's DOCTYPE sniffing

이 문서는 Mozilla가 strict 모드 대 호환(quirks) 모드를 결정하기 위해 DOCTYPE 선언을 쓰는 법을 기술합니다. 이를 결정하는 코드는 현재 nsParser.cpp의 DetermineParseMode()에 있습니다. 모드 결정의 역사 일부는 bug 1312bug 55264를 참조하세요. Mozilla 1.0 쯤에 새로 생긴 거의 표준(Almost-Standards) 모드는 bug 153032를 참조하세요. 다음이 이 행동(behavior)을 고르게 했던 목적들입니다:

  • 바르게 표시되도록 호환 모드일 필요가 있는 현재 웹 상의 거의 모든 text/html 페이지는 호환 모드를 써서 표시되어야 합니다. (전부는 아니고 거의 모두가 다음 목적 역시 고려해야 함.)
  • 현재 표준에 따라 웹 페이지를 작성하는 제작자는 strict 모드를 일으킬 수 있어야 합니다.
  • 장차 생길 DOCTYPE 선언에 공용 식별자를 써서 작성된 페이지는 strict 모드를 써서 표시되어야 합니다.

바꿔 말하면, 이 알고리즘이 Mozilla가 웹에서 알려진 중요 사용자 에이전트가 된 뒤로 작성되었던 페이지를 결정하는 경우에 우리가 찾을 수 있는 가장 좋은 접근법입니다.

완전 표준 모드

다음이 완전 표준(full standards) 모드를 일으킵니다:

거의 표준 모드

다음은 거의 표준 모드를 일으킵니다. 거의 표준 모드는 1.0과 1.1 알파 뒤지만, 1.0.1과 1.1 베타 앞에 만들었습니다. 거의 표준 모드가 생기기 전에 이 doctype은 완전 표준 모드를 일으켰습니다.

호환 모드

다음은 호환 모드를 일으킵니다 (이 목록은 웹 상에 이미 존재하는 페이지가 호환 모드를 일으키게 하도록 포괄할 필요가 있습니다):

이 목록 준비에 다음 사이트가 유용했습니다: W3C HTML Validator, HTMLHelp HTML Validator.

부정확한 대/소문자로 공용 식별자를 쓰는 상당수 페이지 때문에 모든 공용 식별자 비교는 대/소문자를 구별하지 않음을 주의하세요. (이는 엄밀히 말하면 틀린데, 문자열이 대/소문자를 구별하기 때문입니다.)

같이 보기

원본 문서 정보

  • 제작자: David Baron
  • 최근 업데이트 날짜: August 2, 2005
  • 저작권 정보: Copyright (C) David Baron

 

문서 태그 및 공헌자

태그: 
 이 페이지의 공헌자: teoli, Netaras
 최종 변경: teoli,