• Azienda
    • Chi siamo
    • Casi di studio
    • Centro Stampa
    • Eventi
    • Lavora con noi
    • Blog
    • Contattaci
  • Login
 
  • Italiano
    • English
    • Deutsch
    • Español
    • Français
    • Português
Paessler
                    - The Monitoring Experts
  • Prodotti
    • Paessler PRTG
      Paessler PRTGMonitora la tua intera infrastruttura IT
      • PRTG Network Monitor
      • PRTG Enterprise Monitor
      • PRTG Hosted Monitor
      • PRTG estensioniEstensioni per Paessler PRTGEstendere il monitoraggio a un nuovo livello
    • Icon Features
      FunzioniEsplora tutte le funzionalità di monitoraggio
      • Mappe e dashboard
      • Avvisi e notifiche
      • Interfacce utente multiple
      • Monitoraggio distribuito
      • Rapporti personalizzabili
  • Soluzioni
    • Settori
      SettoriMonitoraggio in diversi settori
      • Industria
      • Sanità
      • Data center
      • Istruzione
      • Servizi finanziari
      • Pubblica amministrazione
    • Argomenti IT
      Argomenti ITMonitoraggio di tutte le aree IT
      • Monitoraggio di rete
      • Monitoraggio banda
      • Monitoraggio SNMP
      • Mappatura di rete
      • Monitoraggio Wi-Fi
      • Monitoraggio del server
  • Prezzi
  • Servizi
    • Corsi di formazione
      Formazione PRTGImparare a lavorare con PRTG
    • PRTG Consulting
      PRTG ConsultingConsigli di monitoraggio da parte di esperti
    • supporto
      PRTG SupportBeneficiare di un supporto premium
  • Risorse
    • Per iniziare
      Per iniziareModuli per l'autoapprendimento
    • Guide pratiche
      Guide praticheTrai il massimo da PRTG
    • Video & Webinar
      Video & WebinarImpara dagli esperti Paessler
    • Conoscenza dell'IT
      Conoscenza dell'ITAmplia le tue conoscenze IT
    • Manuale PRTG
      Manuale PRTGDocumentazione completa
    • Knowledge Base
      Knowledge BaseLasciati coinvolgere con Q&A
    • PRTG Sensor Hub
      PRTG Sensor HubRicevi sensori, script e modelli
  • Partner
    • icona stella
      Nuovi partner e MSPDiventa un nuovo partner o MSP
    • icon partner
      Portale partnerAccedi al tuo account partner
    • Registrazione dell'offerta
      Registrazione dell'offertaRegistra le tue opportunità di vendita
    • Trova un Partner
      Trova un partnerTrova i partner che vendono i prodotti Paessler
    • Partner tecnologici
      Alleanze tecnologicheScopri le partnership tecnologiche di Paessler
  • Azienda
    • Chi siamo
    • Casi di studio
    • Centro Stampa
    • Eventi
    • Lavora con noi
    • Blog
    • Contattaci
  • Login
  • Italiano
    • English
    • Deutsch
    • Español
    • Français
    • Português
  • Prova gratuita
  1. Home>
  2. IT Explained>
  3. REST
PRTG Logo

REST

  • Un'architettura leggera per la comunicazione basata sul web che alimenta le app moderne
  • Consente ad app, dispositivi e servizi di dialogare tra loro senza soluzione di continuità
  • Capire come REST fa funzionare senza problemi il web moderno

Cosa troverete in questa pagina

Tabella dei contenuti
  • Che cos'è REST?
  • Vincoli generali di REST
  • Elementi di REST
  • Implementazione RESTful
  • API RESTful
  • Fonti

PRTG è compatibile con tutti i principali produttori, prodotti e sistemi

compatibile con tutti i principali produttori, prodotti e sistemi

Che cos'è REST?

REST è una definizione di stile architetturale applicata alle applicazioni in rete. Esiste come una serie di vincoli applicati all'implementazione dei componenti di rete, che consentono una semantica uniforme delle interfacce, piuttosto che applicazioni e sintassi specifiche.


