Skip to content

Commit bff9f2e

Browse files
fine traduzione
1 parent e7a7a6d commit bff9f2e

File tree

1 file changed

+41
-41
lines changed

1 file changed

+41
-41
lines changed

5-network/06-fetch-api/article.md

Lines changed: 41 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,15 @@
33

44
Arrivati fin qui, sappiamo un bel po' di cose su `fetch`.
55

6-
Guardiamo il resto dell'API, per approfindirne le potenzialità.
6+
Guardiamo il resto dell'API, per approfondirne le potenzialità.
77

88
```smart
9-
Nota bene: la maggioranza di queste opzioni viene usata raremente. Potresti saltare questo capitolo e comunque continuare ad usare bene `fetch`.
9+
Nota bene: la maggioranza di queste opzioni viene usata raramente. Potresti saltare questo capitolo e comunque continuare ad usare bene `fetch`.
1010
1111
Ma ancora una volta, è una cosa buona sapere cosa fa `fetch`, e inoltre se dovessero sorgere necessità, possiamo tornare e leggere i dettagli.
1212
```
1313

14-
Ecco la lista completa di tutte le opzioni possibili per `fetch` con i loro valorri predefiniti (valori alternativi nei commenti):
14+
Ecco la lista completa di tutte le opzioni possibili per `fetch` con i loro valori predefiniti (valori alternativi nei commenti):
1515

1616
```js
1717
let promise = fetch(url, {
@@ -107,13 +107,13 @@ Ecco una tabella con tutte le combinazioni:
107107
| `"strict-origin-when-cross-origin"` | full | origin | - |
108108
| `"unsafe-url"` | full | full | full |
109109

110-
Immaginiamo di avere un'are di amministrazione con una struttura URL che dovrebbe rimanere nascosta all'esterno del sito.
110+
Immaginiamo di avere un'area di amministrazione con una struttura URL che dovrebbe rimanere nascosta all'esterno del sito.
111111

112112
Se inviamo un `fetch`, per impostazione predefinita invierà sempre l'header `Referer` con l'url completo della nostra pagina (eccetto quando eseguiamo le chiamate da HTTPS ad HTTP, in cui non ci sarà `Referer`).
113113

114114
Ad esempio `Referer: https://javascript.info/admin/secret/paths`.
115115

116-
Se volessimo che gli altri siti conoscessero solamente la parte dell'origin, e non l'URL-path, possiamo impostare l'opzione:
116+
Se volessimo che gli altri siti conoscessero solamente la parte relativa all'origin, e non l'URL-path, potremmo impostare l'opzione:
117117

118118
```js
119119
fetch('https://another.com/page', {
@@ -124,7 +124,7 @@ fetch('https://another.com/page', {
124124

125125
Possiamo inserirlo in tutte le chiamate `fetch`, magari integrandolo dentro una libreria JavaScript del nostro progetto che effettuerebbe tutte le richieste usando `fetch`.
126126

127-
La differenza con il comportamente predefinito è che per richieste verso altri origin `fetch` invia solamente la parte origin dell'URL (ad esempio `https://javascript.info`, senza il percorso). Per richieste verso la nostra origin otteniamo ancora il `Referer` completo (utile forse a scopo di debugging).
127+
La differenza con il comportamento predefinito è che per richieste verso altri origin `fetch` invia solamente la parte origin dell'URL (ad esempio `https://javascript.info`, senza il percorso). Per richieste verso la nostra origin otteniamo ancora il `Referer` completo (utile forse a scopo di debugging).
128128

129129
```smart header="Referrer policy non serve solo per `fetch`"
130130
La referrer policy, descritta nelle [specifiche](https://w3c.github.io/webappsec-referrer-policy/), non coinvolge solo `fetch`, ma è più generico.
@@ -137,69 +137,69 @@ In particolare, è possibile impostare la policy predefinita per l'intera pagina
137137
L'opzione `mode` è una salvaguardia che previene richieste cross-origin occasionali:
138138
139139
- **`"cors"`** -- il comportamento predefinito, le richieste cross-origin sono permesse, come descritto in <info:fetch-crossorigin>,
140-
- **`"same-origin"`** -- le richeiste cross-origin sono vietate,
141-
- **`"no-cors"`** -- vengono permesse solamante richieste cross-origin sicure.
140+
- **`"same-origin"`** -- le richieste cross-origin sono vietate,
141+
- **`"no-cors"`** -- vengono permesse solamente richieste cross-origin sicure.
142142
143-
Questa opzione può essere utile quando l'URL per il `fetch` su terze parti, e vogliamo un "pulsante di spegnimento" per limitare le funzionalità cross-orgin.
143+
Questa opzione può essere utile quando l'URL per il `fetch` su terze parti, e vogliamo un "pulsante di spegnimento" per limitare le funzionalità cross-origin.
144144
145145
## credentials
146146
147147
L'opzione `credentials` specifica se `fetch` deve mandare i cookies e gli headers di HTTP-Authorization insieme alla richiesta.
148148
149-
- **`"same-origin"`** -- the default, don't send for cross-origin requests,
150-
- **`"include"`** -- always send, requires `Accept-Control-Allow-Credentials` from cross-origin server in order for JavaScript to access the response, that was covered in the chapter <info:fetch-crossorigin>,
151-
- **`"omit"`** -- never send, even for same-origin requests.
149+
- **`"same-origin"`** -- predefinito, non li invia per richieste cross-origin,
150+
- **`"include"`** -- li invia sempre, richiede `Accept-Control-Allow-Credentials` dal server cross-origin in modo tale da permettere a JavaScript di accedere alla riposta, l'argomento è stato trattato nel capitolo <info:fetch-crossorigin>,
151+
- **`"omit"`** -- non li invia in nessun caso, nemmeno per richieste same-origin.
152152
153153
## cache
154154
155-
By default, `fetch` requests make use of standard HTTP-caching. That is, it respects the `Expires` and `Cache-Control` headers, sends `If-Modified-Since` and so on. Just like regular HTTP-requests do.
155+
Di default, le richieste con `fetch` fanno uso di caching HTTP standard. In sostanza, tiene conto degli headers `Expires` e `Cache-Control`, invia `If-Modified-Since` e così via. Proprio come una regolare richiesta HTTP.
156156
157-
The `cache` options allows to ignore HTTP-cache or fine-tune its usage:
157+
L'opzione `cache` permette di ignorare la cache HTTP o regolare il suo utilizzo:
158158
159-
- **`"default"`** -- `fetch` uses standard HTTP-cache rules and headers,
160-
- **`"no-store"`** -- totally ignore HTTP-cache, this mode becomes the default if we set a header `If-Modified-Since`, `If-None-Match`, `If-Unmodified-Since`, `If-Match`, or `If-Range`,
161-
- **`"reload"`** -- don't take the result from HTTP-cache (if any), but populate the cache with the response (if the response headers permit this action),
162-
- **`"no-cache"`** -- create a conditional request if there is a cached response, and a normal request otherwise. Populate HTTP-cache with the response,
163-
- **`"force-cache"`** -- use a response from HTTP-cache, even if it's stale. If there's no response in HTTP-cache, make a regular HTTP-request, behave normally,
164-
- **`"only-if-cached"`** -- use a response from HTTP-cache, even if it's stale. If there's no response in HTTP-cache, then error. Only works when `mode` is `"same-origin"`.
159+
- **`"default"`** -- `fetch` utilizza le regole standard e gli headers HTTP-cache,
160+
- **`"no-store"`** -- ignora totalmente HTTP-cache, questa modalità diventa quella predefinita se impostiamo un header tra questi: `If-Modified-Since`, `If-None-Match`, `If-Unmodified-Since`, `If-Match`, o `If-Range`,
161+
- **`"reload"`** -- non considera il risultato da HTTP-cache (se presente), ma popola la cache con la risposta (se l'header di risposta lo permette),
162+
- **`"no-cache"`** -- crea una richiesta condizionale se c'è una risposta in cache, altrimenti una normale richiesta. Popola HTTP-cache con la risposta,
163+
- **`"force-cache"`** -- usa la risposta da HTTP-cache, anche se scaduta. Se non c'è contenuto di HTTP-cache, esegue una regolare HTTP-request, si comporta normalmente,
164+
- **`"only-if-cached"`** -- use la risposta di HTTP-cache, anche se è scaduta. Se non c'è risposta in HTTP-cache, va in errore. Funziona solo quando l'opzione `mode` è impostata su `"same-origin"`.
165165
166166
## redirect
167167
168-
Normally, `fetch` transparently follows HTTP-redirects, like 301, 302 etc.
168+
Normalmente, `fetch` segue in maniera trasparente i redirect HTTP, come 301, 302 etc.
169169
170-
The `redirect` option allows to change that:
170+
L'opzione `redirect` ci permette di cambiare questo comportamento:
171171
172-
- **`"follow"`** -- the default, follow HTTP-redirects,
173-
- **`"error"`** -- error in case of HTTP-redirect,
174-
- **`"manual"`** -- don't follow HTTP-redirect, but `response.url` will be the new URL, and `response.redirected` will be `true`, so that we can perform the redirect manually to the new URL (if needed).
172+
- **`"follow"`** -- il predefinito, segue gli HTTP-redirects,
173+
- **`"error"`** -- va in errore in caso di HTTP-redirect,
174+
- **`"manual"`** -- non segue gli HTTP-redirect, ma `response.url` sarà il nuovo URL, e `response.redirected` sarà `true`, cosicché potremo eseguire il redirect manualmente al nuovo URL (se necessario).
175175
176176
## integrity
177177
178-
The `integrity` option allows to check if the response matches the known-ahead checksum.
178+
L'opzione `integrity` permette di controllare se la risposta combacia con il checksum noto a priori.
179179
180-
As described in the [specification](https://w3c.github.io/webappsec-subresource-integrity/), supported hash-functions are SHA-256, SHA-384, and SHA-512, there might be others depending on the browser.
180+
Come descritto nelle [specifiche](https://w3c.github.io/webappsec-subresource-integrity/), funzione hash supportate sono SHA-256, SHA-384, e SHA-512, potrebbero essercene altre a discrezione del browser.
181181
182-
For example, we're downloading a file, and we know that it's SHA-256 checksum is "abcdef" (a real checksum is longer, of course).
182+
Per esempio, stiamo scaricando un file, e sappiamo che il suo checksum SHA-256 è "abcdef" (un checksum reale è più lungo, chiaramente).
183183
184-
We can put it in the `integrity` option, like this:
184+
Possiamo inserirlo dentro l'opzione `integrity`:
185185
186186
```js
187187
fetch('http://site.com/file', {
188188
integrity: 'sha256-abcdef'
189189
});
190190
```
191191

192-
Then `fetch` will calculate SHA-256 on its own and compare it with our string. In case of a mismatch, an error is triggered.
192+
Quindi `fetch` calcolerà SHA-256 e lo confronterà con la nostra stringa. Nel caso non combaciassero, andrebbe in errore.
193193

194194
## keepalive
195195

196-
The `keepalive` option indicates that the request may "outlive" the webpage that initiated it.
196+
L'opzione `keepalive` indica che la richiesta può "sopravvivere" alla pagina che l'ha inizializzata.
197197

198-
For example, we gather statistics on how the current visitor uses our page (mouse clicks, page fragments he views), to analyze and improve the user experience.
198+
Ad esempio, raccogliamo statistiche su come il visitatore attuale usa la nostra pagina (click del mouse, sezioni della pagina che guarda), per analizzare e migliorare l'esperienza utente.
199199

200-
When the visitor leaves our page -- we'd like to save the data to our server.
200+
Quando il visitatore abbandona la nostra pagina -- ci piacerebbe salvare il dato nel nostro server.
201201

202-
We can use the `window.onunload` event for that:
202+
Per questo scopo, possiamo usare l'evento `window.onunload`:
203203

204204
```js run
205205
window.onunload = function() {
@@ -213,12 +213,12 @@ window.onunload = function() {
213213
};
214214
```
215215

216-
Normally, when a document is unloaded, all associated network requests are aborted. But the `keepalive` option tells the browser to perform the request in the background, even after it leaves the page. So this option is essential for our request to succeed.
216+
Normalmente, quando un documento viene chiuso, tutte le richieste di rete ad esso associate vengono annullate. Ma l'opzione `keepalive` dice al browser di eseguire la richiesta in background, anche dopo che la pagina viene abbandonata. Quindi questa opzione è essenziale per far si che la nostra richiesta vada a buon fine.
217217

218-
It has a few limitations:
218+
Ha qualche limitazione:
219219

220-
- We can't send megabytes: the body limit for `keepalive` requests is 64KB.
221-
- If we need to gather a lot of statistics about the visit, we should send it out regularly in packets, so that there won't be a lot left for the last `onunload` request.
222-
- This limit applies to all `keepalive` requests together. In other words, we can perform multiple `keepalive` requests in parallel, but the sum of their body lengths should not exceed 64KB.
223-
- We can't handle the server response if the document is unloaded. So in our example `fetch` will succeed due to `keepalive`, but subsequent functions won't work.
224-
- In most cases, such as sending out statistics, it's not a problem, as the server just accepts the data and usually sends an empty response to such requests.
220+
- Non possiamo inviare megabytes: le dimensioni massime del corpo per richieste `keepalive` sono di 64KB.
221+
- Se dobbiamo raccogliere un bel po' di statistiche sulle visite, dovremmo inviarle regolarmente in pacchetti, cosicché non ve ne sia una troppo grande per l'ultima richiesta `onunload`.
222+
- Questo limite si applica a tutte le richieste `keepalive` insieme. In altre parole, possiamo effettuare richieste `keepalive` multiple in parallelo, ma la somma dei corpi delle chiamate non devono superare i 64KB.
223+
- Non possiamo gestire la risposta del server se il documento viene chiuso. Quindi nel nostro esempio `fetch` andrà a buon fine grazie al `keepalive`, ma le funzioni conseguenti non verranno eseguite.
224+
- Nella maggior parte dei casi, come l'invio di statistiche, questo non è un problema, dal momento che il server accetta giusto le richieste inviando una risposta vuota.

0 commit comments

Comments
 (0)