이 장에서는 주요 국제화(Internationalization) 이슈인 문자집합 인코딩과 언어 태그를 다룬다.
16.1 국제적인 콘텐츠를 다루기 위해 필요한 HTTP 자원
국제 컨텐츠를 지원하기 위해, 서버는 클라이언트에게 각 문서의 문자와 언어를 알려줘서, 클라이언트가 엔터티 본문에 담긴 날 것의 byte 데이터들을 의미있는 데이터로 변환할 수 있도록 한다. 서버는 ‘Content-Type charset’ 매개변수와 ‘Content-Language’ 헤더를 통해 알려준다.
반대로 클라이언트가 자신이 선호는 언어를 ‘Accept-Charset’과 ‘Accept-Language’ 헤더를 통해 알려줄 수 있다.
16.2 문자집합과 HTTP
16.2.1 Charset 은 글자를 비트로 변환하는 인코딩이다
HTTP Charset 값은, 어떻게 엔터티 컨텐츠 비트들을 특정 문자 체계의 글자들로 바꾸는지 말해준다. Chatset 태그는 동록된 MIME 문자집합에 표준화되어 있고, IANA가 관리한다.
16.2.2 문자집합과 인코딩은 어떻게 동작하는가
비트들을 문자로 변환하는 디코딩 알고리즘을 지치앟고 적용하는 표준화된 방법이 필요하다. 아래 이미지는 디코딩 절차를 설명한다.
(a) : 특정 코딩된 문자 집합과 매핑(식별)될 수 있는 문자 코드로 변환한다.
(b) : (a)에서 추출한 문자 코드를 문자 집합에 있는 문자 코드와 매핑하여, 일치하는 문자를 추출한다.
16.2.4 표준화된 MIME Charset 값
책에는 더 많은 타입이 나열되있지만, 대표적인 ASCII와 UTF charset 만 보기로 한다.
us-ascii
1968년에 ANSI_X3.4-1968로 표준화된 유명한 문자 인코딩이다. 이것은 ASCII로 불리지만 ISO 646에는 여기서 선택된 글자들을 수정한 여러 가지 국제 변형이 있기 때문에 ‘US’라는 접두어를 붙이는 것을 선호한다. US-ASCII는 7비트 값을 128가지 글자에 대응시킨다. 하이 비트(high bit)는 사용하지 않는다.
utf-8
UTF-8은 전 세계의 문자들에 대한 보편적 문자집합인 UCS(유니코드)를 표현하기 위해 흔히 쓰이는 가변길이 문자 인코딩 구조다. UTF-8은 각 글자를 1에서 6바이트로 표현하는 가변길이 인코딩을 문자 코드 값에 사용한다. UTF-8의 주요 기능 중 하나는 통상적인 7비트 아스키 문자열에 대한 하위 호환성이다.
16.3 다중언어 문자 인코딩에 대한 지침
국제화 애플리케이션과 컨텐츠로 많은 작업을 하는 HTTP 프로그래머는 기술 명세를 깊이 이해하고 올바르게 소프트웨어를 구현하기 위해 다중언어 문자집합 체계에 대해 깊이 이해할 필요가 있다.
'CS > 네트워크' 카테고리의 다른 글
[네트워크] 컴퓨터 네트워크와 기본 장치들 (0) | 2024.01.22 |
---|---|
[HTTP] 17. 내용 협상과 트랜스코딩 (0) | 2024.01.17 |
[HTTP] 15. 엔터티와 인코딩 (0) | 2024.01.16 |
[HTTP] 11. 클라이언트 식별과 쿠키 (0) | 2024.01.16 |
[HTTP] 14. 보안 HTTP (2) | 2024.01.10 |