Solo un complemento alla risposta di @ Anders.
I cookie sono un modo per avere sessioni stateful in HTTP che di per sé è un protocollo stateless non connesso. Le sessioni sono necessarie per le applicazioni Web e qualsiasi attività in linea.
I cookie utilizzati per essere disapprovati come era javascript nei primi tempi, perché in primo luogo è un modo per raccogliere statistiche di utilizzo e ha problemi di privacy, mentre l'altro consente al server di controllare il browser, che ha problemi di sicurezza. Oggigiorno, molti siti semplicemente non sono utilizzabili con i cookie o disabilitati per JavaScript, e disabilitarli in un browser non è sempre un compito banale. Quindi la mia opinione è che va bene fornire un servizio che richiede i cookie. Basta visualizzare una pagina di avviso che dice che il servizio richiede i cookie se non riesci a stabilire una sessione.
La riscrittura degli URL è (era?) un'alternativa ai cookie per fornire sessioni in HTTP. In questa modalità, si aggiunge costantemente un parametro costituito da una chiave e l'identificatore di sessione. Tutti i dati di sessione devono essere trasportati sul lato server in quella modalità. In questo modo non vi è alcun ulteriore rischio di perdita di dati poiché solo l'identificatore viene scambiato nell'URL. Il lato negativo è che non è adatto ai segnalibri: l'URL contiene l'id di sessione, quindi se aggiungi l'URL di una pagina che lo include tra i segnalibri, riceverai un errore di sessione non valido quando proverai a utilizzarlo in seguito. Ed è molto più difficile da usare rispetto a un cookie per passare informazioni tra siti dello stesso dominio. Per questo motivo i cookie sono ora il modo standard per avere un sito o un'applicazione HTTP stateful.
Le persone a cui non piacciono i cookie sostengono anche che non esiste un equivalente persistente nella riscrittura degli URL e che i cookie persistenti sono molto utilizzati per raccogliere dati sul comportamento dei clienti, le principali società Web (Google, Facebook, Amazon, ecc.) volentieri solo permesso ai cookie di navigare nei loro siti, e che a causa di tale riscrittura dell'URL è stato più o meno abbandonato. Sia vero o falso, è solo ora privo di significato perché il fatto è che i cookie sono richiesti dalla maggior parte dei siti e permessi dalla maggior parte degli utenti.