tutorial traduccion telefono servidor org jetty jetty-9

traduccion - jetty vs tomcat



Advertencia Jetty-9: malMensaje: 400 caracteres ilegales (4)

Estoy usando jetty-9.2.2 con CometD-3.0.1. Estoy viendo la siguiente advertencia en mi configuración. Viene ~ 4,5 veces en un día .:

2014-08-28 08:50:53.712:WARN:oejh.HttpParser:qtp607635164-15194: badMessage: 400 Illegal character for HttpChannelOverHttp@5946f125{r=1,a=IDLE,uri=-}

No hay detalles que puedan ser depurados desde el mensaje de advertencia. Ya he registrado una solicitud https://bugs.eclipse.org/bugs/show_bug.cgi?id=443049 para proporcionar una advertencia detallada.

Mientras tanto quiero saber qué está causando esta advertencia. ¿Puedo ignorar esto o algunos mensajes se pierden debido a esto?


Este error puede ser causado, como lo fue para mí, por un pequeño error tonto.

Al realizar pruebas en mi instancia de localhost Jetty, recibí un mensaje de 400 caracteres ilegales muy similar. Entonces me di cuenta por qué. Simplemente había asumido que la dirección de la solicitud en mi embarcadero local era:

https://localhost:8080

mientras que la dirección correcta no estaba segura:

http://localhost:8080

No hay problemas después de eso.


Jetty es cauteloso acerca de los mensajes de error detallados que incluyen datos enviados por el usuario, ya que pueden ser parte de un ataque, incluso si se hace eco solo en un terminal.

Sin embargo, podemos hacerlo mejor y registrar algunos datos desinfectados. Actuando sobre la bugzilla.


Tuve el mismo error, luego descubrí que fue causado por el uso de https en la URL en lugar de http. (Mi aplicación solo admite http en ese momento). Después de cambiar https a http, se resolvió.


Actualización de mayo de 2017

Para usuarios de Jetty 9.3+, es posible que vea un mensaje de registro que aclare este código de respuesta.

Consulte el error de análisis de encabezado después de la actualización a Jetty 9.3 para obtener más información.

Respuesta original

El Bad Message: 400 Illegal Character pueden ocurrir durante el análisis de una solicitud HTTP incorrecta.

Esa es la respuesta de error HTTP que el cliente ve.

Algunas (no todas) situaciones en las que puede ocurrir.

  • La EOL no es "/ r / n" (CR + LF) (requisito de especificación de HTTP)
  • El token de método HTTP no se reconoce o tiene espacios en blanco no válidos después de él
  • La versión HTTP no es reconocida o tiene caracteres inválidos
  • El nombre del encabezado HTTP no sigue las especificaciones
  • El valor del encabezado HTTP no sigue las especificaciones

Este mensaje es común en servidores públicos (con acceso a Internet).

Tienes malas solicitudes de HTTP. ¿Por qué?

  • Un cliente HTTP legítimo tiene un error
  • Un cliente HTTP legítimo no sigue la especificación HTTP
  • Un cliente no HTTP intentó conectarse a su servidor (como intentar usar HTTP no cifrado en un puerto SSL / TLS / HTTPS, o incluso algo tan extraño como un cliente de correo electrónico SMTP / IMAP que intenta hablar con su puerto HTTP)
  • Un cliente malicioso está intentando sondear su sistema para detectar debilidades