HttpStatu
의 텍스트를 Tomcat 7에서 어떻게 대체 할 수 있습니까?HTTP 응답 상태 텍스트 덮어 쓰기
저는 HttpServletResponse.sendError(401, "Invalid username or Password")
을 사용하고 있습니다. 그러나 클라이언트의 응답 상태를 보면 401 Unauthorized
입니다.
재정의 할 방법이 있습니까?
HttpStatu
의 텍스트를 Tomcat 7에서 어떻게 대체 할 수 있습니까?HTTP 응답 상태 텍스트 덮어 쓰기
저는 HttpServletResponse.sendError(401, "Invalid username or Password")
을 사용하고 있습니다. 그러나 클라이언트의 응답 상태를 보면 401 Unauthorized
입니다.
재정의 할 방법이 있습니까?
편집 catalina.properties
몸에 또는 응답 헤더에 기록 할 경우 RFC 2616에 따라 설정되며 없다 내가 할 다음 때, 내 dev에 환경에서 해당 세트로
org.apache.coyote.USE_CUSTOM_STATUS_MSG_IN_HEADER=true
: 속성을 추가
response.sendError(HttpServletResponse.SC_BAD_REQUEST,
"A very very very bad request");
을 나는 참조 :
HTTP/1.1 400 A very very very bad request
Server: Apache-Coyote/1.1
Content-Type: text/html;charset=utf-8
Content-Language: en
Content-Length: 1024
Date: Fri, 20 Dec 2013 11:09:54 GMT
Connection: close
또한 here 및
없음 - 응답 코드가 당신은 (는 API 클라이언트) 사용자에게 메시지를 전달하거나
사실, 응답 코드는 RFC에 지정되어 있지만 "Reason Phrase"(질문의 내용)는 사용자가 좋아할 수 있습니다. ([rfc2616 섹션 6.1.1] 섹션 참조 (http://tools.ietf.org/html/rfc2616#section-6.1.1) "여기에 나열된 이유 구문은 권장 사항 일 뿐이며, 다음과 같은 지역 동등 물로 대체 될 수 있습니다. 프로토콜에 영향을줍니다. " –
Tomcat이 더 이상USE_CUSTOM_STATUS_MSG_IN_HEADER
속성을 지원 here을 논의했다. 8.5.0에서
변경 내역 :
RFC 클라이언트가 HTTP에 이유 문구를 무시해야 7230 주/1.1 응답 메시지. 이유 구문은 선택 사항이므로 Tomcat no 은 더 오래 전송합니다. 결과적으로 시스템 속성 org.apache.coyote.USE_CUSTOM_STATUS_MSG_IN_HEADER은 (는) 으로 더 이상 사용되지 않으며 제거되었습니다. (마르크트)
RFC 7230, 하이퍼 텍스트 전송 프로토콜 (HTTP/1.1) : 메시지 구문 및 라우팅 년 6 월 2014 년 Section 3.1.2 :
이유 문구 요소의 유일한 목적을 위해 존재숫자 상태 코드와 관련된 텍스트 설명을 제공합니다. 대화 형 텍스트 클라이언트에서 자주 사용되는 이전 인터넷 응용 프로그램 프로토콜을 준수하지 않았습니다. 클라이언트는 이유문 콘텐츠을 무시해야합니다 (SHOULD).
[ "사용자에게 친숙한 오류 페이지를 표시하는 방법 ...]"(http://stackoverflow.com/questions/2748220/how-to-show-user-friendly-error-page- 대신 tomcat-log-with-stack-trace-in-b)를 사용합니다. – dcsohl
@dcsohl 중복되지 않습니다. 이 질문은 HTTP 헤더에 관한 것입니다. 다른 하나는 사용자 정의 오류 페이지에 관한 것입니다. – Javier