2012년 11월 30일 금요일

[문서구조-웹표준 교과서]2. XHTML의 개요

@ XHTML의 전체 모양과 서식
1. XHTML의 전체 모양

 - head 요소는 문서의 기본정보가 들어가는 공간이고 기본적으로 head에 적힌 내용은 화면에 표시되지 않는다. head 요소에는 문서의 타이틀을 지정하는 title요소와 메타태그를 지정하는 meta 요소 등이 포함된다.

2. XHTML 서식

# 요소명은 '<'과 '>'으로 둘러싼다.
# <요소명>~</요소명> 형식으로 기술한다.
# 요소에 속성을 부여할 때 시작태그를 <요소명 속성명="속성값"> 형식으로 기술

 - 속성명은 반드시 소문자로 적지만 속성값은 상황에 맞춰 대문자나 소문자, 한국어도 포함할 수 있다.

# 하나의 요소에 복수의 속성을 부여할 때에는 반각 스페이스 이용
# 부모 요소와 자식 요소의 관계를 적절하게 지정한다.
# 공백문자 처리

- XHTML 에서는 스페이스와 Tab키, 행 바꿈등을 동일하게 공백문자로 처리한다.

@ XML 선언, 문서형 선언, 네임 스페이스와 언어코드
1. XML 선언

 - XHTML 은 XML 어플리케이션의 한 종류이기 때문에 문서의 처음 부분에 XML선언을 기술한다. 문자코드는 UTF-8 또는 UTF-16이기 때문에 다른 문자코드 세트를 사용할 때는 정확히 지정해야 한다.

#버전 속성 

- 버전 속성은 필수 속성이며 XML의 버전을 지정한다.

#인코딩 속성

- 인코딩에 사용되는 문자코드 세트를 지정한다.
 - 현 상황에서는 UTF-8이나 EUC-KR로 지정하는 것이 일반적이다.

# standalone 속성

- XML선언에서는 standalone 속성을 지정할 수 있다. standalone 속성은 외부 DTD 의 참조 여부를 지정하기 위한 속성이며 값을 'Yes'라고 지정하면 '참조하지 않는다', 'No'라고 지정하면 '참조한다'가 된다.
-  XHTML 문서에서는  문서형 선언에 외부DTD 를 참조한다. 그렇기 때문에 standalone 속성을 지정할 때에는 'No'라고 지정해야 하지만 기본값이 'No'이기 때문에 특별히 standalone 속성을 지정하지 않아도 좋다.

2. 문서형 선언(DTD : Document Type Declaration)

- XHTML 에는 여러 버전이 있기 때문에 '이 문서는 어떤 버전의 XHTML로 작성되었다'라고 명시할 필요가 있다.

# 문서형 선언의 내용

- 문서형 선언은 '공개 식별자'와 '시스템 식별자'로 구성된다.
 1) 공개 식별자 : //W3C//DTD XHTML 1.0 Strict//EN
 2) 시스템 식별자 : http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd

- 공개 식별자는 문서형 정의를 참조하기 위한 식별자이다. W3C등의 표준화 단체가 정의하는 문서형 정의를 참조하기 위한 식별자이므로 문서작성자가 임의로 바꿀 수 없다.
- 시스템 식별자는 그 문서가 준수하는 문서형 정의를 참조하는 URI이며 아래와 같이 절대 URI로 지정할 수 있다.

 # 어떤 버전을 준수해야 하는가

- XHTML 을 크게 나누면 XHTML 1.0과  XHTML1.1 버전이 있다. 또 XHTML1.0에는 'Strict', 'Transitional','Frameset'의 세가지 버전이 있다.
 - XHTML 1.0의 Strict, Transitional, Frameset 은 각각 HTML4.01 의 Strict, Transitional, Frameset을 이어받는다. XTHML1.1에서는 Transitional과 Frameset은 폐지되고 Strict에 해당하는 것만 존재하기 때문에 문서형 선언을 작성하는 방법은 한 가지다.

2. 네임 스페이스와 언어 코드

 - xmlns 속성 : 네임 스페이스는 xmlns 속성으로 지정한다. XHTML 에서는 'http://www.w3.org/1999/xhtml'이 네임 스페이스로 부여되었기 때문에 이값을 지정한다.
 - xml:lang 속성과 lang 속성 : 언어코드는 xml:lang 속성으로 지정한다.

# 타이틀, 문자 코드세트, 설명문과 키워드

 1. 타이틀

- XHTML 문서의 타이틀은 head 요소에 한번만 지정해야 한다.
 (타이틀바에 표시,64문자 이내)

# 좋은 타이틀 과 나쁜 타이틀

- 구체적이지만 길지 않은 타이틀

2. 마임 타입과 문자코드세트

- XHTML 문서의 마임(MIME) 타입과 문자코드세트는 head 요소의 범위 안에, meta 요소에 http-equiv 속성과 content 속성을 붙이고 XHTML 문서 안에 한글 등의 비ASCII문자가 나오는 부분보다 앞부분(일반적으로는 title 요소의 바로 앞부분)에 지정한다.
 - http-equiv 속성은 서버의 HTTP헤더(HTTP 리스폰스 메세지 헤더)와 동일한 정보를 추가적 또는 후선적으로 출력하게 지시하는 것이다.
- Apache라면 .htaccess파일로 다음과 같이 지정해도 좋다.
==> Header append Content-type "application/xhtml+xml; charset=UTF-8"
- 확장자가 '.html'의 파일 모두에 특정 문자코드세트를 적용할 때에는, htacess 파일에는 다음과 같이 지정한다.
==> AddType "application/xhtml+xml; charset=UTF-8".html

# 마임 타입

 - <meta http-equv="Content-Type" / > 에서는 문서 속성으로 마임 타입을 지정한다. XHTML문서에 지정하는 마임 타입은 'application/xhtml+xml'이 일반적이다.
 - XHTML문서에도 HTML 문서같이 마임 타입을 'text/html'로 적는 것이 일반적이지만 올바른 표현은 'application/xhtml+xml'임을 알아두자.

# 문자코드세트

-  문자코드세트에 관해서는 XHTML에서 XML선언의 인코딩 속성에서 이미 지정했으므로, <meat http-equiv="Content-type"/>에 특별히 지정하지 않아도 되지만 일부 브라우저에서 인코딩 속성의 정의를 정상적으로 인식하지 못할 수 있으므로 지정하는 편이 좋다.

# 설명문과 키워드

- 메타 요소에 name 속성과 content 속성을 추가하여 다양한 메타데이터를 지정할 수 있다.
1) 설명문은 name 속성의 값을 'description'이라 지정하여 content 속성에 내용을 기술한다.
2) 키워드는 name 속성의 값을 'keyword'로, content 속성에 내용을 콤마 (,)로 구별하여 기술한다.(동의어와 유의어 포함하도록 만들기)

@ 검색로봇 제어, 그 밖의 메타데이터, 내비게이션 링크

1) 검색로봇 제어
- 일부 페이지를 검색로봇(스파이더와 크롤러)의 수집대상에서 제외하고 싶은 경우도 있다.
 - content 속성은 다음과 같이 지정할수 있고 복수지정할 때에는 콤마(,)로 구분한다.
 - 다음은 웹표준이 아닌 속성

# 구글(Google)의 검색로봇만을 제어 ['name'="GOOGLEBOT"]


# Robot.txt 이용

- 검색로봇은 robots.txt를 이용하여 제어가 가능하다. 아래의 내용을 저장해서 사이트의 루트디렉토리에 넣어 둔다.
 - Disallow이면 수집 제한
 - allow 는 수집 가능
 - 모든 폴더와 파일 수집 방지
 - 구글 봇에 대해 수집 방지

2. 그 밖의 메타데이터


3, 기준 URI

- 기준 URI 지정은 base 요소를 사용한다. 기분URI는 그 문서 안 상대 URI의 기준이 되는 절대 URI를 말한다. base 요소에 기준 URI를 지정하여 그 이후에 나오는 link 요소와 a 요소,img 요소등은 그 URI를 기준으로 외부 자원을 참조하게 된다.

 # 브라우저는 다음의 우선 순위로 기준 URI를 결정한다.

1) base 요소로 지정된 기준 URI
2) HTTP 헤더 등에서 얻은 기준 URI
3) 그 문서가 위치한 기준URI


댓글 없음:

댓글 쓰기