2012-05-24 18 views
8

Ya he buscado en Google que 505 es "Versión HTTP no compatible", pero todavía no puedo resolver mi problema. Tengo una aplicación web con Tomcat, del lado del servidor con certificado autofirmado para habilitar HTTPS, sin autenticar al cliente. El cliente autenticará el certificado del servidor. He analizado el paquete wireshark, parece que el handshark SSL es correcto. Pero cuando miro Tomcat localhost_access_log, habrá un error 505 para la solicitud del cliente, y el servidor no recibirá la solicitud del cliente. ¿Podría ayudarnos a dar alguna pista sobre esto?Código de error HTTP 505

172.25.21.113 - - [24/May/2012:16:28:26 +0800] "GET /updserver/update?action=signature_update&device_type=NGN&service_type=KAV&engine_ver=1.00&sig_ver=4.123&mac=0019CB72736E HTTP/1.1 " 505 - 
+0

¿Hay realmente un espacio después de "HTTP/1.1" en la línea de solicitud? Me pregunto si ese podría ser el problema. –

+0

Problema relacionado: [java.io.IOException: El servidor devuelve el código de respuesta HTTP 505] (http://stackoverflow.com/questions/3625659/java-io-ioexception-server-returns-http-response-code-505) – sleske

Respuesta

13

Si usted hace una petición a Tomcat con espacios en blanco después de la versión HTTP (como en el ejemplo), Tomcat responderá con 505 de error. Confirmado en Tomcat 7.0.27.

RFC 2616 (HTTP 1.1) dice que la versión HTTP se compone de "HTTP /" + dígito + "." dígito. La línea de solicitud finaliza con "" + HTTP-Version + CRLF, lo que significa que no se permite el espacio en blanco.

Referencias:

+0

sí, hay un personaje de espacio al final de la línea. No puedo controlar al cliente, pero funciona bien con Tomcat5.5. ¿Cómo lidiar con tal caso? –

+0

Parece que nuestro equipo hackeado Tomcat5.5 antes, así que funcionó, tal vez tengo que hackear Tomcat7 nuevamente para solucionar este problema. Muchas gracias Christopher Schultz ~ –

1

Claramente no es la respuesta para el PO, pero me encontré con este mensaje de error esta noche al intentar depurar un servidor SOLR.

Mi problema no era un espacio extra después de la versión HTTP.

mi aplicación cliente estaba registrando la URL incorrecta, que copiaba alegremente & pegada en una conexión telnet al puerto http del tomcat SOLR. Mi mensaje de registro mostró la URL sin% 20-codificación de un espacio en la URL. Recibí el error de la versión HTTP incorrecta, presumiblemente porque estaba interpretando todo después del espacio en la URL como mi versión HTTP.

gracias a http://java.dzone.com/news/solr-tomcat-and-http11-505 por la pista.

Cuestiones relacionadas