에러 모음집

406 ERROR : Not Acceptable

JUN0126 2023. 7. 19. 00:52

서비스를 운영하는데에 있어 간헐적으로 나오는 406 ERROR 가 발생하여 해당 에러에 대한 원인과 해결 방안에 대해 끄적여 보겠습니다.

406 ERROR 란 무엇인가?

클라이언트 에러 응답 코드로써 서버가 요청(Request)의 주도적인 콘텐츠 협상 헤더에 정의된 허용 가능한 값 목록과 일치하는 응답을 생성할 수 없으며, 서버가 기본 표현을 제공하지 않음을 나타냅니다.

 

⌘ 콘텐츠 협상 헤더란?

동일한 URI에서 리소스의 서로 다른 버전을 제공하기 위해 사용하는 매커니즘

사용자 에이전트가 사용자에게 제일 잘 맞는 것이 무엇인지 (언어, 이미지 포맷, 인코딩 등)를 명시할 수 있다.

Accept, Accept-Charset(UTF 탄생으로 폐기), Accept-Encoding,Accept-Language 를 정의하고 있습니다.

 

 

해결 방안

1. 문서에 따르면 Accept_Language에 선언되지 않은 언어가 브라우저에 나올 떄 406Error 가 나올 수 있다고 한다 이에 따라 Accept-Language를 나라별에 알맞게 설정하였다.

EX) Accept-Language: fr-CH, fr;q=0.9, en;q=0.8, de;q=0.7, *;q=0.5

2. 또다른 406 Error 은 Accept 설정이 application/json 으로 설정되어 있어서 다른 유형의 응답 값을 받아주지 못하는 현상에도 나온다고 한다 (근데 다 json 형태로 오는거 같은데;;) 그래서 모두 허용해주는 */* 으로 변경해주니 우선적으론 에러가 나지 않는거 같다

3. 또 다른 예외에서는 getter 미설정으로 인한 406 error 도 나온다고 한다.. 하지만 난 코틀린을써서 그런 이슈는 없는거 같다. 

 

참고 자료 : https://developer.mozilla.org/ko/docs/Web/HTTP/Status/406

 

'에러 모음집' 카테고리의 다른 글

SQL WHERE LIKE 연산자  (0) 2022.11.14
IntellJ Java version 맞추기  (0) 2021.12.29