250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- 최대 힙
- 스케줄링
- 완전이진트리
- 알고리즘
- 엔티티 그래프
- 최소힙
- 자료구조
- spring
- 운영체제
- 백준 장학금
- heapq
- MSA
- 연결리스트
- JVM
- 프로세스
- 힙트리
- SpringSecurity
- HTTP
- python
- 점근적 표기법
- posix
- 멀티프로세서
- jpa n+1 문제
- 백준장학금
- 강화학습
- 연결리스트 종류
- JPA
- 이분탐색이란
- AVL트리
- Kruskal
Archives
- Today
- Total
KKanging
[http 완벽 가이드] 16장 국제화 본문
이 내용은 http 완변 가이드란 책을 읽고 정리한 내용입니다.
더 자세한 내용이 궁금하시면 책을 직접 읽어보시는 걸 추천합니다.
16장 국제화
1 . 국제적인 콘텐츠를 다루기 위해 필요한 HTTP 지원
- HTTP 메시지는 어떤 언어로 된 콘텐츠든, 이미지, 동영상 혹은 그 외 다른 종류의 미디어처럼 실어 나를 수 있다.
- 국제 콘텐츠를 지원하기 위해, 서버는 클라이언트에게 각 문서의 문자와 언어를 알려줘서, 클라리언트가 올바르게 문서를 이루고 있는 비트들을 문자들로 풀어내고, 올바르게 처리해서 사용자에게 콘텐츠를 제공해줄 수 있도록 할 필요가 있다.
- 서버는 클라이언트에게 문서의 문자와 언어를HTTP Content-Type charset 매개변수와 Content-Language 헤더를 통해 알려준다. 동시에 클라이언트는 서버에게 사용자가 어떤 언어를 이해할 수 있고 어떤 알파벳의 코딩 알고리즘이 브라우저에 설치되어 있는지 말해줄 필요가 있다.
2. 문자집합과 HTTP
2.1 차셋(Charset)은 글자를 비트로 변환하는 인코딩이다
- HTTP 차셋 값은 어떻게 엔터티 콘텐츠 비트들을 특정 문자 체계의 글자들로 바꾸는지 말해준다. 각 차셋 태그는 비트들을 글자들로 변환하거나 혹은 그 반대의 일을 해주는 알고리즘을 명명한다.
- charset 매개변수는 클라이언트에게 어떻게 비트들을 글자들로 변환하는지 알려준다.
2.2 문자집합과 인코딩은 어떻게 동작하는가
- 문서를 이루는 비트들은, 특정 코딩된 문자집합의 특정 문자로 식별될 수 있는 문자 코드로 변환된다.
- 문자 코드는 코딩된 문자집합의 특정 요소를 선택하기 위해 사용된다.
2.3 잘못된 차셋은 잘못된 글자들을 낳는다
- 만약 클라이언트가 잘못된 charset 매개변수를 사용한다면, 클라이언트는 이상한 깨진 글자를 보여주게 될 것이다.
2.4 표준화된 MIME 차셋 값
- 특정 문자 인코딩과 특정 코딩된 문자집합의 결합을 MIME 차셋이라고 부른다.
- HTTP는 표준화된 MIME 차셋 태그를 Content-Type과 Accept-Charset 헤더에 사용한다.
- MIME 차셋의 값은 IANA에 등록되어 있다.
2.5 Content-Type charset헤더와 META 태그
- 웹 서버는 클라이언트에게 MIME 차셋 태그를 charset 매개변수와 함께 Content-Type 헤더에 담아 보낸다.
- 만약 문자집합이 명시적으로 나열되지 않았다면, 수신자는 문서의 콘텐츠로부터 문자지집합을 추측하려 시도한다
2.6 Accept-Charset 헤더
- HTTP클라이언트는 서버에게 정확히 어떤 문자 체계를 그들이 지원하는Accept-Charset 요청 헤더를 통해 알려준다.
- Accept-Charset 헤더의 값은 클라이언트가 지원하는 문자 인코딩의 목록을 제공한다.
3. 다중언어 문자 인코딩에 대한 지침
3.1 문자집합 용어
- 문자 : 알파벳 글자, 숫자, 구두점, 표의문자, 기호 등 글쓰기의 최소 단위
- 글리프 : 하나의 글자를 표현하기 위한, 획의 패텅이나 다른 것과 구분되는 유일한 시각적 형태
- 코딩된 문자 : 각 글자에 할당된 유일한 숫자
- 코드 공간 : 문자 코드 값으로 사용하려고 계획해 둔 정수의 범위
- 코드 너비 : 각 문자 코드의 비트 개수
- 사용 가능 문자 집합 : 글자들에 대한 특정한 작업 집합
- 코딩된 문자집합 : 사용 가능 문자집합을 받아서 각 글자에 코드 공간의 코드를 할당해주는 코딩된 문자들의 집합
- 문자 인코딩 구조 : 숫자로 된 문자 코드들을 콘텐츠 비트의 연속으로 인코딩하는 알고리즘
3.2 '차셋(Charset)'은 형편없는 이름이다
- MIME 차셋 값은 데이터 비트를 고유한 문자의 코드로 매핑하는 알고리즘의 이름이다.
- 이것은 문자 인코딩 구조와 코딩된 문자집합의 개념을 합친 것이다.
- 이 용어는 엉성한데, 이미 문자 인코딩 구조와 코딩된 문자집합에 대한 출판된 표준이 존재하기 때문이다.
3.3 문자
- 문자는 쓰기의 기본적인 구성요소다
- 문자는 글꼴이다 스타일에 독립적이다
- 한 글자는 여러 가지 다른 쓰기 형태를 가질 수 있다.
3.4 글리프, 연자 그리고 표현 형태
- 문자는 유일하고 추상화된 언어의 요소이며, 글리프는 각 글자를 그리는 특정한 방법이다.
- 각 문자는 미적인 양식과 스크립트에 따라 여러 글리프를 가진다.
- 일반적인 규칙은, 글리프 하나를 다른 것으로 바꾸었을 때 텍스트의 의미가 바뀐다면 그 두 글리프들은 서로 다른 글자다
3.5 코딩된 문자집합
코딩된 문자집합은 보통 코드 번호로 인덱싱된 배열로 구현된다.
- US-ASCII :모든 문자집합의 어머니 - 아스키는 '정보교환을 위한 미국 표준 코드'로 표준화된 가장 유명한 코딩된 문자집합니다
- iso-8859 - 국제적인 글쓰기를 위해 글자들을 하이 비트를 이용해서 추가한, US-ASCII의 8비트 확대집합들이다
- JIS X 0201 - 아스키를 일본어 가타카나 반각문자를 더해 확장한 극단적으로 작은 문자집합이다
- JIS X 0208 과 JIS X 0212
- UCS - 전세계의 모든 글자를 하나의 코딩된 문자집합으로 통합하려고 노력하는 세계적인 표준이다
3.6 문자 인코딩 구조
- 고정폭 - 각 코딩된 문자를 고정된 길이의 비트로 표현한다
- 가변폭(비모달) - 다른 문자 코드번호에 다른 길이의 비트를 사용한다
- 가변폭(모달) - 다른 모드로의 전환을 위한 특별한 'escape' 패턴을 사용한다
인코딩 구조
- 8비트 - 간단히 각 문자 코드를 그에 대응하는 8비트 값으로 인코딩한다
- UTF-8 인키있는 UCS를 위해 설계된 문자 인코딩 구조다. 문자코드의 값을 위해 비모달 가변길이 인코딩을 사용한다
- iso-2022-jp - 일본어 인터넷 문서를 위해 널리 사용되는 인코딩이다
- euc-jp - 일본어 인코딩이며, 'Extended Unix Code'의 약자로, 유닉스 운영체제에서 아시아 문자들을 지원하기 위해 처음 개발되었다.
- euc-kr - 한글 인터넷 문서를 위해 널리 사용되는 가변길이 인코딩으로, KS X 1003 과 KS X 1001 의 두 가지 문자 집합을 지원한다
4. 언어 태그와 HTTP
4.1 Content-Language 헤더
- 엔터티가 어떤 언어 사용자를 대상으로 하고 있는지 서술한다.
- Content-Language 헤더는 텍스트 문서만을 위한 것이 아니라 오디오 크립, 동영상 그리고 애플리케이션도 특정 언어 사용자를 대상으로 할 수 있다.
4.2 Accept-Language 헤더
클라이언트는 자신이 이해할 수 있는 콘텐츠를 요청하기 위해 Accept-Language와 Accept-Charset을 사용할 수 있다.
4.3 언어 태그의 종류
- 일반적인 언어의 종류
- 특정 국가의 언어
- 방언
- 지방어
- 그외의, 다른 언어의 변형이 아닌 표준 언어
- 비표준 언어
4.4 서브 태그
- 첫번째 서브태그 : 주 서브태그. 표준화되어있다.
- 두번째 서브태그 : 선택적이고 자신만의 이름 표준을 따른다
- 세번째 서브태그 : 등록되어 있지 않다
4.5 대소문자의 구분 및 표현
모든 태그는 대소문자가 구분되지 않으나, 관용적으로 언어를 나타낼 때는 소문자를 사용하고, 국가를 나타낼 때는 대문자를 사용한다.
5. 국제화된 URI
5.1 URI에서 사용될 수 있는 문자들
URI에서 사용할 수 있는 US-ASCII 문자들의 부분집합은 예약된 문자들, 예약되지 않은 문자들, 이스케이프 문자들로 나뉜다. 예약되지 않은 문자들은 그것들을 허용하는 URI의 어떤 구성요소에서 일반적으로 사용될 수 있다.
5.2 이스케이핑과 역이스케이핑
- URI 이스케이프는 예약된 문자나 다른 지원하지 않는 글자들을 안전하게 URI에 삽입할 수 있도록 방법을 제공한다. 이스케이프는 퍼센트 글자 하나와 뒤이은 16진수 글자 둘로 이루어진 세 글자 문자열이다.
- 내부적으로 HTTP애플리케이션은 URI를 데이터가 필요할 때만 언이스케이핑 해야한다.
- 애플리케이션은 어떤 URI도 결코 두번 언이스케이핑 되지 않도록 해야 한다
- 이스케이프 값들은 US-ASCII 코드의 범위에 있어야 한다
'cs > http' 카테고리의 다른 글
[http 완벽 가이드] 18장 웹 호스팅 (0) | 2023.08.20 |
---|---|
[http 완벽 가이드] 17장 내용 협상과 트랜스코딩 (1) | 2023.08.20 |
[http 완벽 가이드] 15장 엔터티와 인코딩 (0) | 2023.08.20 |
[http 완벽 가이드] 14장 보안 HTTP (0) | 2023.08.20 |
[http 완벽 가이드] 13장 다이제스트 인증 (0) | 2023.08.20 |