📄 draft-ietf-idn-idna-03.txt
字号:
Internet Draft Patrik Faltstromdraft-ietf-idn-idna-03.txt CiscoJuly 20, 2001 Paul HoffmanExpires in six months IMC & VPNC Internationalizing Host Names In Applications (IDNA)Status of this MemoThis document is an Internet-Draft and is in full conformance with allprovisions of Section 10 of RFC2026.Internet-Drafts are working documents of the Internet Engineering TaskForce (IETF), its areas, and its working groups. Note that other groupsmay also distribute working documents as Internet-Drafts.Internet-Drafts are draft documents valid for a maximum of six monthsand may be updated, replaced, or obsoleted by other documents at anytime. It is inappropriate to use Internet-Drafts as reference materialor to cite them other than as "work in progress."The list of current Internet-Drafts can be accessed athttp://www.ietf.org/ietf/1id-abstracts.txtThe list of Internet-Draft Shadow Directories can be accessed athttp://www.ietf.org/shadow.html.AbstractThe current DNS infrastructure does not provide a way to useinternationalized host names (IDN). This document describes a mechanismthat requires no changes to any DNS server or resolver that will allowinternationalized host names to be used by end users with changes onlyto applications. It allows flexibility for user input and display, andassures that host names that have non-ASCII characters are not sent toDNS servers or resolvers.1. IntroductionIn the discussion of IDN solutions, a great deal of discussion hasfocused on transition issues and how IDN will work in a world where notall of the components have been updated. Earlier proposed solutionsrequire that user applications, resolvers, and DNS servers to be updatedin order for a user to use an internationalized host name. Instead ofthis requirement for widespread updating of all components, the currentproposal is that only user applications be updated; no changes areneeded to the DNS protocol or any DNS servers or the resolvers on user'scomputers.This document is being discussed on the ietf-idna@mail.apps.ietf.orgmailing list. To subscribe, send a message toietf-idna-request@mail.apps.ietf.org with the single word "subscribe" inthe body of the message.1.1 Design philosophyMany proposals for IDN protocols have required that DNS servers beupdated to handle internationalized host names. Because of this, theperson who wanted to use an internationalized host name had to be surethat their request went to a DNS server that was updated for IDN.Further, that server could only send queries to other servers that hadbeen updated for IDN because the queries contain new protocol elementsto differentiate IDN name parts from current host parts. In addition,these proposals require that resolvers must be updated to use the newprotocols, and in most cases the applications would need to be updatedas well.These proposals would require that the application protocols that usehost names as protocol elements to change. This is due to theassumptions and requirements made in those protocols about thecharacters that have always been used for host names, and the encodingof those characters. Other proposals for IDN protocols do not requirechanges to DNS servers but still require changes to most applicationprotocols to handle the new names.Updating all (or even a significant percentage) of the existing serversin the world will be difficult, to say the least. Updating applications,application gateways, and clients to handle changes to the applicationprotocols is also daunting. Because of this, we have designed a protocolthat requires no updating of any name servers. IDNA still requires theupdating of applications, but only for input and display of names, notfor changes to the protocols. Once a user has updated these, she or hecould immediately start using internationalized host names. The cost ofimplementing IDN may thus be much lower, and the speed of implementationcould be much higher.1.2 TerminologyThe key words "MUST", "SHALL", "REQUIRED", "SHOULD", "RECOMMENDED", and"MAY" in this document are to be interpreted as described in RFC 2119[RFC2119].2. Structural OverviewIn IDNA, users' applications are updated to perform the processingneeded to input internationalized host names from users, displayinternationalized host names that are returned from the DNS to users,and process the inputs and outputs from the DNS.2.1 Interfaces between DNS components in IDNAThe interfaces in IDNA can be represented pictorially as: +------+ | User | +------+ ^ |Input and display: local interface methods |(pen, keyboard, glowing phosphorus, ...) +-----------------|------------------------------+ | v | | +--------------------------+ | | | Application | | | +--------------------------+ | | ^ ^ | | Call to resolver:| |Application-specific | | nameprepped ACE| |protocol: | | v |predefined by the | End system | +----------+ |protocol or defaults | | | Resolver | |to nameprepped ACE | | +----------+ | | | ^ | | +---------------|----------|---------------------+ DNS protocol:| | nameprepped ACE| | v v +-------------+ +---------------------+ | DNS servers | | Application servers | +-------------+ +---------------------+This document uses the generic term "ACE" for an ASCII-compatibleencoding. After the IDN Working Group has chosen a specific ACE, thisdocument will be updated to refer to just that single ACE. Until thattime, an implementor creating experimental software must choose an ACEto use, such as RACE or LACE or DUDE.2.1.1 Entry and display in applicationsApplications can accept host names using any character set or setsdesired by the application developer, and can display host names in anycharset. That is, this protocol does not affect the interface betweenusers and applications.An IDNA-aware application can accept and display internationalized hostnames in two formats: the internationalized character set(s) supportedby the application, and in an ACE. Applications MAY allow ACE input andoutput, but are not encouraged to do so except as an interface forspecial purposes, possibly for debugging. ACE encoding is opaque andugly, and should thus only be exposed to users who absolutely need it.The optional use, especially during a transition period, of ACEencodings in the user interface is described in section 3. Because nameparts encoded with ACE can be rendered either as the encoded ASCIIcharacters or the proper decoded characters, the application MAY have anoption for the user to select the preferred method of display; if itdoes, rendering the ACE SHOULD NOT be the default.Host names are often stored and transported in many places. For example,they are part of documents such as mail messages and web pages. They aretransported in the many parts of many protocols, such as both thecontrol commands and the RFC 2822 body parts of SMTP, and the headersand the body content in HTTP.In protocols and document formats that define how to handlespecification or negotiation of charsets, IDN host name parts can beencoded in any charset allowed by the protocol or document format. If aprotocol or document format only allows one charset, IDN host name partsmust be given in that charset. In any place where a protocol or documentformat allows transmition of the characters in IDN host name parts, IDNhost name parts SHOULD be transmitted using whatever character encodingand escape mechanism that the protocol or document format uses at thatplace.All protocols that have host names as protocol elements already have thecapacity for handling host names in the ASCII charset. Thus, IDN hostname parts can be specified in those protocols in the ACE charset, whichis a superset of the ASCII charset that uses the same set of octets.2.1.2 Applications and resolversApplications communicate with resolver libraries through a programminginterface (API). Typically, the IETF does not standardize APIs, althoughthere are non-standard APIs specified for IPv6. This protocol does notspecify a specific API, but instead specifies only the input and outputformats of the host names to the resolver library.Before converting the name parts into ACE, the application MUST prepareeach name part as specified in [NAMEPREP]. The application MUST use ACE
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -