Representational State Transfer

Da Wikipedia, l'enciclopedia libera.

Representational state transfer (REST) è un tipo di architettura software per i sistemi di ipertesto distribuiti come il World Wide Web. Il termine "representational state transfer" e "REST" furono introdotti nel 2000 nella tesi di dottorato di Roy Fielding,[1] uno dei principali autori delle specifiche dell' Hypertext Transfer Protocol (HTTP), termine ampiamente usato nella comunità di internet.

REST si riferisce ad un insieme di principi di architetture di rete, i quali delineano come le risorse sono definite e indirizzate. Il termine è spesso usato nel senso di descrivere ogni semplice interfaccia che trasmette dati su HTTP senza un livello opzionale come SOAP o la gestione della sessione tramite i cookies. Questi due concetti possono andare in conflitto cosi come in sovrapposizione. È possibile progettare ogni sistema software complesso in accordo con l'architettura REST di Fielding senza usare HTTP e senza interagire con il World Wide Web. È anche possibile progettare una semplice interfaccia XML+HTTP che non sia conforme ai principi REST, e invece segua un modello di Remote Procedure Call. La differenza tra l'uso del termine "REST" quindi causa qualche confusione nei dibattiti.

I sistemi che seguono i principi REST sono spesso definiti "RESTful".

Indice

[modifica] Principi

REST prevede che la scalabilità del Web e la crescita siano diretti risultati di pochi principi chiave di progettazione:

  • Lo stato dell'applicazione e le funzionalità sono divisi in Risorse WEB
  • Ogni risorsa è unica e indirizzabile usando sintassi universale per uso nei link ipertestuali
  • Tutte le risorse sono condivise come interfaccia uniforme per il trasferimento di stato tra client e risorse, questo consiste in:
    • un insieme vincolato di operazioni ben definite
    • un insieme vincolato di contenuti, opzionalmente supportato da codice on demand
  • un protocollo che è:
« REST’s client-server separation of concerns simplifies component implementation, reduces the complexity of connector semantics, improves the effectiveness of performance tuning, and increases the scalability of pure server components. Layered system constraints allow intermediaries—proxies, gateways, and firewalls—to be introduced at various points in the communication without changing the interfaces between components, thus allowing them to assist in communication translation or improve performance via large-scale, shared caching. REST enables intermediate processing by constraining messages to be self-descriptive: interaction is stateless between requests, standard methods and media types are used to indicate semantics and exchange information, and responses explicitly indicate cacheability. »

Fielding, op. cit., 2000


[modifica] Note

  1. ^ Chapter 5 of Fielding’s dissertation is “Representational State Transfer (REST)”.

[modifica] Riferimenti

  • 2008-04

[modifica] Collegamenti esterni

  • Telematica Portale Telematica: accedi alle voci di Wikipedia che parlano di reti, telecomunicazioni e protocolli di rete
Strumenti personali