"Sono stato bocciato a parecchi esami. Un mio amico invece, li ha passati tutti a pieni voti. Ora è ingegnere e lavora in Microsoft. Io sono il proprietario."  - Bill Gates  •  "Se riesco a fare qualcosa in 10 minuti, è perché ho passato anni a studiarlo."  - Bill Gates  •  "Il vostro lavoro riempirà gran parte della vostra vita, e l'unico modo per essere veramente soddisfatti è fare ciò che ritenete sia un grande lavoro."  - Steve Jobs  •  "Siate affamati. Siate folli."  - Steve Jobs  •  

cinque 

ZERO

{Node.js} Cos’è un server e cosa sono le richieste http

home / javascript /

Lucio Paolo Asciolla

Senior Full Stack Developer

Cos'è un server?

Un server, computer di rete, è un dispositivo con al suo interno un programma, nel nostro caso Node.js, che gestisce ed elabora le richieste da parte di un client. 
Nel World Wide Web , ad esempio, un web-server è un computer, remoto sempre collegato in rete, che utilizza il protocollo HTTP per ricevere ed inviare informazioni, file o pagine web ad un altro computer.

In Node.js abbiamo già avuto modo di esaminare il modulo built-in 'http', per la creazione di un web-server ed abbiamo già visto come metterlo in ascolto.
Tenerlo in ascolto significa mantenerlo sempre collegato, in rete, in attesa delle richieste.

Cosa sono le richieste HTTP?

Le richieste sono inviate dai Client attraverso i browser es. Chrome, Safari, FireFox, Edge ecc.
Per le richieste da parte dei Client viene utilizzato il PROTOCOLLO HTTP per comunicare con i Server.

Questo protocollo serve a regolare:

  • come i client devono formulare le proprie richieste
  • come deve rispondere il server.

Tipo di richieste

Le richieste HTTP possono essere effettuate con diversi metodi:

GETrichiede di ricevere informazioni/dati
POSTrichiede di inviare informazioni/dati
PUTrichiede di modificare informazioni/dati
DELETErichiede di cancellare informazioni/dati

Tutte le richieste al server hanno uno stato-delle-richieste, uno stato-delle-risposte ed un header.

Stato delle richieste

Le richieste che inviamo al server hanno uno status ed indicano lo stato della richiesta:

0richiesta non inizializzata
1richiesta abilitata
2il server ha ricevuto la richiesta
3il server sta processando la richiesta
4il server ha finito di processare la richiesta ed ha ritornato la risposta

Stato delle risposte

Il server può restituire i seguenti valori ed indicano gli esiti ovvero “come” il server ha risposto:

200il server ha trovato quanto richiesto e lo sta inviando o ha fatto quanto richiesto ed ha concluso
404il server non ha trovato quello che cercavamo

Per quanto concerne le risposte del server abbiamo un elenco molto più ambio ma per il momento ci concentreremo su quelle essenziali.

Headers

Gli headers HTTP non sono altro che l’insieme delle informazioni prodotte dall’interazione tra il browser del client, che invia delle richieste, ed il server, che le raccoglie e invia delle risorse in risposta ad esse.

Alcuni esempi di informazioni contenute in un header HTTP:

  • HTTP/1.1 fa riferimento alla versione del protocollo HTTP utilizzata.
  • 200 OK è il CODICE DI STATO, che informa sull’avvenuto ricevimento, sull’elaborazione e l’accettazione della richiesta da parte del server.
  • Content-Encoding Content-Type forniscono informazioni in merito alla tipologia del file.
  • Age, Cache-Control, Expires, Vary X-Cache si riferiscono al caching (salvataggio nella memoria temporanea) del file.
  • Etag Last-Modified indicano la versione del file inviato.
  • Server comunica il software utilizzato dal web server.
  • Content-Lenght corrisponde alla dimensione del file in bytes.

Esistono due tipi di HeaderHTTP.
Uno per le richieste ed uno per le risposte:

Request Header HTTPinformazioni relative e contenute nella richieste al server
Response Header HTTPinformazioni relative e contenute nella risposta dal server