L'idempotenza, nella programmazione e nella matematica, è una proprietà di alcune operazioni tale che, non importa quante volte le esegui, ottieni lo stesso risultato.
Nella programmazione, l'idempotenza può essere una proprietà di molti diversi elementi di codice, incluse funzioni, metodi, richieste e istruzioni. L'idempotenza è una proprietà indipendente dal linguaggio: significa la stessa cosa in qualsiasi contesto di programmazione.
Ecco una semplice dimostrazione dell'idempotenza nelle richieste HTTP:
Le richieste HTTP GET sono un metodo per recuperare dati specificati da un'origine, ad esempio ottenere il saldo di un conto bancario. Le richieste GET sono idempotenti: l'accesso agli stessi dati dovrebbe essere sempre coerente. D'altra parte, le richieste POST sono progettate per modificare l'obiettivo, ad esempio l'aggiunta di una somma a un conto bancario. In quanto tale, una richiesta POST dovrebbe modificare il risultato e ciò significa che non è idempotente.
Benjamin Peirce, un matematico americano del XIX secolo che ha insegnato ad Harvard per oltre 19 anni, ha coniato la parola idempotente per riferirsi a elementi algebrici che non cambiano quando elevati a una potenza intera positiva. Il significato letterale della parola è "della stessa potenza", dal latino idem, che significa stesso e francese antico forca, che significa energia.
Corey Schafer spiega l'idempotenza: