WEBVTT

1
00:00.260 --> 00:02.180
Salve sviluppatori e bentornati.

2
00:02.180 --> 00:08.240
In questo video parleremo della richiesta
HTTP e del protocollo HTTP Hypertext
Transfer Protocol.

3
00:08.240 --> 00:15.860
La richiesta è un messaggio inviato da un
client, in genere un browser web

4
00:15.860 --> 00:18.560
o un'applicazione, a un server web per
richiedere una risorsa o eseguire
un'azione.

5
00:18.560 --> 00:25.700
È un concetto fondamentale nello sviluppo
web e sta alla

6
00:25.700 --> 00:26.600
base dello scambio di dati tra client e
server.

7
00:26.600 --> 00:31.430
Cerchiamo di capire la richiesta HTTP e i
metodi HTTP.

8
00:31.430 --> 00:38.150
Abbiamo Gat per recuperare una singola o
più risorse, post per creare

9
00:38.180 --> 00:45.530
una nuova risorsa, patch per aggiornare
una risorsa e put per aggiornare

10
00:45.530 --> 00:46.160
una risorsa se esiste o crearne una nuova
se non esiste.

11
00:46.160 --> 00:48.230
Elimina per distruggere una risorsa.

12
00:48.230 --> 00:54.440
Sono inoltre disponibili molte altre
funzioni come patch, trace, opzioni,
connessione e altre ancora.

13
00:54.440 --> 00:56.540
Cominciamo con il Gat.

14
00:56.570 --> 01:04.790
Il metodo http gat viene utilizzato per
leggere o recuperare una rappresentazione
di una risorsa nel percorso sicuro.

15
01:04.820 --> 01:14.330
Get restituisce una rappresentazione in
XML o JSON e un codice di risposta HTTP di
200 se è corretto.

16
01:14.330 --> 01:20.120
Quindi Get richiede una rappresentazione
della risorsa specificata e Get richiede.

17
01:20.120 --> 01:26.990
Deve solo recuperare i dati e non deve
avere alcun altro effetto sul server.

18
01:26.990 --> 01:33.860
In caso di errore, il più delle volte
viene restituito un 404 not found o un 400
bad requests.

19
01:33.890 --> 01:36.950
Più avanti parleremo dei codici.

20
01:36.950 --> 01:38.690
Cerchiamo di capire l'ottenimento.

21
01:38.720 --> 01:46.820
Un client può utilizzare il metodo Get per
recuperare informazioni

22
01:46.820 --> 01:47.660
su un prodotto specifico da un sito web di
e-commerce.

23
01:47.660 --> 01:55.850
Il client può inviare una richiesta Get al
server con l'identificativo

24
01:55.880 --> 01:57.020
del prodotto nell'URL, ad esempio uno,
due, tre, quattro, cinque.

25
01:57.020 --> 02:00.620
Quindi l'identificativo del prodotto o
l'ID del prodotto.

26
02:00.620 --> 02:04.130
Abbiamo bisogno di informazioni sul numero
12345.

27
02:04.160 --> 02:07.680
Lo abbiamo inviato con la richiesta Get al
server.

28
02:07.710 --> 02:10.170
È l'URL di un server Get.

29
02:10.200 --> 02:19.020
Il server risponderà con le informazioni
richieste, come il nome del prodotto, la
descrizione,

30
02:19.020 --> 02:26.370
il prezzo, l'immagine e altri dettagli in
un formato come JSON, XML o HTML.

31
02:26.400 --> 02:32.310
Ad esempio, la risposta potrebbe contenere
un oggetto JSON con le seguenti
informazioni.

32
02:32.310 --> 02:37.860
Questa risposta contiene l'ID del
prodotto, che è 123, quattro, cinque.

33
02:37.890 --> 02:41.910
Il nome del prodotto, il prodotto x e la
descrizione.

34
02:41.940 --> 02:47.010
Un prodotto di alta qualità e al prezzo di
9,99 dollari.

35
02:47.010 --> 02:56.340
Questa è la richiesta e questa è la
risposta che inviamo usando il metodo Get,
una richiesta per 12345.

36
02:56.370 --> 02:58.200
ID del prodotto.

37
02:58.200 --> 03:00.480
Abbiamo bisogno di informazioni su questo
prodotto.

38
03:00.480 --> 03:06.480
La risposta sarà sotto forma di un file
JSON e di un oggetto JSON.

39
03:06.480 --> 03:12.810
Il verbo post post Boost viene utilizzato
più spesso per creare nuove risorse.

40
03:12.810 --> 03:22.200
In particolare, si usa per creare risorse
subordinate che sono

41
03:22.200 --> 03:23.100
subordinate a qualche altra risorsa o a
qualche genitore.

42
03:23.130 --> 03:30.240
In caso di creazione riuscita, restituirà
201, restituendo un'intestazione della
posizione con

43
03:30.240 --> 03:33.720
un collegamento alle risorse appena create
con lo stato HTTP 201.

44
03:33.750 --> 03:37.350
Più avanti parleremo dei codici di stato.

45
03:37.350 --> 03:44.940
Ad esempio, in un'API a riposo, il metodo
post è tipicamente utilizzato per

46
03:44.940 --> 03:47.400
creare una nuova risorsa, come un nuovo
prodotto nel sito web di e-commerce.

47
03:47.430 --> 03:54.630
Per usare il metodo post, occorre fare una
richiesta Post

48
03:54.630 --> 03:56.370
all'endpoint dell'API che corrisponde alla
risorsa che si vuole creare.

49
03:56.400 --> 04:05.310
L'endpoint è tipicamente specificato nella
documentazione dell'API ed è una