REST come architettura di rete è stata documentata per la prima volta da Roy Fielding nella sua tesi di dottorato intitolata Architectural Styles and the Design of Network-based Software Architectures, pubblicata nel 2000. REST consente ai client di interagire con i dati memorizzati su un server, senza avere alcuna conoscenza preliminare del server o di ciò che vi è contenuto.

Che cosa significa REST?

REST è l'acronimo di Representational State Transfer. I puristi degli acronimi lo scrivono spesso come ReST, perché la E di REST in realtà non significa nulla. IT è semplicemente la seconda lettera della parola Representational. In questo modo si evitano le controversie su come pronunciarlo, come quelle che hanno afflitto GIF negli ultimi anni. Con la E inclusa, non c'è confusione quando si pronuncia l'acronimo più preciso di RST come "polso" o anche come R-S-T.

PRTG rende il monitoraggio REST il più semplice possibile

Gli avvisi personalizzati e la visualizzazione dei dati consentono di identificare e prevenire rapidamente i problemi di salute e di prestazioni della rete.

DOWNLOAD GRATUITO

Vincoli generali di REST

Non esiste una definizione specifica o uno standard di cosa sia REST. Come architettura, REST definisce il modo in cui i vari componenti sono collegati tramite connettori e il modo in cui i dati vengono scambiati attraverso le interfacce. REST è una serie di vincoli o requisiti che, se rispettati, creano un'implementazione dello stile architettonico REST.

L'architettura REST non incoraggia la creazione di metodi aggiuntivi, specifici per ogni situazione. Ad esempio, un'architettura REST utilizzerebbe il metodo GET per recuperare i dati in ogni circostanza. L'unico cambiamento per i diversi tipi di dati sarebbe rappresentato da parametri diversi. Ciò è in contrasto con la creazione di un nuovo metodo per ottenere informazioni su un utente (getUser) e di un altro metodo per ottenere informazioni sui prezzi (getPricing) e così via.

Server client

L'interfaccia utente del client è separata e indipendente dalla memorizzazione dei dati sul server. Ciò consente di implementare e modificare il client indipendentemente da ciò che accade o meno sul server. Allo stesso modo, i dati sul server possono essere utilizzati e modificati indipendentemente dal modo in cui il client vi accede. Questo tipo di progettazione consente ai sistemi client e server di evolvere al proprio ritmo, indipendentemente l'uno dall'altro.

Senza stato

Nessun dato di sessione deve essere memorizzato sul server tra le richieste del client. In altre parole, ogni transazione deve essere in grado di comprendere completamente la richiesta senza dover accedere ad alcun contesto o dato aggiuntivo memorizzato sul server. Tutti i dati di sessione devono risiedere esclusivamente sul client.

Questo vincolo consente di semplificare il bilanciamento del carico o la tolleranza ai guasti. Un server diverso potrebbe rispondere a ogni richiesta del client e restituire gli stessi dati del server originale, purché entrambi i server abbiano gli stessi dati originali. Non è necessario passare alcun tipo di dati specifici della sessione tra questi server di bilanciamento del carico. Le sessioni che non sono stateless potrebbero dare luogo a risposte diverse se la richiesta viene elaborata da un server diverso, perché solo il server precedente avrebbe i dati specifici di quella sessione con il cliente.

Dati memorizzabili nella cache

In ogni Exchange, i dati devono essere contrassegnati come dati memorizzabili nella cache o non memorizzabili. I dati memorizzabili nella cache possono essere memorizzati e riutilizzati dal client. I dati non vengono cachettati sul server perché ciò violerebbe il vincolo di stateless. La possibilità di cache dei dati riduce l'aumento della larghezza di banda altrimenti necessaria per mantenere una sessione client-server stateless.

Interfaccia uniforme

Per ottenere la piena interoperabilità, l'interfaccia è disaccoppiata dal tipo di dati, purché tutte le interazioni avvengano nello stesso modo. Quattro sotto-costrizioni assicurano l'uniformità delle interfacce: l'identificazione delle risorse, la manipolazione delle risorse attraverso le rappresentazioni, i messaggi autodescrittivi e l'Hypermedia as The Engine Of the Application State (HATEOAS).

Identificazione delle risorse

