定義の面はわからなかったのでざっくりまとめる。
出典
出典いわく
RFC1123には以下のように記述がある。
正当なインターネットホスト名の構文はRFC952[DNS:4]で規定され、RFC1034のセクション3.5[DNS:1]で繰り返し述べられている。ホスト名構文の一つの側面をここで変更する。先頭文字の制限が緩和され、英字または数字のいずれかであれば許容されるようになる。ホストソフトウェアは、より寛容なこの構文をサポートしなければならない(MUST)。
ここをもとにRFC1034の3.5のセクションを見ると文字列ルールの定義が記載されている。ドメインの定義だが、これがホスト名と同義ということになる。
<domain> ::= <subdomain> | " " <subdomain> ::= <label> | <subdomain> "." <label> <label> ::= <letter> [ [ <ldh-str> ] <let-dig> ] <ldh-str> ::= <let-dig-hyp> | <let-dig-hyp> <ldh-str> <let-dig-hyp> ::= <let-dig> | "-" <let-dig> ::= <letter> | <digit> <letter> ::= 大文字のAからZと小文字のaからzの52文字のアルファベット文字 に含まれる任意の1文字 <digit> ::= 0から9までの10の数字の任意の数字
使える文字
上記のルールにはなっているが使える文字ということで汲み取ると
- 大文字のAからZと小文字のaからzの52文字のアルファベット文字
- 0から9までの10パターンの数字
.
(ドット)-
(ハイフン)
ということになる。
使えそうで使えない文字
これを見ると実は _
(アンダースコア,アンダーバー)は使えない、がホスト名においては許容しているケースがいくつかある。詳しくは参考リンクのサイト参照のこと。