50
04:05.310 --> 04:08.280
combinazione dell'URL di base dell'API e
del percorso della risorsa.

51
04:08.310 --> 04:12.780
Ad esempio, qui abbiamo example.com slash
products.

52
04:12.810 --> 04:15.480
Slash 12346.

53
04:15.480 --> 04:27.180
Poiché abbiamo usato il metodo post per
aggiungere un nuovo prodotto chiamato new
product con

54
04:27.180 --> 04:35.670
un prezzo di $19,99 e una descrizione per
questo prodotto, un prodotto nuovo di

55
04:35.670 --> 04:38.550
zecca, lo inserirà alla seguente estremità
.12346, che rappresenta l'ID del prodotto
appena creato.

56
04:38.550 --> 04:45.420
Nella richiesta, è necessario includere i
dati che si desidera inviare al server

57
04:45.450 --> 04:48.840
nel corpo della richiesta, in genere in un
formato come JSON o XML.

58
04:48.870 --> 04:55.530
Il server elaborerà quindi la richiesta e
creerà la nuova risorsa, rispondendo con

59
04:55.530 --> 04:59.790
un messaggio di successo o di errore e con
tutti i meta-dati pertinenti.

60
04:59.790 --> 05:02.430
Viene utilizzato per aggiornare le
funzionalità.

61
05:02.430 --> 05:08.940
Tuttavia, Put può anche essere usato per
creare una risorsa nel caso in

62
05:08.940 --> 05:11.640
cui l'ID della risorsa sia scelto dal
client invece che dal server.

63
05:11.640 --> 05:20.520
In altre parole, se il put è un URI che
contiene il valore di non-existence, l'ID
della risorsa all'atto dell'aggiornamento
con

64
05:20.520 --> 05:27.810
successo restituirà il codice 200, mentre
se si usa il put per la creazione si
restituisce lo stato HTTP a uno.

65
05:27.840 --> 05:34.800
Quando la creazione ha successo, put non è
un'operazione sicura, ma è una patch
idempotente.

66
05:34.800 --> 05:37.770
Viene utilizzato per modificare le
capacità.

67
05:37.770 --> 05:44.370
La richiesta di patch deve contenere solo
le modifiche alla risorsa, non la risorsa
completa.

68
05:44.370 --> 05:53.220
Assomiglia a put, ma il corpo contiene un
insieme di istruzioni che descrivono come

69
05:53.220 --> 05:57.990
una risorsa attualmente residente sul
server debba essere modificata per
produrre una nuova versione.

70
05:57.990 --> 06:04.950
Ciò significa che il corpo della patch non
deve essere solo

71
06:04.980 --> 06:05.730
una parte modificata della risorsa, ma una
sorta di patch.

72
06:06.060 --> 06:12.870
Linguaggi come JSON patch o XML patch e
patch non sono né sicuri né idempotenti.

73
06:12.870 --> 06:23.950
Che cos'è l'idempotenza e l'idempotenza è
un metodo HTTP idempotente è un

74
06:23.950 --> 06:27.730
metodo HTTP che può essere chiamato più
volte senza risultati diversi.

75
06:27.760 --> 06:30.310
Prestate attenzione a questa definizione.

76
06:30.310 --> 06:40.630
Un metodo HTTP idempotente è un metodo
HTTP che può essere richiamato più volte
senza ottenere risultati diversi.

77
06:40.630 --> 06:45.970
Non dovrebbe essere importante se il
metodo viene chiamato una sola volta o
dieci volte.

78
06:46.000 --> 06:48.250
Abbiamo questo esempio qui.

79
06:48.280 --> 06:49.960
A è uguale a quattro.

80
06:49.990 --> 06:52.960
È l'idempotenza come valore finale.

81
06:52.990 --> 07:00.310
A uguale a quattro non cambierebbe dopo
averlo eseguito più volte ovunque A più
più più.

82
07:00.310 --> 07:08.260
Non è idempotente, perché il valore finale
dipende dal

83
07:08.260 --> 07:09.700
numero di volte in cui l'istruzione viene
eseguita.

84
07:09.700 --> 07:11.740
Il risultato dovrebbe essere lo stesso.

85
07:11.740 --> 07:16.630
Questo vale solo per i risultati, non per
la risorsa stessa.

86
07:16.690 --> 07:18.610
Codice di risposta HTTP.

87
07:18.610 --> 07:21.490
Siamo interessati ai codici di risposta
HTTP.

88
07:21.490 --> 07:26.020
La riga di stato è la prima riga del
messaggio di risposta.

89
07:26.020 --> 07:33.160
Contiene un codice di stato, un numero di
tre cifre che indica il risultato della
richiesta.

90
07:33.160 --> 07:40.090
Se restituisce 200, lo stato HTTP sarà di
successo.

91
07:40.090 --> 07:47.050
301 reindirizzamento permanente 302
reindirizzamento temporaneo 304 non
modificato.

92
07:47.050 --> 07:49.570
Qui abbiamo la sezione degli errori.

93
07:49.570 --> 07:54.940
Se viene visualizzato un qualsiasi codice
di stato che inizia con quattro, significa
che c'è un errore.

94
07:54.940 --> 07:58.690
Errore autorizzato per uno, 4 o 3.

95
07:58.690 --> 08:01.780
Vietato 404 non trovato 405.

96
08:01.780 --> 08:04.390
Metodo non consentito qui cinque.

97
08:04.390 --> 08:07.060
Sezione 501 non attuata.

98
08:07.060 --> 08:15.010
Bad gateway 502 503 servizio non
disponibile e per 504 gateway time out.

99
08:15.010 --> 08:18.520
Questi sono i codici di stato HTTP.