Ogni informazione che può essere denominata è una risorsa. Una risorsa può essere una qualsiasi forma di dati. Un identificatore di risorsa è un modo per riferirsi a una risorsa specifica in un determinato momento. Tali risorse possono essere aggiornate sul server senza che il client ne sia a conoscenza in anticipo, perché ogni richiesta viene descritta e risolta in modo completo.

Manipolazione tramite rappresentazioni

Una rappresentazione è lo stato attuale di una risorsa, insieme ai metadati che la accompagnano e che permettono di comprendere la rappresentazione. Il formato dei dati di una rappresentazione definisce il suo tipo di supporto. Pertanto, un client può richiedere una risorsa, ad esempio un'immagine, a un server utilizzando l'identificatore della risorsa (probabilmente un URI) e una rappresentazione dell'immagine composta dai byte che la compongono, insieme ai metadati che definiscono il formato dei dati come un tipo di supporto JPG, verrà restituita al client, che potrà quindi visualizzare l'immagine all'utente.

Messaggi autodescrittivi

Ogni messaggio dal client al server deve contenere tutte le informazioni necessarie per l'elaborazione del messaggio. Nel caso della sicurezza e dell'autenticazione, il token di sicurezza deve essere scambiato in ogni messaggio.

I cookie sono molto diffusi su Internet. L'atto di controllare il cookie rispetto a tutti i dati in ogni messaggio sarebbe un esempio di messaggio non autodescrittivo e quindi non tecnicamente RESTful.

Hypermedia come motore dello stato dell'applicazione (HATEOAS)

Definizione di ipermedia

L'ipermedia è simile al concetto di ipertesto o di collegamento ipertestuale, ma comprende tutte le forme di media e non solo il testo o i link. Si tratta di un modo non lineare di fornire informazioni o dati, in genere seguendo un link o un altro marcatore in una risorsa pubblicata come una pagina web. L'ipermedia può essere costituito da testo, grafica, video o altre forme di dati.

In HATEOAS, un client interagisce in rete attraverso gli ipermedia

Il client interagisce con un server utilizzando solo gli ipermedia. Questi stessi ipermedia vengono forniti dinamicamente dal server in risposta a una richiesta RESTful. Di conseguenza, non è richiesta alcuna conoscenza preliminare dei dati presenti su un server, della loro struttura o di come sono archiviati. Al contrario, è necessario utilizzare solo una struttura e dei metodi ipermediali ben definiti.

Sistema a strati

In un sistema a livelli gerarchici, nessun componente può interagire o vedere dati o interfacce se non nel proprio livello immediato. Di conseguenza, non è necessario che il client sappia come, e nemmeno se sia necessario, connettersi a qualsiasi altro server, proxy, firewall, router o endpoint. Piuttosto, qualsiasi intermediario continuerà a connettersi ai server successivi secondo i vincoli REST e la risposta risultante a qualsiasi richiesta restituita al cliente tramite gli intermediari sarà anch'essa conforme a REST. Le modifiche o le interruzioni dei sistemi intermediari sono quindi invisibili al cliente, consentendo a tali sistemi intermediari di fornire bilanciamento del carico, sicurezza o altre funzioni.

Codice su richiesta

Anche se tecnicamente è indicato come opzionale, i client in un'architettura REST dovrebbero essere in grado di scaricare ed eseguire script. Ciò consente di estendere funzionalità e sistemi più complessi, pur garantendo la stessa comunicazione in stile REST tra client e server. Come per le richieste e le risposte di base, l'intera istruzione per l'esecuzione del codice scriptato deve essere indipendente e non deve richiedere una pre-implementazione sul client.

Ad esempio, un client Web può eseguire il codice JavaScript che riceve dal server. Anche se il codice risiede sul server, non viene eseguito. Invece, il codice stesso viene inviato al client come parte della richiesta e viene eseguito dal client in base alla sua implementazione. Questo è il motivo per cui la corretta implementazione degli standard nei client Web è così importante; altrimenti, lo stesso codice dal server può essere eseguito con risultati diversi su client diversi.

Trovate la causa del problema con il nostro strumento di monitoraggio REST di PRTG

