Express returns a non-compliant HTTP/206 response when gzip is enabled
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 35/100
- Tipo di issue
- Bug
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Ferma
- Stack tecnologico
- javascript, node.js
- Ambito
- backend
Direzione di ricerca
Inizia con la riproduzione collegata di nodejs-express-range-headers e RFC7233, quindi traccia il modo in cui il middleware di compressione gestisce le richieste Range e produce lo stato e gli header della risposta. Il lavoro è completato quando le risposte compresse non restituiscono più valori HTTP/206 Content-Range errati; verifica il comportamento con un test di regressione mirato, se il progetto ne fornisce uno.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
CDNs (mostly Azure Front Door) is using HTTP Range Requests to retrieve data from Origin when caching enabled.
Express should ignore Range: requests header when gzip compression is in place since Express is unable to respond a HTTP/206 compliant answer with the right computed Content-Range header in the response that is taking the compressed data length into account.
A fair compliant workaround is to, in that very case of compression where computing Content-Range values would be too complex, ignore client's Range: header in the request, and answer the whole compressed content in a HTTP/200 response.
Handling Range: headers is optional so answering a HTTP/200 is OK.
Answering a HTTP/206 with wrong Content-Range values is notOK.
Meanwhile another workaround is to disable compression and make CDN handle it, or disable CDN caching, however it would be fair to expect Express to return a compliant HTTP response in any case.
References:
Details and highlighting Express behavior:
https://github.com/DanielLarsenNZ/nodejs-express-range-headers
- Lingua principale
- JavaScript
- Stelle
- 2.8k
- Fork
- 257
- Merge medio
- 3g 15h
- PR unite (30g)
- 3
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di expressjs/compression
-
bug
Difficoltà 3/5 1-2 giorni Idoneità per principianti 62/100
expressjs/compression#254 · 2 commenti ·
-
Compression v2Forse di nuovo libera @UlisesGascon l’ha presa 508 giorni fa e non c’è nessuna pull request aperta. Aperta
expressjs/compression#234 · 1 reazione · 2 assegnatari ·
-
awaiting more info bug
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
expressjs/compression#220 · 11 commenti · 2 reazioni ·
-
Support zstdApertaenhancement future
Difficoltà 4/5 3-5 giorni Idoneità per principianti 30/100
expressjs/compression#217 · 4 commenti · 11 reazioni ·
-
bug
Difficoltà 3/5 1-2 giorni Idoneità per principianti 45/100
expressjs/compression#135 · 2 commenti ·
Tutte le issue di expressjs/compression
Issue simili
-
[Feature]:Apertaenhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
-
automated issue report
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
lirantal/discoprint#36 ·
I maintainer di solito rispondono entro 1 giorno
-
accepting PR Content:HTML
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 88/100
mdn/content#45988 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
pnpm/pnpm#16635 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
txn2/mcp-data-platform#2030 ·
I maintainer di solito rispondono entro 1 giorno