• User Attivo

    Grazie a tutti, però non saprei proprio fare il test con il browser, potresti spiegarmi come farlo e cosa dovrei vedere?

    Grazie mille

    Dimenticavo quello che mi dice che Gzip non è attivo è Pagespeed Insight, mentre gli altri tra cuoi speedoo mi dice che gzip è attivo!

    Mi potreste dare una mano grazie a tutti


  • Admin

    Apri Chrome.
    Fai Ispeziona elemento e di si apre la finestra sotto.
    Clicchi sul tab "Network"
    Clicchi sulla richiesta e negli Headers Request vedi Accept-Encoding e sotto nel Response Content-Encoding

    image


  • User Attivo

    Grazie millllleeeeeeee!

    Io penso che Gzip sia abiliatato: se fosse cosi' perchp pagespeed di google lo lo vede?

    • Accept:
      text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,/;q=0.8

    • **Accept-Encoding:
      **
      gzip,deflate,sdch

    • **Accept-Language:
      **
      it-IT,it;q=0.8,en-US;q=0.6,en;q=0.4

    • Connection:
      keep-alive

    ANche in response trovo

    • Content-Encoding:
      gzip

  • Admin

    Perché a volte questi strumenti scazzano 🙂


  • User Attivo

    Sono due giorni che sto cercando di capire il perchè!!!! jajajajaja

    Ancora una cosa per quanto riguarda la data di expires cache dove potrei vederla?

    Grazie


  • Admin

    Anche quella la vedi negli header.


  • User Attivo

    Grazie mille Juanin, l' opzione dell expires cache è questa?

    • Cache-Control:
      max-age=0

    In questo caso vuol dire che è disattivata?


  • Admin

    In realtà ci sono diversi casi, ma la sintesi è che in quel modo non hai praticamente impostato una cache a lungo termine.

    Giusto per rendere un po' più costruttiva e utile la discussione in modo da renderla appetibile anche per uso futuro sulla questione cerco di fornire informazioni e link sulla question.

    Principalmente ci sono 2 casi:

    1. Quando la risposta arriva dal Server
    2. Quando la risposta arriva dal Browser

    **1. Quando la risposta arriva dal Server
    **
    In teoria **Cache-Control: max-age=0 **dice che la risposta è vecchia e andrebbe rivalidata (ad esempio con l'If-Not-Modified) prima di usare una copia in cache.
    Invece il Cache-Control: no-cache indica che si deve rivalidare prima di usare la copia in cache. Su questo punto puoi valutare le specifiche w3c.

    C'è poi purtroppo anche un discorso variabile da Browser a Browser e che cambia nel tempo quindi entreremmo in un loop infinito di modifiche dei comportamenti e preferisco sorvolare anche perché non faccio il check da tempo con le varie versioni dei Browser.

    In teoria poi puoi anche forzare la rivalidazione del max-age=0 aggiungendo must-revalidate e dunque facendo diventare **Cache-Control: max-age=0, must-revalidate

    ****2. Quando la risposta arriva dal Browser
    **
    Qui puoi leggere sempre le specifiche w3c.
    In pratica Cache-Control: max-age=0 (anche detto "end-to-end revalidation") fa sì che basandosi su ad esempio il sopra citato If-Not-Modified vada a riverificare il contenuto rispetto al contenuto in cache, ma se viene ritornata una risposta 304 Not Modified allora verrà utilizzato il contenuto in cache.

    Nel caso di Cache-Control: no-cache (anche detto "end-to-end reload") non viene rivalidato il contenuto e il server non deve ritornare la copia in cache in fase di risposta.

    Sempre ripescando la documentazione da w3c possiamo trovare info su max-age e approfondire quello che ho provato a sintetizzare sopra.

    max-age
    When an intermediate cache is forced, by means of a max-age=0 directive, to revalidate its own cache entry, and the client has supplied its own validator in the request, the supplied validator might differ from the validator currently stored with the cache entry. In this case, the cache MAY use either validator in making its own request without affecting semantic transparency.

    However, the choice of validator might affect performance. The best approach is for the intermediate cache to use its own validator when making its request. If the server replies  with 304 (Not Modified), then the cache can return its now validated copy to the client with a 200 (OK) response. If the server replies with a new entity and cache validator,  however, the intermediate cache can compare the returned validator with the one provided in  the client's request, using the strong comparison function. If the client's validator is equal to the origin server's, then the intermediate cache simply returns 304 (Not Modified). Otherwise, it returns the new entity with a 200 (OK) response. 
    
    
    If a request includes the no-cache directive, it SHOULD NOT include min-fresh, max-stale, or max-age. 
    

    Un ulteriore approfondimento si trova anche su StackOverflow.


  • User Attivo

    Secondo te googlespeed non mi vede expires cache perchè ho impostato solo 30 giorni?


  • Admin

    Da quello che dici non lo vede perché non è impostato.
    Hai letto quello che ho scritto sopra?

    Come hai impostato gli expire headers? Mi incolli il tuo codice?


  • User Attivo

    ho utilizano un tools di helicon jet, perchè il sito è in asp.net. pero perchè tutti gli altri analizzatori di velocità mi riconoscono gli expires headers? come si posso abilitare in IIS 6?

    Grazie mille


  • Admin

    Ok, ma io ti ho chiesto come li hai implementati tu 🙂

    Mi incolli la procedura che hai seguito?
    Il tool dove agisce e come? A livello di sistema o a livello applicativo?

    In ogni caso per IIS6 la procedura non dovrebbe essere complessa ed è spiegata qui.


  • User Attivo

    Ciao agisce a livello di applicativo, il tutto viene implementato da un software, dove si specificano le date, la cache etc etc!

    Per questo non ho potuto inserirti il codice!

    Se vuoi te lo allego!

    Ciaoooooo


  • Admin

    Ok. Allora cerca di capire cosa fa il software che usi. È fondamentale conoscere il comportamento degli strumenti che si usano.