Notifiche in tempo reale significano una risoluzione più rapida dei problemi, in modo da poter intervenire prima che si verifichino problemi più gravi.

DOWNLOAD GRATUITO

Elementi di REST

Elementi di dati

I componenti di un sistema REST comunicano attraverso una rappresentazione di una risorsa in uno dei diversi formati standardizzati concordati, come formati grafici, formati di documenti e vari formati web. Anche in questo caso, per essere un vero sistema REST, ogni transazione deve contenere la capacità di recuperare e interpretare la risorsa desiderata.

Risorsa

Una risorsa è qualsiasi cosa che possa essere nominata. La risorsa memorizzata sul server per essere richiesta dal client. Una risorsa può essere un file statico, un documento, un database, un'immagine o qualsiasi altro formato che possa essere richiesto.

Anche se oggi è un concetto comune, l'idea originale di risorsa come elemento generico, modificabile e puntuale è stata una caratteristica fondamentale di REST e del web in generale. Una risorsa è un qualsiasi dato nominabile su un server. Questi dati possono cambiare non solo in una versione più recente degli stessi dati, ma anche in un tipo di dati completamente diverso. Ciò consente di aggiornare i dati su un server in qualsiasi momento, senza che i client debbano saperlo in anticipo, una caratteristica chiave dell'interoperabilità e della disponibilità.

Identificatore della risorsa

L'identificatore di risorsa è la posizione specifica della risorsa richiesta. Nel caso di un sistema basato su HTTP, l'identificatore di risorsa è l'URL o URI. L'identificatore di risorsa specifica una singola risorsa. Un singolo identificatore di risorsa può riferirsi a dati o risorse diverse in momenti diversi. In un sistema conforme a REST, il client non deve sapere in anticipo che tipo di risorsa sta richiedendo l'identificatore di risorsa. La risposta includerà metadati che descrivono come interpretare i dati ricevuti.

Ad esempio, anche se una richiesta URL indica /server/index.html, se la risorsa a quell'indirizzo restituisce una rappresentazione come file immagine, insieme ai metadati corrispondenti, il file immagine sarà comunque visualizzato correttamente, indipendentemente da ciò che ha detto l'identificatore della risorsa.

Rappresentazione

Si riferisce ai dati inviati al client. Come già detto, la rappresentazione deve essere uno dei formati di dati standardizzati. I dati non vengono elaborati dal server, ma interpretati dal client. Ad esempio, un client che richiede un documento HTML non riceve una grafica da visualizzare sul monitor, ma piuttosto un insieme di codice HTML che viene interpretato e visualizzato sul client. Altri esempi di rappresentazione sono i file grafici come le immagini JPEG e GIF.

Metadati di rappresentazione

I metadati di rappresentazione forniscono informazioni sulla rappresentazione al sistema. Come per la maggior parte dei metadati, i metadati di rappresentazione non fanno in genere parte di ciò che viene visualizzato dall'utente finale. I metadati della rappresentazione possono includere il tipo di supporto, la data di creazione e di modifica e il numero di versione.

Metadati delle risorse

I metadati delle risorse sono informazioni aggiuntive fornite al sistema sulla risorsa che esiste sul server piuttosto che sulla rappresentazione visualizzata sul client. Esempi di metadati di risorse sono i link di origine, le alternative e le informazioni sulla risorsa. Ad esempio, i metadati delle risorse possono includere testo alternativo da visualizzare nel caso in cui la rappresentazione di un'immagine non possa essere visualizzata per qualche motivo (ad esempio, il testo ALT dell'immagine in HTML).

Dati di controllo

I dati di controllo riguardano principalmente la validità della risorsa e della sua rappresentazione sul client. I dati di controllo includono se i dati sono memorizzabili nella cache o meno, nonché il tempo di scadenza assoluto, ovvero forniscono un limite alla durata di utilizzo dei dati. I dati di controllo possono anche includere una somma di controllo o altri mezzi per garantire l'integrità.

I nostri utenti danno il massimo per il monitoraggio con Paessler PRTG

Gartner peer insights
spiceworks
G2
Capterra

Implementazione RESTful

