Conservazione dei casi
Gli URL mantengono il caso , tra client e server. Tuttavia, alcune porzioni di URL possono o meno fare distinzione tra maiuscole e minuscole , a seconda del server, per un paio di motivi.
Sensibilità al maiuscolo / minuscolo
Le seguenti parti in grassetto degli URL potrebbero fare distinzione tra maiuscole e minuscole, a seconda della configurazione del sito e / o del server.
http: // www. esempio.com /abc/def.ghi?jkl=mno#pqr
utente @ esempio.com
Fondamento logico
La distinzione tra maiuscole e minuscole negli URL può avere diversi usi. Principalmente:
- Compatibilità nativa con filesystem sensibili al maiuscolo / minuscolo.
- Codifica dei dati più compatta all'interno degli URL, ad esempio per serializzazione, hash, ID, permalink e accorciatori di URL.
Come sviluppatore, credo che quanto sopra possa spesso essere gestito in modo migliore, ma capisco anche che ci sono casi in cui una situazione potrebbe non permetterlo.
Ad esempio, immagina un prodotto esistente che richiede molti dati inseriti nell'URL "GET", ma deve essere compatibile con le lunghezze massime degli URL di tutti i principali server, browser e meccanismi di cache / proxy. Per adattarsi anche a una stringa di comando di lunghezza moderata (inferiore a 1.024 caratteri per alcuni browser meno recenti), dovrai utilizzare ogni carattere univoco sicuro per l'URL che potresti (che è fondamentalmente la codifica base64url).
In un mondo ideale
È discutibile se gli URL debbano fare distinzione tra maiuscole e minuscole. Personalmente credo che non dovrebbero esserlo, per semplicità (anche se può creare URL più lunghi, abbiamo scappate percentuali per gestire facilmente i casi in cui dobbiamo garantire la conservazione di caratteri esatti e ci sono modi per trasferire dati diversi da quelli dell'URL) .
Molti sembrano concordare in base al fatto che gli URL senza distinzione tra maiuscole e minuscole sono esplicitamente abilitati per molti siti e servizi popolari, al fine di aumentare l'usabilità. L'esempio più importante è la parte nome utente degli indirizzi e-mail. La maggior parte dei provider di posta elettronica ignorerà il caso e talvolta anche i punti e altri simboli (come "j.smith@example.com" essendo gli stessi di "JSMITH@example.com"). Anche se i nomi utente e-mail fanno distinzione tra maiuscole e minuscole per impostazione predefinita, secondo le specifiche.
Tuttavia, il fatto è che, nonostante ciò che io o altri potremmo desiderare, questo è lo stato di funzionamento delle cose. E mentre un'eventuale transizione in tutto il mondo a uno standard URL senza distinzione tra maiuscole e minuscole è certamente possibile, ci vorrebbe probabilmente molto tempo poiché la distinzione tra maiuscole e minuscole è attualmente ampiamente utilizzata in rete per vari scopi.
Migliori pratiche
Per quanto riguarda le migliori pratiche, come utente puoi ragionevolmente attenersi alle lettere minuscole per la maggior parte delle situazioni e aspettarti che le cose funzionino. Le principali eccezioni sarebbero gli URL che usano la codifica basata su maiuscole o percorsi di documenti con equivalenti diretti del filesystem. Tuttavia, tali URL complessi sono generalmente incollati (o semplicemente cliccati) anziché digitati manualmente.
Come sviluppatore web, dovresti considerare di mantenere gli URL il più insensibili alle maiuscole. Sebbene ci siano chiaramente alcune situazioni difficili da evitare, a seconda del contesto, come notato sopra.