Content-Disposition, be permissive sans whitespace

Abierto
#7 4 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
3/5
Tiempo estimado
1-2 días
Aptitud para principiantes
25/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Estancado
Área
api

Línea de trabajo

No se nombra ningún archivo fuente, prueba ni punto de entrada. Empieza por localizar el análisis de Content-Disposition del servidor y compara el encabezado CLI que funciona con el encabezado de Pharo; estará terminado cuando se acepten ambas formas sin una respuesta 500, con cobertura para la variante sin espacios en blanco.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

As noted here, while writing a GUI client for Pharo I discovered the server is quite picky in requiring a whitespace following "form-data;" in the "Content-Disposition:" field.

After a couple of hours hunting various RFCs I couldn't find that requirement anywhere. While Pharo will be able to work around it, but this situation may impede others trying making a custom client, so consider being more permissive in the line structure.

Here is the pertinent line extracted from a Wireshark captures...

CLI generated the following which works fine...
Content-Disposition: form-data; name="files[]"; filename="myfile.txt"

Pharo generated the following and gets "500 INTERNAL SERVER ERROR"...
Content-Disposition: form-data;name="files[]";filename="myfile.txt"

A diff of the full requests plus library code change is here... https://www.diffchecker.com/ETIfCUzx
Note its actually only the first space-after-semicolon that it the problem.

Lenguaje dominante
Sin datos de lenguaje
Estrellas
0
Forks
4
Métricas de merge de PR
Sin PR fusionados en 30 d

Preparar el entorno

Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de exercism/backlog

Todos los issues de exercism/backlog

Issues similares

Más issues de Backend & API Design

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.