2012-05-24 35 views
8

Tôi đã googled rằng 505 là "Phiên bản HTTP không được hỗ trợ", nhưng vẫn không thể tìm ra vấn đề của tôi. Tôi có một ứng dụng web với Tomcat, phía máy chủ có chứng chỉ tự ký để bật HTTPS mà không cần xác thực ứng dụng khách. Máy khách sẽ xác thực chứng chỉ máy chủ. Tôi đã phân tích gói wireshark, có vẻ như handshark SSL là chính xác. Nhưng khi tôi kiểm tra Tomcat localhost_access_log, sẽ có một lỗi 505 cho yêu cầu của khách hàng, còn phía máy chủ không nhận được yêu cầu của máy khách. Bạn có thể giúp đưa ra một số gợi ý về điều này không?Mã lỗi 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

Có thực sự không gian sau "HTTP/1.1" trong dòng yêu cầu không? Tôi tự hỏi nếu đó có thể là vấn đề. –

+0

Vấn đề liên quan: [java.io.IOException: Máy chủ trả về mã phản hồi HTTP 505] (http://stackoverflow.com/questions/3625659/java-io-ioexception-server-returns-http-response-code-505) – sleske

Trả lời

13

Nếu bạn yêu cầu Tomcat với khoảng trống cuối sau phiên bản HTTP (như trong ví dụ của bạn), Tomcat sẽ trả lời với lỗi 505. Xác nhận trên Tomcat 7.0.27.

RFC 2616 (HTTP 1.1) cho biết rằng phiên bản HTTP được tạo thành từ "HTTP /" + chữ số + "." chữ số. Dòng yêu cầu kết thúc bằng "" + CRLF phiên bản HTTP + có nghĩa là không cho phép khoảng trắng.

Tài liệu tham khảo:

+0

vâng, có một ký tự không gian ở cuối dòng. Tôi không thể kiểm soát khách hàng, nhưng nó hoạt động tốt với Tomcat5.5? Làm thế nào để đối phó với trường hợp như vậy? –

+0

Có vẻ như đội của chúng tôi đã tấn công Tomcat5.5 trước khi nó hoạt động, có lẽ tôi cần phải hack Tomcat7 lần nữa để khắc phục vấn đề này. Xin cảm ơn Christopher Schultz ~ –

1

Rõ ràng không phải là câu trả lời cho OP, nhưng tôi chạy vào thông báo lỗi này tối nay khi cố gắng gỡ lỗi máy chủ SOLR.

Sự cố của tôi không phải là khoảng trống thừa sau phiên bản HTTP.

ứng dụng khách của tôi đã ghi lại URL không hợp lệ, mà tôi đã sao chép một cách blithely & được dán vào kết nối telnet đến cổng http của SOLR tomcat. Thông báo tường trình của tôi hiển thị URL mà không đúng cách 20% mã hóa một không gian trong URL. Tôi gặp lỗi phiên bản HTTP không hợp lệ, có lẽ vì nó đã diễn giải mọi thứ sau không gian trong URL dưới dạng phiên bản HTTP của tôi.

nhờ http://java.dzone.com/news/solr-tomcat-and-http11-505 để biết gợi ý.

Các vấn đề liên quan