Mengapa URL tidak peka huruf besar-kecil?
Saya mengerti bahwa mungkin terlihat seperti pertanyaan retoris yang provokatif (dan "pendukung setan"), tetapi saya pikir ini berguna untuk dipertimbangkan. Desain HTTP adalah "klien", yang biasa kita sebut "browser web", meminta "server web" untuk data.
Ada banyak, banyak server web berbeda yang dirilis. Microsoft telah merilis IIS dengan sistem operasi Windows Server (dan lainnya, termasuk Windows XP Professional). Unix memiliki kelas berat seperti nginx dan Apache, belum lagi penawaran yang lebih kecil seperti httpd internal OpenBSD, atau thttpd, atau lighttpd. Selain itu, banyak perangkat yang mendukung jaringan telah membuat server web yang dapat digunakan untuk mengonfigurasi perangkat, termasuk perangkat dengan tujuan khusus untuk jaringan, seperti router (termasuk banyak titik akses Wi-Fi, dan modem DSL) dan perangkat lain seperti printer atau UPS (unit catu daya tak terputus yang didukung baterai) yang mungkin memiliki konektivitas jaringan.
Jadi pertanyaannya, "Mengapa URL case-sensitive?", Bertanya, "Mengapa server web memperlakukan URL sebagai case-sensitive?" Dan jawaban sebenarnya adalah: mereka tidak semua melakukan itu. Setidaknya satu server web, yang cukup populer, biasanya TIDAK peka terhadap huruf besar-kecil. (Server web adalah IIS.)
Alasan utama untuk perilaku yang berbeda antara server web yang berbeda mungkin bermuara pada masalah kesederhanaan. Cara sederhana untuk membuat server web adalah dengan melakukan hal-hal dengan cara yang sama seperti bagaimana sistem operasi komputer / perangkat menemukan file. Sering kali, server web mencari file untuk memberikan tanggapan. Unix dirancang di sekitar komputer kelas atas, sehingga Unix menyediakan fungsionalitas yang diinginkan untuk memungkinkan huruf besar dan kecil. Unix memutuskan untuk memperlakukan huruf besar dan kecil sebagai berbeda karena, yah, mereka berbeda. Itu hal yang langsung dan alami untuk dilakukan. Windows memiliki sejarah menjadi case-insensitive karena keinginan untuk mendukung perangkat lunak yang sudah dibuat, dan sejarah ini kembali ke DOS yang sama sekali tidak mendukung huruf kecil, mungkin dalam upaya menyederhanakan hal-hal dengan komputer yang kurang kuat yang menggunakan lebih sedikit memori. Karena sistem operasi ini berbeda, hasilnya adalah server web yang dirancang sederhana (versi awal) mencerminkan perbedaan yang sama.
Sekarang, dengan semua latar belakang itu, berikut adalah beberapa jawaban spesifik untuk pertanyaan spesifik:
Ketika URL pertama kali dirancang, mengapa sensitivitas huruf menjadi fitur?
Kenapa tidak? Jika semua server web standar tidak peka huruf besar kecil, itu akan menunjukkan bahwa server web mengikuti serangkaian aturan yang ditentukan oleh standar. Tidak ada aturan yang mengatakan bahwa kasus itu perlu diabaikan. Alasan bahwa tidak ada aturan hanyalah karena tidak ada alasan untuk ada aturan semacam itu. Mengapa repot-repot membuat aturan yang tidak perlu?
Saya menanyakan hal ini karena menurut saya (yaitu, orang awam) bahwa case-insensitivity lebih disukai untuk mencegah kesalahan yang tidak perlu dan menyederhanakan serangkaian teks yang sudah rumit.
URL dirancang untuk diproses oleh mesin. Meskipun seseorang dapat mengetik URL lengkap ke bilah alamat, itu bukan bagian utama dari desain yang dimaksud. Desain yang dimaksud adalah orang-orang akan mengikuti ("mengklik") tautan Jika orang awam rata-rata melakukan itu, maka mereka benar-benar tidak peduli apakah URL yang tak terlihat itu sederhana atau rumit.
Juga, adakah tujuan / keuntungan nyata untuk memiliki URL peka huruf besar-kecil (yang bertentangan dengan sebagian besar URL yang mengarah ke halaman yang sama tidak peduli kapitalisasi)?
Poin bernomor kelima dari jawaban William Hay menyebutkan satu keunggulan teknis: URL dapat menjadi cara yang efektif bagi peramban web untuk mengirim sedikit informasi ke server web, dan lebih banyak informasi dapat dimasukkan jika ada batasan yang lebih sedikit, jadi sensitivitas huruf besar-kecil pembatasan akan mengurangi seberapa banyak informasi dapat dimasukkan.
Namun, dalam banyak kasus, tidak ada manfaat yang sangat menarik untuk sensitivitas kasus, yang dibuktikan oleh fakta bahwa IIS biasanya tidak peduli dengannya.
Singkatnya, alasan yang paling menarik kemungkinan hanya kesederhanaan bagi mereka yang merancang perangkat lunak server web, terutama pada platform case-sensitive seperti Unix. (HTTP bukan sesuatu yang mempengaruhi desain asli Unix, karena Unix lebih tua dari HTTP.)