È OK restituire un codice 301/302/303 quando si restituisce una risorsa immagine? L'ho fatto in passato e sembra funzionare. È una buona pratica ed è compatibile con la maggior parte dei browser?OK per reindirizzare le immagini HTTP?
risposta
Sì, è possibile reindirizzare le immagini e browser seguirà reindirizzamenti. In genere, tuttavia, si desidera mantenere il reindirizzamento al minimo per motivi di prestazioni, poiché ogni reindirizzamento richiede una richiesta HTTP separata, che aggiunge l'overhead del server e aumenta leggermente il tempo di caricamento della pagina dell'utente finale.
L'unica cosa che dovresti assolutamente evitare è il reindirizzamento di molte immagini su una pagina. Ciò rallenterà notevolmente il tempo di caricamento della pagina, specialmente sulle reti a latenza elevata (ad esempio telefono, Cina, Internet via satellite) in cui ogni nuova richiesta HTTP richiede molto tempo. Inoltre, i client HTTP sono limitati a un numero limitato di connessioni HTTP simultanee per hostname del server, quindi anche su reti veloci finirai con un collo di bottiglia.
Reindirizzare 1 o 2 immagini su una pagina non è un grosso problema, tuttavia.
Se si reindirizzano le immagini e sono memorizzabili nella cache, è preferibile impostare un'intestazione Scadenza HTTP (e l'intestazione Cache-Control appropriata) per una data nel lontano futuro, quindi almeno nelle successive visite agli utenti della pagina non dovrà più passare attraverso il reindirizzamento.
Se il motivo per cui si sta reindirizzando è conforme a un nuovo schema URL, la maggior parte dei server Web ha un modo semplice per riscrivere gli URL sul server senza dover inviare un reindirizzamento effettivo al client. In altre parole, il client può richiedere /static/bar.jpg
ma il server può essere configurato per tradurlo in /media/images/bar.jpg
. Questo approccio di riscrittura degli URL è preferibile al reindirizzamento nella maggior parte dei casi, dal momento che è possibile refactoring dove il contenuto vive sul server senza incorrere nel sovraccarico di reindirizzamento sul lato client o server.
Sì, funziona.
A proposito di buone pratiche, quali sono le alternative? Restituzione di una risposta di errore (404)? Non molto utile. Restituendo l'immagine che la risorsa reindirizzata sarebbe tornata? Probabilmente non è possibile, altrimenti non verrai reindirizzato. Risolvere i tag img con il nuovo URL? Certo, se possibile, ma forse vuoi che il browser esegua il reindirizzamento (forse un contatore).
E 'OK se il codice riflette in realtà la realtà - per esempio, se un'immagine ha infatti spostato permanenetly, si dovrebbe utilizzare un 301.
- 1. $ http Ottieni logica per consentire solo 200 OK
- 2. Reindirizzare il modulo HTTP post
- 3. HTTP nucleo componenti seguire reindirizzare
- 4. Come aggiungere intestazioni multiple con ok Http
- 5. Chrome browser non mostrare le immagini generate dal gestore HTTP
- 6. mod_rewrite: Come reindirizzare HTTP DELETE e PUT
- 7. Confronta le immagini per trovare le differenze
- 8. Reindirizzare mail.example.com a http://mail.google.com/a/example.com
- 9. Come reindirizzare http a https in CodeIgniter
- 10. IIS Rewrite Rule nel web.config per reindirizzare le richieste HTTPS a HTTP
- 11. reindirizzare le stampe sul file di registro
- 12. È OK utilizzare ThreadLocal per memorizzare le impostazioni internazionali richieste?
- 13. Google Inceptionism: ottieni le immagini per classe
- 14. Modo Python per `return (valore == 'ok')? 'Ok': 'nok' `
- 15. Reindirizzare HTTP a HTTPS sull'host virtuale predefinito senza ServerName
- 16. C++ reindirizzare le connessioni in uscita
- 17. Scorri tra le immagini filtrate per Android
- 18. Come si instradano le immagini utilizzando il routing ASP.Net MVC?
- 19. Le funzioni di sistema() C sono ok?
- 20. Angular $ routeProvider http: // localhost/thisapp/== ok, http: // localhost/thisapp/#/== errore. Perché?
- 21. Intestazione personalizzata http AngularJS $ http per tutte le richieste
- 22. Nginx - reindirizzare da https a http senza certificato SSL
- 23. Caricamento di un'immagine URL HTTPS che possono reindirizzare HTTP
- 24. RecyclerView scompare le immagini
- 25. Come reindirizzare HTTP a HTTPS nell'applicazione MVC (IIS7.5)
- 26. Come posso riscrivere/reindirizzare da http a https in Go?
- 27. Windows Form TextBox per mostrare le immagini
- 28. Come utilizzare Resources.resx per collegare le immagini
- 29. Usare JPEG per le immagini di lancio
- 30. CoreData (per iPhone) memorizzare le immagini
Non sto sostenendo né 301 né riscritture, poiché è preferibile il progetto, ma volevo menzionare un'ulteriore considerazione sulla riscrittura. I riscrivi non sono gratuiti, richiedono un certo grado di risorse di elaborazione aggiuntive. In molte situazioni questo non è un problema, in quanto il consumo totale di risorse corrisponde a riscrivere la complessità e il numero di esecuzioni. Volevo solo assicurarmi che tutti comprendessero che entrambi i metodi hanno i loro costi, così come ogni potenziale soluzione. – TechZilla