HTTP header list parsing does not accept empty list elements
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 55/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Activo
- Stack tecnológico
- scala
- Área
- backend, networking
Línea de trabajo
Start with the list parsing rules used by HttpHeader.parse and compare them with Range’s existing handling of leading empty elements. Check downstream handling of unrecognized Connection headers, especially whether close is honored. Done when leading, interior, and trailing empty elements parse as required across list headers, the all-empty case is decided for required lists, and tests cover these cases.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
RFC 9110 §5.6.1 (previously RFC 7230 §7) says a recipient must parse and ignore a reasonable number of empty list elements. Most header list rules use oneOrMore(...).separatedBy(listSep) or the zeroOrMore equivalent, which does not allow them, so these headers are not parsed into their modeled types and stay RawHeaders:
| Header | Value |
|---|---|
Cache-Control |
no-store,, public |
Cache-Control |
, no-store, public |
Cache-Control |
no-store, public, |
Connection |
close,, foo |
Allow |
GET,, POST |
If-None-Match |
"a",, "b" |
Accept |
text/plain,, text/html |
These were found by parsing each value with HttpHeader.parse. They are a sample, and other headers using the same rules are likely to behave the same way. Range already tolerates leading empty elements with zeroOrMore(ws(',')).
Things to look at:
- Interior, leading and trailing empty elements all need handling, so this probably means changing each list rule or adding a shared helper, not only
listSep. - Decide how a list with no elements at all (for example
Cache-Control: ,) should behave for headers that require at least one. - Check what happens downstream when a header stays a
RawHeader, starting withConnection, since aclosethat is not recognised could change connection handling.
Follow-up to #1395, which fixes whitespace before the list separator but does not change how empty elements are handled.
- Lenguaje dominante
- Scala
- Estrellas
- 199
- Forks
- 57
- Merge medio
- 1 d 20 h
- PR fusionados (30 d)
- 54
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de apache/pekko-http
-
HTTP/2 client has no frame-type throttlePosiblemente ocupada @pjfanning la tomó hace 5 días. Abierto
Dificultad 4/5 3-5 días Aptitud para principiantes 57/100
apache/pekko-http#1393 ·
Los mantenedores suelen responder en 1 día
-
Support the dcz (dictionary-compressed zstd) content coding from RFC 9842Posiblemente ocupada @pjfanning la tomó hace 1 día. Abiertoenhancement
Dificultad 5/5 Más de una semana Aptitud para principiantes 18/100
apache/pekko-http#1392 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 45/100
apache/pekko-http#1273 ·
Los mantenedores suelen responder en 1 día
-
HTTP/2 client ALPN fallback needs a handshake-complete signal that the TLS stage does not emitAbierto
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
apache/pekko-http#1249 ·
Los mantenedores suelen responder en 1 día
-
enhancement
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
apache/pekko-http#1248 ·
Los mantenedores suelen responder en 1 día
Todos los issues de apache/pekko-http
Issues similares
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 86/100
Los mantenedores suelen responder en 1 día
-
requires-triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 73/100
apache/datafusion-comet#7559 ·
Los mantenedores suelen responder en 2 días
-
bug
Dificultad 1/5 Menos de una hora Aptitud para principiantes 88/100
propensive/soundness#2438 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
ergoplatform/ergo#2918 ·
Los mantenedores suelen responder en 2 días
-
Coach photos should fit to coach widgetPosiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
lichess-org/lila#22440 ·
Los mantenedores suelen responder en 1 día