开发者

Are IDN domain names case-sensitive?

Some people will reply that domain names are not case-sensitive. In the new Unicode world this is no longer true.

开发者_如何学Python

(Source)

I thought one of the steps in the Unicode > Punycode conversion was a "normalisation", which rendered domain names lower case.


For old-fashioned ASCII-based domain names, Yes, domain names have been and continue to be case-insensitive.

To quote RFC 1035, DOMAIN NAMES - IMPLEMENTATION AND SPECIFICATION:

Note that while upper and lower case letters are allowed in domain names, no significance is attached to the case. That is, two names with the same spelling but different case are to be treated as if identical.

For example, all of these represent the same domain:

  • example.com
  • Example.com
  • EXAMPLE.COM
  • EXampLE.com

In modern DNS, we now have Internationalized Domain Names (IDN) which allows Unicode characters. The problem is that defining upper- and lowercase can be tricky in some languages and character sets beyond ASCII (Unicode is a superset of US-ASCII).

The intent of domain names is to be case-insensitive, but there may be complications with particular characters in particular scripts of particular human languages. So there is no simple YES or NO answer to your question.

If using non-ASCII domain names, you should read:

  • Internationalized domain name on Wikipedia
  • Domain Name System (DNS) Case Insensitivity Clarification Official spec (IETF RFC 4343)


WRONG: URLs are still case insensitive, even for IDN.


CORRECTION:

The question was about IDN: "Are IDN domain names case-sensitive?"

My initial answer is wrong, and does not clearly answer the question. It brings URLs into the mix.

The domain name part (IDN) of a URL is case-insensitive.

The other elements might be case-insensitive or not. It depends on many things, and in general is not predictable.

For instance the path part would normally depend on the OS or even the file system hosting the site (on MacOS you can format the drive as case insensitive or not) But these days you can have some of these paths "hooked" to answer RESTfull APIs. So it depends on how the "hook" is done.

Similar for other elements (user, password, parameters, parameter values)

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