Perché hai bisogno di codificare gli URL? C'è una buona ragione per cui devi modificare ogni spazio nei dati GET a %20
?Perché è necessario codificare gli URL?
risposta
Da RFC 2936, sezione 2.4.3:
Il carattere di spazio è esclusa perché gli spazi significativi possono scomparire struttura insignificanti possono essere introdotto quando URI sono trascritti o typeset o sottoposto al trattamento di programmi di elaborazione testi . Lo spazio bianco viene anche utilizzato per definire l'URI del in molti contesti.
non è più preciso di RFC – Perpetualcoder
In altre parole, "No, non c'è un motivo tecnico intrinseco, ma sappiamo che gli implementatori e gli utenti sono entrambi sciatti." Probabilmente è stata la decisione giusta, soprattutto perché gli utenti avrebbero difficoltà a mantenere la giusta quantità di spazio. –
@Matthew - Esiste un motivo tecnico intrinseco, vedere la mia risposta – Rippo
Bene, lo fai perché tutti i diversi browser sanno come viene codificata la stringa che compone l'URL. la conversione dello spazio in% 20, ecc. rende quell'URL/URI portatile. Potrebbe essere latino-1 potrebbe essere unicode. Ha bisogno di essere normalizzato per qualcosa che è compreso universalmente. Date un'occhiata a rfc3986 http://tools.ietf.org/html/rfc3986#section-2.1
La modifica della rappresentazione dei byte non specifica una codifica. Almeno non letteralmente. –
Perché alcuni personaggi hanno significati speciali.
Ad esempio, in una stringa di query, la e commerciale (&
) viene utilizzata come separatore tra coppie chiave-valore. Se si inserisse una e commerciale in uno di questi valori, sembrerebbe il separatore tra la fine di un valore e l'inizio della chiave successiva. Quindi, per caratteri speciali come questo, usiamo la codifica in percentuale in modo che possiamo essere sicuri che i dati siano codificati in modo non ambiguo.
Ma supponiamo che tu possa codificare '&' come '% 26'. Ancora potreste avere un valore contenente la stringa come '100% 26 = 22'. Sembrerebbe ancora il separatore tra le coppie chiave-val, vero ?? –
No, perché '%' è uno dei caratteri con significati speciali, quindi anche questo deve essere codificato (come '% 25'). Se avessi il valore di stringa '% 26', questo apparirebbe in un URL come'% 2526' perché il '%' sarebbe codificato. Per ottenere il valore di stringa, decodificare il '% 25' come'% ', lasciandoti con la stringa'% 26'. – Jim
- originariamente i browser più vecchi potevano essere confusi dagli spazi (non è più un problema).
- ora, se qualcuno copia l'URL per inviare come un link - lo spazio può rompere il collegamento ipertestuale - vale a dire
Hey! Dai un'occhiata a questo gatto derping che suona il piano!
http://www.mysite.com/?video=funny cat plays piano.
Vedere come si interrompe il collegamento?
Ora un'occhiata a questo:
http://www.mysite.com/?video=funny%20cat%20plays%20piano.
- 1. codificare Perché url, o quali personaggi codificare
- 2. modo consigliato per codificare/decodificare gli URL
- 3. Come codificare i periodi per gli URL in Javascript?
- 4. Come URL codificare un URL in JSP?
- 5. Come codificare i parametri URL?
- 6. Perché è necessario NotificationCompat?
- 7. Perché è necessario digitare?
- 8. vhost.exe. Perché è necessario?
- 9. come url codificare in Android?
- 10. Perché è necessario utilizzare gli operatori di spostamento in java?
- 11. È necessario quotare il valore di url()?
- 12. mongodb perché è necessario getSisterDB
- 13. Perché è necessario gwt-bootstrap?
- 14. Qual è il modo corretto per codificare URL caratteri Unicode?
- 15. Perché è necessario attr_accessor in Rails?
- 16. Perché utilizzare gli URL relativi ai protocolli?
- 17. Come codificare (.) Dot in url Rails
- 18. Come codificare i parametri URL in QT?
- 19. Perché è necessario il limite `Dimensione 'necessario in questo tratto?
- 20. Errore: è necessario specificare una proprietà o una funzione URL
- 21. Perché è necessario un secondo cin.ignore()?
- 22. Perché il costruttore base() non è necessario?
- 23. Perché è necessario il pulsante Salva?
- 24. Perché è necessario browser.min.js in reactjs?
- 25. Perché è necessario SSLCertificateKeyFile per Apache?
- 26. Perché è necessario invocare setLayout con BoxLayout?
- 27. jQuery 1.7 .on() metodo, perché è necessario?
- 28. Routing URL su ASP.net, è necessario ottenere un parametro dall'URL
- 29. modo più veloce per codificare caratteri cirillici per url
- 30. È necessario os.path.join?
Una buona ragione è che in materiale stampato è meglio usare '% 20' in modo che alcuni CdA possibile digitare in senza cercare di indovinare il numero di spazi! –