클라우드플레어 페이지(Cloudflare)의 애플리케이션에서 잘못된 경로로 접근할 때 다른 페이지로 리다이렉션 되는 것을 방지하고, 404 에러 코드를 얻을 수 있도록 만드는 방법.
클라우드플레어 페이지에 404 페이지가 없을 때 발생하는 문제
클라우드플레어 페이지의 애플리케이션 내에서 잘못된 경로의 URL 주소로 http 통신을 시도할 경우 의도하지 않은 다른 페이지로의 리다이렉션을 경험할 수 있다. 관련된 설정을 건드린 기억이 없으니 아마도 이게 디폴트 반응인 것 같다.
그런데 더 문제가 될 수 있는 부분은 http 요청에 대한 결과 상태 코드가 200이라는 것이다. 정상이라는 소리가 되므로 코드 레벨에서 현 상황에 대한 별도의 처리를 구현하는데 어려움이 생긴다.
문제 해결 방법
이러한 문제를 해결하려면 클라우드플레어 페이지 애플리케이션에 대해 404 에러 페이지를 별도로 만들어 주면 된다. 파일명은 404.html로 지정한 뒤 루트 경로에 두고 배포하면 그만이다.
당연한 이야기지만 사용자가 404 에러 상황임을 알 수 있도록 추가된 404.html 페이지 내부도 적당히 채워주자.
참고로 404.html 파일을 루트에 두는 경우는 가장 일반적인 경우이며, 좀 더 세분화하여 404 상황을 컨트롤하고 싶다면 클라우드플레어 페이지 매뉴얼의 다음 부분을 참고하면 된다.
404.html 파일을 추가한 결과
앞서의 언급한 방법으로 조치를 취하고 난 뒤 안드로이드 클라이언트 앱에서 잘못된 URL 주소로 Jsoup.connect() 요청을 해봤다.
그 결과 HttpStatusException 예외가 발생했고, 상태 코드 또한 원하던 데로 404를 얻을 수 있었다. 이제 코드 레벨에서 해당 상태에 대한 후속 조치를 해주면 된다.