Ho lavorato recentemente con i server / client HTTP di Indy 10 su Delphi XE2, e devo assicurarmi di comprendere correttamente la gestione delle sessioni. Nel server, ho un "secchio" di sessioni, che è una lista di oggetti che rappresentano ciascuno una sessione unica. Non uso username e password per autenticare gli utenti, ma preferisco usare una chiave API unica che viene rilasciata a un client e ha una scadenza.
Quando un cliente desidera connettersi al server, per prima cosa effettua l'accesso chiamando il comando "login", che è un percorso come questo: http://localhost:1234/login?APIKey=abcdefghij
. Il server controlla questa chiave API sul database e, se è valida, crea una nuova sessione nel bucket, emette un nuovo cookie (stringa univoca) e imposta i cookie di risposta con Success=Y
e Cookie=abcdefghij
.
Questo è il posto dove ho la domanda. Supponendo che il client abbia un proprio metodo di gestione dei cookie, il client riceverà questa risposta di login dal server e automaticamente salverà i cookie se necessario. Qualsiasi richiesta futura dal client al server invierà automaticamente insieme a questi cookie, e il lato client non deve necessariamente preoccuparsi di impostare questi cookie quando si inviano richieste al server. Giusto?
PS - Sto facendo questa domanda qui su programmers.stackexchange.com perché non ho ritenuto opportuno chiedere su stackoverflow.com. Se qualcuno pensa che questo sia abbastanza appropriato per stackoverflow.com, per favore fatemelo sapere.