Nel suo insieme, l'architettura REST crea un framework altamente scalabile, completamente trasparente e riutilizzabile, in cui i client sono disaccoppiati dall'impianto dei servizi sui server. È indipendente dalla piattaforma, sia per il client che per il server. È indipendente dal linguaggio e dalla struttura. Non importa se i dati esistono in un database, se vengono recuperati da un processo server Java e se vengono inviati a un programma locale - come un browser - codificato in una delle diverse versioni di C.

Nel web moderno, REST è implementato utilizzando un vocabolario standard comune tra client e server noto come Hypertext Transfer Protocol, o HTTP. Tuttavia, qualsiasi implementazione conforme a tutti i principi dell'architettura REST è considerata un'implementazione RESTful. HTTP non è l'unica possibilità.

REST e HTTP

Sebbene HTTP e REST non siano la stessa cosa, HTTP nella sua forma originale è un'implementazione di REST. Ciò non sorprende se si considera che Roy Fielding stava lavorando al protocollo HTTP 1.1, mentre sviluppava l'architettura REST.

Identificazione delle risorse in HTTP

Ogni risorsa è identificata da un identificatore uniforme di risorse (URI). In genere, questo è implementato come URL all'interno di un browser web. Un URI identifica una risorsa. Non è richiesta alcuna conoscenza preliminare del sistema in cui la risorsa risiede sul server. Inoltre, l'URI (o URL) è in grado di specificare la rappresentazione di una risorsa, senza conoscere la struttura del file di tale risorsa.

Rappresentazione delle risorse

In HTTP, la rappresentazione delle risorse è implementata attraverso il supporto di vari tipi di file all'interno di un browser HTTP. Pertanto, i metadati che accompagnano una risorsa definiscono uno dei diversi formati di file ampiamente supportati, come HTML, CSS, JPG, GIF e così via.

Metodi HTTP

Un'implementazione RESTful pura di HTTP richiede l'uso di quattro metodi fondamentali: GET, POST, PUT e DELETE. Ciascun metodo deve essere usato esplicitamente e mappa una delle azioni fondamentali RETRIEVE DATA, CREATE RESOURCE, UPDATE RESOURCE e DELETE RESOURCE.

Idempotenza

Alcuni metodi HTTP devono essere idempotenti. Idempotente significa che l'esecuzione dello stesso metodo con gli stessi parametri deve restituire sempre lo stesso risultato. Affinché ciò funzioni, il metodo in questione non può causare alcuna modifica sul server che possa far sì che venga restituito un risultato diverso per la stessa richiesta. In pratica, una richiesta idempotente non deve modificare i dati del server.

GET, POST, PUT, DELETE

Utilizzati per recuperare una risorsa o informazioni sulla risorsa. Sebbene la maggior parte delle implementazioni di HTTP elaborino parametri con una richiesta GET per modificare o creare risorse, tale azione non sarebbe conforme a un'implementazione RESTful. Le richieste GET devono essere idempotenti.

Una richiesta POST crea nuovi dati su un server. Per definizione, una richiesta POST NON è idempotente. A ogni esecuzione, una richiesta POST creerebbe altri dati.

Analogamente a una richiesta POST, una richiesta PUT modifica i dati esistenti. Ad esempio, la modifica del cognome di un utente esistente. Le richieste PUT non sono intuitivamente idempotenti. Sebbene una richiesta PUT modifichi i dati, lo fa ogni volta nello stesso modo. Pertanto, l'esecuzione di una richiesta PUT che modifica il cognome di un utente produrrà sempre lo stesso risultato, purché tutti i parametri siano coerenti.

Una richiesta DELETE rimuove o cancella i dati, come suggerisce il nome. Anche le richieste di cancellazione sono idempotenti, nel senso che eseguendone una ripetutamente si otterrà sempre lo stesso stato finale, con i dati in questione non più presenti sul server. Tuttavia, per il client può sembrare che ci sia una differenza, in quanto una volta che una risorsa è stata cancellata, alla richiesta può essere risposto con un messaggio di errore, ad esempio file non trovato. Tuttavia, il metodo è ancora considerato idempotente, perché a prescindere dall'errore inviato durante la transazione, lo stato finale di tale richiesta è lo stesso della prima volta che è stata richiesta.

