역시 이전과 마찬가지로 등록이 되지 않은 .kr 도메인, 예를 들어 http://jonjeanham.kr/ 같은 곳에 접속하면 연결이 안 되는 것이 아니라 특정 서버의 '가짜 오류 페이지'로 리다이렉트됩니다. 그런데 흥미롭게도, 이번에는 브라우저를 인식하여 다른 오류 페이지를 보여줍니다. 테스트해본 바로는 파이어폭스, 인터넷 익스플로러, 사파리 등을 지원하네요.
주소창을 주목하세요.
그러나 안타깝게도, 오페라와 넷스케이프를 위한 오류 페이지는 준비되어 있지 않습니다. 그냥 인터넷 익스플로러 오류 페이지를 보여줍니다. 역시 점유율이 낮아서 그런 걸까요? 참 아쉬운 부분입니다.
HTTP 헤더를 살펴보니 'X-Powered-By: PHP/5.2.3'라는 문구가 적혀있는 것으로 보아 PHP를 이용하는 것 같습니다. 등록하지 않은 모든 도메인이 특정 서버로 연결되는 것이 여전히 이상하긴 하지만, 어쩔 수 없는 사정이 있나 보다 하고 생각할 수 있습니다.
하지만 흥미가 동하는 사실이 있는데, 과연 저 오류 페이지를 만드신 개발자 분들의 미션은 어떤 것일까요? 바로 서버가 살아있으면서도 죽어있는 듯 보이게 해야 하는 것입니다. 생각해보면 이것이 굉장히 어려운 목표라는 것을 알 수 있습니다.
IRC의 여러 분과 의논한 바로는, 저 미션을 이루기 위해서 시도해볼만한 방법에는 이런 것들이 있습니다.
1. 접근하자마자 http://127.0.0.1:12345/ 로 리다이렉트해버리기 - header('Location: http://127.0.0.1:12345/');
- 불가능합니다. 왜냐하면, 도메인이 없을 때 나오는 메시지는 '서버를 찾을 수 없음'인데, 위와 같이 하면 '연결 실패'라는 메시지가 뜨거든요.
2. http://127.0.0.1:12345/ 를 iframe으로 꽉 채우기 - <iframe src="http://localhost:12312/" style="width: 100%; height: 100%;" />
- 1번과 같은 이유 때문에 불가능합니다.
3. <iframe src="http://blahblah.co.kr" />
- 이렇게 하면 확실히 '서버를 찾을 수 없음'이 나오기는 합니다. 하지만, 'jonjeanham.kr'이라는 도메인을 찾을 수 없다는 메시지 대신 'http://blahblah.co.kr'가 나오겠죠.
4. IE와 파이어폭스를 보면 C:\어쩌고\.dll 과 chrome:// 에 오류 페이지가 보관되어 있습니다. 이것을 이용합니다.
- 이 방법이 가장 그럴싸하긴 한데, 주소를 잘 몰라서 테스트를 못 해봤습니다.
와... 정말 생각하면 생각할수록 개발자의 고충이 느껴집니다. 간단한 미션이라고 생각했는데, 실제로는 현행 방식대로 브라우저별로 오류 페이지를 일일이 챙겨주지 않으면, 불가능에 가깝군요. 차선책(workaround)이긴 하지만 대체가 불가능한 방식인 것 같습니다.
Posted by 랜덤여신

