Dapatkah subdomain (nama domain) memiliki garis bawah _
di dalamnya?
Dapatkah subdomain (nama domain) memiliki garis bawah _
di dalamnya?
Jawaban:
Sebagian besar jawaban yang diberikan di sini salah . Sangat sah untuk memiliki garis bawah dalam nama domain. Biarkan saya mengutip standar, RFC 2181, bagian 11, "Sintaks nama" :
DNS sendiri menempatkan hanya satu batasan pada label tertentu yang dapat digunakan untuk mengidentifikasi catatan sumber daya. Satu batasan terkait dengan panjang label dan nama lengkap. [...] Implementasi protokol DNS tidak boleh membatasi label yang dapat digunakan. Secara khusus, server DNS tidak boleh menolak untuk melayani zona karena mengandung label yang mungkin tidak dapat diterima oleh beberapa program klien DNS.
Lihat juga spesifikasi DNS asli, RFC 1034 , bagian 3.5 "Sintaks nama pilihan" tetapi bacalah dengan cermat.
Domain dengan garis bawah sangat umum di alam liar. Periksa _jabber._tcp.gmail.com
atau _sip._udp.apnic.net
.
RFC lain yang disebutkan di sini menangani berbagai hal. Pertanyaan aslinya adalah untuk nama domain . Jika pertanyaannya adalah untuk nama host (atau untuk URL, yang menyertakan nama host), maka ini berbeda, standar yang relevan adalah RFC 1123 , bagian 2.1 "Nama dan Angka Host" yang membatasi nama host untuk huruf-digit-hyphen.
_jabber._tcp.gmail.com
bukan domain, ini FQDN. Karena URL tidak dapat memiliki garis bawah di dalamnya, Anda mungkin tidak akan pernah bisa membeli domain dengan garis bawah di dalamnya. Jadi, meskipun domain juga dapat memiliki garis bawah dari sudut pandang sintaksis DNS, Anda tidak akan pernah menjumpai apa pun, kecuali itu domain lokal.
Orang harus jelas tentang definisi. Seperti yang digunakan di sini:
Nama host tunduk pada batasan RFC 952 dan sedikit relaksasi dari RFC 1123
RFC 2181 menjelaskan bahwa ada perbedaan antara nama domain dan nama host:
... [fakta bahwa] label biner apa pun dapat memiliki data MX tidak menyiratkan bahwa nama biner apa pun dapat digunakan sebagai bagian host dari alamat email ...
Jadi garis bawah dalam nama host adalah tidak boleh, garis bawah dalam nama domain adalah ok.
Dalam praktiknya, orang mungkin melihat nama host dengan garis bawah. Sebagaimana Prinsip Robustness mengatakan: "Jadilah konservatif dalam apa yang Anda kirim, liberal dalam apa yang Anda terima".
Pada abad ke-21, ternyata nama host dan nama domain dapat diinternasionalkan! Ini berarti beralih ke penyandian jika label yang berisi karakter berada di luar set yang diizinkan.
Secara khusus, memungkinkan seseorang untuk mengkodekan _
di hostname (Update 2017-07. Ini diragukan, lihat komentar The _
.. Masih belum dapat digunakan dalam nama host Memang, bahkan tidak dapat digunakan dalam label internasionalisasi)
RFC pertama untuk internasionalisasi adalah RFC 3490 Maret 2003, "Nama Domain dalam Aplikasi (IDNA)". Hari ini, kami memiliki:
Anda mungkin juga ingin memeriksa Entri Wikipedia
RFC 5890 memperkenalkan label istilah LDH (Letter-Digit-Hypen) untuk label yang digunakan dalam nama host dan mengatakan:
Ini adalah bentuk label klasik yang digunakan, meskipun dengan beberapa batasan tambahan, dalam nama host (RFC 952). Sintaksnya identik dengan yang digambarkan sebagai "sintaksis nama yang disukai" dalam Bagian 3.5 dari RFC 1034 sebagaimana dimodifikasi oleh RFC 1123. Secara singkat, ini adalah string yang terdiri dari huruf ASCII, angka, dan tanda hubung dengan batasan lebih lanjut bahwa tanda hubung tidak dapat muncul di awal atau akhir string. Seperti semua label DNS, panjang totalnya tidak boleh lebih dari 63 oktet.
Kembali ke masa yang lebih sederhana, konsep Internet ini adalah proposal awal untuk internasionalisasi hostname . Nama host dengan karakter internasional dapat dikodekan menggunakan, misalnya, pengkodean 'RACE' .
Penulis proposal proposal 'RACE encoding' mencatat:
Menurut RFC 1035, bagian host harus peka terhadap huruf besar-kecil, mulai dan berakhir dengan huruf atau angka, dan hanya mengandung huruf, angka, dan karakter tanda hubung ("-"). Ini, tentu saja, mengecualikan karakter internasionalisasi, serta banyak karakter lain dalam repertoar karakter ASCII. Lebih lanjut, bagian nama domain harus sepanjang 63 oktet atau lebih pendek .... Semua bagian nama yang dikonversi yang berisi karakter internasionalisasi dimulai dengan string "bq--". (...) String "bq--" dipilih karena sangat tidak mungkin ada di bagian host sebelum spesifikasi ini diproduksi.
bar.baz.
(misalnya) hanya koleksi nama domain yang hierarkis di bawah bar.baz.
, misalnya a.bar.baz.
, f.g.bar.baz.
, h.bar.baz.
, dll. "subdomain" ini mungkin atau mungkin tidak termasuk nama host yang sebenarnya .
a.bar.baz
(nama domain) "subdomain" string bar.baz
(nama domain lain). Nama domain (sumber daya basis data DNS) a.bar.baz
dan bar.baz
mungkin atau mungkin bukan nama host .
Ada satu hal tambahan yang perlu Anda ketahui: Jika bagian host atau subdomain dari url berisi garis bawah, IE9 (belum menguji versi lain) tidak dapat menulis cookie.
Jadi berhati-hatilah tentang itu. :-)
Klarifikasi bortzmeyer dan David Tonhofer , nama domain dan label nama subdomain dapat berisi garis bawah terkemuka, tetapi tidak di tempat lain.
Seperti yang ditulis oleh David Tonhofer , label adalah bagian di antara periode dan harus mengikuti aturan LDH kecuali ketika menentukan label layanan dan label port untuk membedakannya dari label biasa. Maka mereka harus muncul di awal label yang harus menjadi "Nama Pendek" dari Nama Layanan dan Nomor Port Registry , nomor port tanpa 0s terkemuka, atau protokol (mis. Tcp, udp). Label layanan ini selanjutnya dibatasi hingga 15 karakter.
Berlawanan dengan jawaban David Tonhofer , IDN tidak memungkinkan untuk pengkodean garis bawah ('_' U + 005F LOW LINE) atau karakter ASCII lainnya yang tidak valid.
Dari RFC5890
[..] dua himpunan bagian baru label LDH dibuat dengan diperkenalkannya IDNA. Ini disebut label LDH Cadangan (label R-LDH) dan label LDH Non-Cadangan (label NR-LDH). Label LDH yang dicadangkan, yang dikenal sebagai "nama domain yang ditandai" dalam beberapa konteks lain, memiliki properti yang mengandung "-" dalam karakter ketiga dan keempat tetapi yang sebaliknya sesuai dengan aturan label LDH .
Punycode menyandikan semua codepoint ASCII sebagai ASCII secara langsung, termasuk garis bawah. R-LDH yang dihasilkan tidak akan sesuai dengan aturan label LDH. Misalnya, Σ_.com
akan dikodekan sebagai xn--_-zmb.com
yang melanggar aturan. Mungkin ada codepoint homografis yang terlihat seperti garis bawah yang dapat dikodekan secara legal (mungkin '_' U + FF3F garis bawah lowwidth), tetapi jenis codepoint ini akan dikategorikan sebagai DILARANG oleh RFC5892 di bawah 2.3 IgnorableProperties sebagai Noncharacter_Code_Point.
RACE (skema pengodean IDN lainnya yang diusulkan) tidak diterima sebagai standar oleh IETF dan tidak boleh digunakan.
Saya mengikuti tautan ke RFC1034 dan membaca sebagian besar dan terkejut melihat ini:
Label harus mengikuti aturan untuk nama host ARPANET. Mereka harus mulai dengan huruf, diakhiri dengan huruf atau angka, dan sebagai karakter interior hanya huruf, digit, dan tanda hubung. Ada juga beberapa batasan panjang. Label harus berukuran 63 karakter atau kurang.
Untuk klarifikasi, nama domain terdiri dari label yang dipisahkan oleh titik ".". Spesifikasi ini harus kedaluwarsa karena tidak menyebutkan penggunaan garis bawah. Saya bisa mengerti kebingungan jika ada yang tersandung spec ini tanpa tahu itu usang. Itu sudah usang, bukan?
Saya mengikuti tautan ke RFC2181 dan membacanya. Terutama di mana itu berkaitan dengan masalah apa yang otoritatif, atau kanonik, nama dan masalah apa yang membuat label DNS yang valid.
Seperti yang diposting sebelumnya itu menyatakan hanya ada batasan panjang kemudian untuk jumlah itu berbunyi:
(tentang nama dan label yang valid)
Ini sudah ditentukan secara memadai, namun spesifikasinya tampaknya terkadang diabaikan. Kami berusaha untuk memperkuat spesifikasi yang ada.
Agak membuat saya bertanya-tanya apakah "batasan hanya panjang" adalah "memadai". Apakah kita akan mulai melihat nama domain seperti @ # $% !! segera? Bukankah internet sudah cukup kacau?
Baru-baru ini forum-CAB (*) memutuskan hal itu
Semua sertifikat yang berisi karakter garis bawah dalam entri dNSName dan memiliki masa berlaku lebih dari 30 hari HARUS dicabut sebelum 15 Januari 2019. https://cabforum.org/2018/11/12/ballot-sc-12- sunset-of-underscores-in-dnsnames /
Ini berarti bahwa Anda tidak lagi diizinkan untuk menggunakan garis bawah pada domain yang akan memiliki sertifikat ssl / tls.
(*) Forum Browser Otoritas Sertifikasi (CA / Browser Forum) adalah pertemuan sukarela dari Penerbit Sertifikat terkemuka (sebagaimana didefinisikan dalam Bagian 2.1 (a) (1) dan (2) di bawah) dan vendor perangkat lunak browser Internet dan aplikasi lain yang gunakan sertifikat (Sertifikat Konsumen, sebagaimana didefinisikan dalam Bagian 2.1 (a) (3) di bawah).
Masing-masing TLD dapat menempatkan aturan mereka sendiri & pembatasan pada nama domain yang mereka inginkan, seperti untuk mengakomodasi bahasa lokal.
Misalnya, menurut CIRA , .ca
nama domain Kanada diizinkan:
Surat
a
melaluiz
, dan karakter beraksen berikut:é ë ê è â à æ ô œ ù û ü ç î ï ÿ
. Perhatikan bahwa Nama Domain tidak peka huruf besar-kecil. Ini berarti tidak akan ada perbedaan yang dibuat antara huruf besar dan huruf kecil (A
=a
);Angka-angka
0123456789
, danKarakter tanda hubung ("
-
) (meskipun tidak dapat digunakan untuk memulai atau mengakhiri Nama Domain).
Panjang maksimum adalah 63 karakter, kecuali setiap karakter beraksen mengurangi batas itu sebanyak 4 karakter.
( Sumber )
Secara kebetulan, ini memungkinkan sekitar 4 Quadragintillion kemungkinan nama domain (tidak termasuk sub-domain) untuk domain dot-ca.
Di sini 2 sen saya dari dunia Jawa:
Dari konsol Spark Scala, dengan Java 8:
scala> new java.net.URI("spark://spark_master").getHost
res10: String = null
scala> new java.net.URI("spark://spark-master").getHost
res11: String = spark-master
scala> new java.net.URI("spark://spark_master.google.fr").getHost
res12: String = null
scala> new java.net.URI("spark://spark.master.google.fr").getHost
res13: String = spark.master.google.fr
scala> new java.net.URI("spark://spark-master.google.fr:3434").getHost
res14: String = spark-master.google.fr
scala> new java.net.URI("spark://spark-master.goo_gle.fr:3434").getHost
res15: String = null
Itu ide yang buruk ^^
Baru saja membuat proyek lokal (dengan gelandangan) dan itu berfungsi dengan baik ketika diakses melalui alamat ip. Kemudian saya menambahkan some_name.test ke file hosts dan mencoba mengaksesnya seperti itu, tetapi saya mendapatkan "permintaan buruk - 400" sepanjang waktu. Terbuang berjam-jam sampai saya tahu bahwa hanya mengubah nama domain menjadi some-name.test memecahkan masalah. Jadi setidaknya secara lokal di Mac OS tidak berfungsi.
Tidak, Anda tidak dapat menggunakan garis bawah di subdomain kecuali tanda hubung (hubung). yaitu my-subdomain.agahost.com dapat diterima dan my_subdomain.agahost.com tidak dapat diterima.
Tidak jika Anda ingin menyelesaikannya di Internet.
Anda tidak dapat memiliki: http://my_subdomain.example.com tidak valid.
Anda dapat memiliki: http://my-subdomain.example.com dengan tanda hubung.