Domanda

Sto creando e allegando una cucina per la mia applicazione con alcune informazioni utili.

Ma questa informazione non è accessibile dopo.

Il problema è che quando provo a collegare troppe informazioni, il mio cookie non è passato avanti. Quando provo a collegare alcune informazioni che è OK.

Le mie domande:

  1. Qual è la lunghezza massima per i valori di biscotti?
  2. Se si tratta di un bug, non v'è alcuna soluzione per Tomcat 5.5?

Sto creando il mio biscotto utilizzando il seguente codice:

Cookie cookie = new Cookie(key, value);
cookie.setPath("/");
response.addCookie(cookie);

E per il recupero il mio biscotto, sto usando questo codice:

private static String getCookieValue(HttpServletRequest request, String name) {
    boolean found = false;
    String result = null;
    Cookie[] cookies = request.getCookies();
    if (cookies != null) {
        int i = 0;
        while (!found && i < cookies.length) {
            if (cookies[i].getName().equals(name)) {
                found = true;
                result = cookies[i].getValue();
            }
            i++;
        }
    }

    return (result);
}
È stato utile?

Soluzione

Per quanto riguarda 1) "Qual è la lunghezza massima per i valori di biscotti?"

Non c'è massima forzata, solo una raccomandazione in RFC 2109 :

I programmi utente creati per scopi specifici o per capacità limitata dispositivi dovrebbero fornire almeno 20 cookie di 4096 byte, per garantire che l'utente può interagire con un server di origine basata sulla sessione.

Tenete a mente, che i cookie verranno trasmessi ogni volta che gli endpoint comunicano.

Per quanto riguarda la memorizzazione di valori più grandi sul lato client, dojox.storage è entrato nella mia mente (anche se questo è javaScript, mostra loro approccio a questo problema generale). Essi astrarre i vari modi incompatibili per memorizzare grandi quantità di dati all'interno del client - per esempio utilizzando uno dei disponibili

  • AirDBStorageProvider,
  • AirEncryptedLocalStorageProvider,
  • AirFileStorageProvider,
  • FlashStorageProvider,
  • GearsStorageProvider,
  • WhatWGStorageProvider.

Se avete il controllo sui clienti, si potrebbe andare via HTML5 con localStorage , che prevede un massimo di 5 MB di spazio client locale.

E un idea finale: Comprimere o codificare i dati memorizzati, o forse divisi in su, in modo che il server possa assumere alcuni dei valori effettivi, mentre si memorizzano solo le chiavi nel client (che a sua volta aggiungere più di connessione in testa a tutta la cosa, ovviamente).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top