aku tahu itu
HTTP://STACKOVERFLOW.COM/QUESTIONS/ASK
dan
http://stackoverflow.com/questions/ask
keduanya berfungsi dengan baik - sebenarnya yang sebelumnya dikonversi menjadi huruf kecil.
Saya pikir ini masuk akal bagi pengguna.
Jika saya melihat Google maka URL ini berfungsi dengan baik:
http://www.google.com/intl/en/about/corporate/index.html
tapi yang ini dengan "ABOUT" tidak berfungsi:
http://www.google.com/intl/en/ABOUT/corporate/index.html
Haruskah URL peka huruf besar-kecil?
url
case-sensitive
Imageree
sumber
sumber
Jawaban:
Menurut " HTML dan URL " W3 mereka harus:
sumber
Semua " tidak sensitif " ditebalkan untuk dibaca.
Nama domain tidak peka huruf besar-kecil menurut RFC 4343 . URL lainnya dikirim ke server melalui metode GET. Ini mungkin case sensitif atau tidak.
Ambil halaman ini sebagai contoh, stackoverflow.com menerima GET string / pertanyaan / 7996919 / should-url-be-case-sensitive , mengirim dokumen HTML ke browser Anda. Stackoverflow.com adalah case- sensitive karena menghasilkan hasil yang sama untuk / QUEStions / 7996919 / Should-url-be-case-sensitive .
Di sisi lain, Wikipedia adalah case-sensitive kecuali karakter pertama dari judul. URL https://en.wikipedia.org/wiki/Case_sensitivity dan https://en.wikipedia.org/wiki/case_sensitivity mengarah ke artikel yang sama, tetapi https://en.wikipedia.org/wiki/CASE_SENSITIVITY kembali 404.
sumber
7996919
. Bagian semantik dari URL ada hanya untuk keperluan SEO.Tergantung pada os hosting. Situs yang di-host pada Windows cenderung tidak sensitif huruf besar karena sistem file yang mendasarinya tidak sensitif huruf besar-kecil. Situs yang dihosting pada sistem tipe Unix cenderung peka terhadap huruf besar-kecil karena sistem file yang mendasarinya biasanya peka terhadap huruf besar-kecil. Bagian nama host dari URL selalu tidak peka huruf besar-kecil, itu adalah sisa jalur yang bervariasi.
sumber
Bagian nama domain dari URL tidak peka huruf besar-kecil karena DNS mengabaikan huruf besar-kecil:
http://en.example.org/
danHTTP://EN.EXAMPLE.ORG/
keduanya membuka halaman yang sama.Path digunakan untuk menentukan dan mungkin menemukan sumber daya yang diminta. Ini peka huruf besar-kecil, meskipun dapat dianggap peka terhadap huruf besar-kecil oleh beberapa server, terutama yang berbasis Microsoft Windows.
Jika server peka huruf besar-kecil dan
http://en.example.org/wiki/URL
benar, makahttp://en.example.org/WIKI/URL
atauhttp://en.example.org/wiki/url
akan menampilkan halaman kesalahan HTTP 404, kecuali jika URL ini menunjuk ke sumber daya yang valid sendiri.sumber
HTTP://www.EXAMPLE.com/
setara denganhttp://www.example.com/
. Komponen sintaksis generik lainnya diasumsikan peka terhadap huruf besar-kecil kecuali ditentukan secara khusus oleh skema. "Saya bukan penggemar menabrak artikel lama tetapi karena ini adalah salah satu tanggapan pertama untuk masalah khusus ini saya merasa perlu untuk mengklarifikasi sesuatu.
Sebagai @ Bhavin Shah menjawab menyatakan bagian domain dari url adalah case-sensitive, jadi
dan
dan
semuanya sama tetapi semuanya setelah bagian nama domain dianggap case sensitive.
begitu...
dan
berbeda.
Catatan: Saya berbicara "secara teknis" dan bukan "secara harfiah" dalam banyak kasus, kebanyakan server, setup untuk menangani item ini sama, tetapi dimungkinkan untuk mengaturnya sehingga mereka TIDAK ditangani sama.
Server yang berbeda menangani ini secara berbeda dan dalam beberapa kasus mereka harus peka terhadap huruf besar / kecil. Dalam banyak kasus, nilai-nilai string kueri dikodekan (seperti Sesi Id atau data tersandi Base64 yang diteruskan sebagai nilai string kueri) Item-item ini peka huruf besar-kecil berdasarkan sifatnya sehingga server harus peka huruf besar-kecil dalam menangani mereka.
Jadi untuk menjawab pertanyaan, "seharusnya" server peka dalam mengambil data ini, jawabannya adalah "ya, pasti."
Tentu saja tidak semuanya harus peka terhadap kasus tetapi server harus menyadari apa itu dan bagaimana menangani kasus tersebut.
Komentar @Hart Simha pada dasarnya mengatakan hal yang sama. Saya melewatkannya sebelum saya diposting jadi saya ingin memberikan kredit di mana kredit jatuh tempo.
sumber
Lihatlah spesifikasinya di sini: bagian 2.7.3 http://tools.ietf.org/html/draft-ietf-httpbis-p1-messaging-25#page-19
sumber
Pertimbangkan yang berikut ini:
https://www.example.com/createuser.php?name=Paul%20McCartney
Dalam contoh hipotetis ini, formulir HTML - menggunakan metode GET - mengirim parameter "nama" ke skrip PHP yang membuat akun pengguna baru.
Dan yang saya maksudkan dengan contoh ini adalah bahwa parameter GET ini harus peka terhadap huruf besar untuk mempertahankan penggunaan huruf besar "McCartney" (atau, sebagai contoh lain, untuk mempertahankan "Walter d'Isney", karena ada cara lain untuk nama yang melanggar aturan kapitalisasi biasa).
Ini adalah kasus-kasus seperti ini yang memandu rekomendasi W3C bahwa skema dan host tidak peka terhadap huruf besar-kecil, tetapi semuanya setelah itu berpotensi case-sensitive - dan diserahkan ke server. Memaksa case insensitivity secara standar akan membuat contoh di atas tidak mampu mempertahankan case input pengguna yang dilewatkan sebagai parameter permintaan GET.
Tetapi yang saya katakan adalah bahwa meskipun ini harusnya surat hukum untuk mengakomodasi kasus-kasus seperti itu, semangat hukum adalah bahwa, di mana kasus tidak relevan, berperilaku dalam kasus yang tidak sensitif. Standar, bagaimanapun, tidak dapat memberi tahu Anda di mana kasus tidak relevan karena, seperti contoh yang saya berikan, itu adalah hal yang bergantung pada konteks.
(mis. nama pengguna akun mungkin paling baik dipaksa untuk tidak peka huruf besar-kecil - karena "User123" dan "user123" menjadi akun yang berbeda dapat terbukti membingungkan - bahkan jika nama asli mereka, seperti di atas, sebaiknya peka huruf besar-kecil.)
Terkadang itu relevan, sering kali tidak. Tetapi harus diserahkan kepada server / pengembang web untuk memutuskan hal-hal ini - dan tidak dapat ditentukan oleh standar - karena hanya pada tingkat itu konteksnya dapat diketahui.
Skema dan host adalah case-sensitive (yang menunjukkan preferensi standar untuk case-insensitivity, di mana dapat ditentukan secara universal). Sisanya diserahkan kepada Anda untuk memutuskan, karena Anda memahami konteksnya dengan lebih baik. Tetapi, seperti yang telah dibahas, Anda mungkin harus, dalam semangat hukum, default untuk kasus ketidakpekaan kecuali Anda memiliki alasan yang baik untuk tidak melakukannya.
sumber
URL harus tidak peka huruf besar-kecil kecuali ada alasan kuat mengapa URL itu seharusnya tidak ada.
Ini tidak wajib (ini bukan bagian dari RFC) tetapi membuat komunikasi dan penyimpanan URL jauh lebih andal.
Jika saya memiliki dua halaman di situs web:
dan
Bagaimana perbedaannya? Mungkin ada tulisan 'shouting style' (caps) - tetapi dari sudut pandang IA, perbedaannya tidak boleh dilakukan dengan perubahan dalam hal URL.
Selain itu, mudah untuk mengimplementasikan ini di Apache - cukup gunakan
CheckSpelling On
dari mod_Speling.sumber
Pertanyaan lama, tetapi saya tersandung di sini jadi mengapa tidak mencobanya karena pertanyaan itu mencari berbagai perspektif dan bukan jawaban yang pasti.
w3c mungkin memiliki rekomendasinya - yang sangat saya pedulikan - tetapi ingin memikirkan kembali karena pertanyaannya ada di sini.
Mengapa w3c menganggap nama domain tidak sensitif terhadap huruf dan meninggalkan apa pun setelahnya menjadi tidak sensitif huruf besar-kecil?
Saya berpikir bahwa alasannya adalah bagian domain dari URL diketik oleh pengguna. Semuanya setelah menjadi teks hiper akan diselesaikan oleh mesin (browser dan server di belakang).
Mesin dapat menangani ketidakpekaan case lebih baik daripada manusia (bukan jenis teknis :)).
Tetapi pertanyaannya adalah hanya karena mesin BISA menangani itu haruskah itu dilakukan dengan cara itu?
Maksud saya apa manfaat dari penamaan dan mengakses sumber daya duduk di
hereIsTheResource
vshereistheresource
?Lateral sangat tidak terbaca dari kasing unta yang lebih mudah dibaca. Dapat dibaca untuk Manusia (termasuk jenis teknis.)
Jadi, inilah poin saya: -
Resource Path berada di suatu tempat di tengah struktur pemrograman dan terkadang dekat dengan pengguna akhir di belakang browser.
URL Anda (tidak termasuk nama domain) harus peka huruf besar-kecil jika pengguna Anda diharapkan menyentuhnya atau mengetikkannya, dll. Anda harus mengembangkan aplikasi Anda untuk MENGHINDARI dengan meminta pengguna mengetikkan lintasan sebanyak mungkin.
URL Anda (tidak termasuk nama domain) harus peka huruf besar-kecil jika pengguna Anda tidak akan pernah mengetiknya dengan tangan.
Kesimpulan
Path harus peka huruf besar-kecil. Poin saya menimbang ke arah jalur case sensitif.
sumber
Karakter URL dikonversi menjadi kode hex (jika Anda pernah melihat spasi di URL yang ditampilkan sebagai% 20, dll.), Dan karena huruf besar dan kecil memiliki nilai hex yang berbeda, masuk akal bahwa URL paling pasti case-sensitive. Namun semangat pertanyaan tampaknya HARUS yang menjadi standar dan saya katakan tidak, tetapi mereka. Terserah pengembang / penyedia untuk memperhitungkan ini dalam kode mereka jika mereka ingin bekerja terlepas dari pengguna akhir.
sumber
Saya pikir ini dan banyak jawaban di sekitar apa yang spec atau tidak katakan tidak ada pada inti pertanyaan. Haruskah mereka peka terhadap huruf besar-kecil? Itu pertanyaan yang sarat banget. Dari sudut pandang pengguna, sensitivitas huruf adalah titik yang menyakitkan, tidak semua yang tahu membuat perbedaan. Pertanyaan apakah URI seharusnya atau tidak, tergantung pada konteks pertanyaan. Untuk fleksibilitas teknis, ya, seharusnya begitu. Demi kegunaan, tidak, seharusnya tidak.
sumber
Pelestarian Kasus
URL melindungi huruf , antara klien dan server. Tetapi sebagian URL mungkin peka terhadap huruf besar atau kecil , tergantung pada server, karena beberapa alasan.
Sensitivitas Huruf
Berikut berani bagian dari URL mungkin menjadi kasus-sensitif, tergantung pada lokasi dan / atau konfigurasi server.
http: // www. example.com /abc/def.ghi?jkl=mno#pqr
user @ example.com
Alasan
Sensitivitas huruf pada URL dapat memiliki beberapa kegunaan. Terutama:
Sebagai pengembang, saya percaya hal di atas sering kali dapat ditangani dengan cara yang lebih baik, tetapi saya juga mengerti ada kasus di mana situasi mungkin tidak mengizinkan ini.
Misalnya, bayangkan produk yang sudah ada yang membutuhkan banyak data yang ditempatkan di URL "GET", namun harus kompatibel dengan panjang URL maksimum dari semua server utama, browser, dan mekanisme caching / proxy. Agar sesuai bahkan dengan string perintah ukuran sedang (di bawah 1.024 karakter untuk beberapa browser lama), Anda harus menggunakan setiap karakter unik URL-safe yang Anda bisa (yang pada dasarnya adalah pengkodean base64url).
Di Dunia yang Ideal
Apakah URL harus peka terhadap huruf besar atau kecil masih bisa diperdebatkan. Saya pribadi percaya mereka tidak boleh, untuk kesederhanaan (meskipun dapat membuat URL lebih lama, kami memiliki persen-lolos untuk dengan mudah menangani kasus di mana kita harus memastikan pelestarian karakter yang tepat, dan ada cara untuk mentransfer data selain tepat di URL) .
Banyak yang tampaknya setuju berdasarkan fakta bahwa URL yang tidak peka huruf besar-besaran diaktifkan secara eksplisit untuk banyak situs dan layanan populer, untuk meningkatkan kegunaan. Contoh yang paling menonjol adalah bagian nama pengguna dari alamat email. Sebagian besar penyedia email akan mengabaikan huruf besar kecil dan kadang-kadang bahkan titik dan simbol lainnya (seperti "[email protected]" sama dengan "[email protected]"). Meskipun nama pengguna email peka terhadap huruf besar-kecil, menurut spesifikasi.
Namun, kenyataannya adalah bahwa terlepas dari apa yang saya atau orang lain inginkan, ini adalah keadaan bagaimana hal-hal saat ini bekerja. Dan sementara transisi di seluruh dunia akhirnya ke standar URL case-sensitive tentu mungkin, mungkin akan memakan waktu yang cukup lama karena sensitivitas case saat ini digunakan secara luas di seluruh web untuk berbagai keperluan.
Praktik terbaik
Sejauh praktik terbaik berjalan, sebagai pengguna Anda dapat tetap menggunakan huruf kecil untuk sebagian besar situasi dan mengharapkan sesuatu berfungsi. Pengecualian utama adalah URL yang menggunakan pengkodean atau jalur dokumen berbasis kasus dengan sistem file langsung yang setara. Namun, URL kompleks semacam itu biasanya disalin-salin (atau cukup diklik) daripada diketik secara manual.
Sebagai pengembang web, Anda harus mempertimbangkan untuk menjaga URL sebagai case-sensitive mungkin. Padahal jelas ada beberapa situasi yang sulit dihindari, tergantung konteksnya, seperti disebutkan di atas.
sumber
Saya melihat tidak ada gunanya, atau praktik yang baik di balik URL sensitif huruf besar-kecil. Itu bodoh, menyebalkan dan harus dihindari setiap saat.
Hanya untuk mendukung pendapat saya, ketika seseorang bertanya URL apa, bagaimana Anda bisa menjelaskan karakter URL apa yang huruf besar atau kecil? Itu omong kosong dan seharusnya tidak ada yang memberitahumu sebaliknya.
sumber
Untuk situs web yang dihosting di server Linux, URL peka huruf besar-kecil. http://www.google.com/about dan http://www.google.com/About akan dialihkan ke lokasi yang berbeda. Saat berada di Windows Server, URL tidak peka huruf besar-kecil, seperti penamaan FOLDER dan akan dialihkan ke lokasi yang sama.
sumber
Dimungkinkan untuk membuat URL non-sensitif
Membuat Google.com..GOOGLE.com dll langsung ke google.com
sumber