Avete bisogno di una soluzione di monitoraggio REST professionale?

PRTG Network Monitor è un software di monitoraggio di rete completo e tiene traccia dell'intera infrastruttura IT.

DOWNLOAD GRATUITO

Centinaia di migliaia di clienti in tutto il mondo amano Paessler PRTG

Storie di successo dei clienti


Cosa dicono di noi i nostri clienti

REST API

Requisiti di un'API RESTful

In un post sul suo blog, ormai abbandonato, Roy Fielding ha discusso i criteri che un'API deve soddisfare per essere considerata veramente RESTful. Costruendo la sua tesi pubblicata in precedenza, questo post descriveva gli stessi concetti dell'architettura REST come dovrebbero essere applicati alle API.

Un'API RESTful è quindi quella che utilizza SOLO l'architettura REST senza la necessità di documentazione o metodi aggiuntivi rispetto a quelli che si adattano al modello. Fielding ha fornito i seguenti punti per chiarire cosa rende un'API conforme a REST.

Indipendenza dal protocollo

Un'API veramente RESTful non dovrebbe dipendere da alcun protocollo e dovrebbe essere in grado di supportare qualsiasi protocollo che utilizzi URI per l'identificazione. Altrimenti, l'identificazione non è separata dall'interazione.

Supporto dei protocolli standardizzati

Una REST API non dovrebbe richiedere modifiche ai protocolli standardizzati, in particolare l'aggiunta di funzionalità extra. Quando è possibile, gli eventuali workaround richiesti devono essere definiti separatamente, con l'obiettivo di eliminarli del tutto una volta che non sono più necessari.

Non definisce risorse fisse

Uno spazio dei nomi del server deve essere indipendente dalla definizione e dai requisiti dell'API. In altre parole, l'API dovrebbe funzionare con qualsiasi server in grado di funzionare con REST, non solo con server conformi a una particolare specifica API.

Fonti

Scoprire di più
  • Solutions: REST API Monitoring
Visualizza le fonti dell'articolo
  • https://ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm
  • https://roy.gbiv.com/untangled/2008/rest-apis-must-be-hypertext-driven
  • https://en.wikipedia.org/wiki/REST
  • https://www.oreilly.com/library/view/restful-rails-development/9781491910849/
  • https://restfulapi.net/
  • http://exyus.com/articles/rest-the-short-version/
  • https://www.infoq.com/articles/subbu-allamaraju-rest/
PRTG Logo

Iniziate a monitorare con PRTG e scoprite come può rendere la vostra rete più affidabile e il vostro lavoro più semplice.

DOWNLOAD GRATUITO
PANORAMICA DI PRODOTTO

Prodotti

  • Paessler PRTG
    Paessler PRTGMonitora la tua intera infrastruttura IT
    • PRTG Network Monitor
    • PRTG Enterprise Monitor
    • PRTG Hosted Monitor
    • PRTG estensioni
      Estensioni per Paessler PRTGEstendere il monitoraggio a un nuovo livello
  • Icon Features
    FunzioniEsplora tutte le funzionalità di monitoraggio

Monitoraggio con PRTG

  • Monitoraggio di rete
  • Monitoraggio banda
  • Monitoraggio SNMP
  • Mappatura di rete
  • Monitoraggio Wi-Fi
  • Monitoraggio del server
  • Monitoraggio NetFlow
  • Server syslog

Link utili

  • Manuale PRTG
  • Knowledge Base
  • Storie di successo dei clienti
  • Chi è Paessler
  • Iscriviti alla newsletter
  • Feedback e roadmap PRTG

Contatto

Paessler GmbH
Thurn-und-Taxis-Str. 14, 
90411 Nuremberg, Germania

[email protected]

+49 911 93775-0

  • Contattaci
©2025 Paessler GmbHTermini e condizioniPolitica sulla privacyNote redazionaliSegnalare vulnerabilitàDownload e installazioneSitemap
Strumento di monitoraggio dei certificati SSL Strumento di monitoraggio dei certificati SSL Strumento di monitoraggio dei certificati SSL