이해할 수 없는 cafe24 64bit 광호스팅…

정말 황당한 경험을 했다. 모든 페이지를 utf-8로 만들었고, .htaccess를 사용해서 기본 charset도 utf-8이라고 명시를 해줬다. ajax 로 한글을 보내고, 결과를 받아왔는데 이해할 수 없는 오류가 발생하기 시작…

처음엔 브라우져 간의 javascript 호환성 문제라고 생각을 했고, 여러가지로 테스트를 시작했다. 전제가 틀렸는데 답을 쉽게 찾을 리가 없지! 결국 세 시간 가까이 소비를 한 끝에 문제점을 찾아냈다.

원래 rfc에 따르면 uri는 utf-8로 보내는 것이 맞다.더 자세한 내용을 알고 싶다면 내가 예전에 써둔 ‘웹서비스와 utf-8‘을 참고해보라 만약 utf-8로 보내지 않을거라면 urlencodingurlencoding을 하게 되면 2바이트권 문자들은 %AC%A0 식으로 변환된다.을 해줘야한다.

하지만 cafe24 64bit 광호스팅에서는 위에 정의된 것과 상반된 짓을 하고 있다. utf-8로 보낸 uri를 euc-kr로 변환해버리고 있는 것! 일관되게 이렇게 동작하면 또 일이 쉬워졌을텐데 IE에서 요청을 하는 경우에만 이런 식으로 동작하고 사파리 등에서는 별다른 문제를 일으키지 않는 것!!!

원래 이런 식의 동작은 아파치의 mod_url 이란 모듈을 사용하는데 ‘CheckURL off’ 로 문제를 해결할 수 없었던 걸 보면 이 모듈을 사용하는 것도 아닌 것 같다. 공통으로 include되는 파일에서 get으로 넘어온 모든 값에 대해 utf-8 validation을 수행하고, utf-8 validation을 통과하지 못한 값은 cp949 에서 utf-8로 변환해주는 방법을 통해 문제를 피해가야했다.

물론 IE에서 ‘URL을 항상 UTF-8로 보냄’을 꺼둔 채로 사용하는 불량사용자가 많은 이유로 저런 기능을 넣었는지도 모르겠다. 하지만 더 황당한 것은 저 문제가 ‘UTF-8 전용 서버’에서 발생했다는 것이다. ‘URL을 항상 UTF-8로 보냄’ 옵션은 항상 UTF-8로 보내지는 않겠다는 것이지 절대로 UTF-8로 보내지 않겠다는 말은 아니다.

저렴한 가격 때문에 여기저기 추천을 해왔는데, 막상 기술력은 없는 것 같다. apache, php 등도 모두 소스를 가져다가 수동으로 컴파일해서 쓰고 있고…이런 방법이 왜 안좋은지는 이 글을 읽어보자.

실망이다 cafe24…

덧: 나만 이런 일을 겪은 건 아닌가 보다.

Published by

4 thoughts on “이해할 수 없는 cafe24 64bit 광호스팅…”

    1. 연결해주신 글은 잘 읽었습니다. :)

      아마 ‘Firefox는 Percent Encoding은 하지만, UTF-8로 하는 것이 아니라, 실행되는 환경의 기본 인코딩 (예를 들어, 한국어 Windows라면 EUC-KR, 현대의 리눅스 환경이라면 UTF-8)으로 Percent Encoding을 한다. 반면에, Percent Encoding을 하는 부분에서도 두 브라우저는 차이가 난다. Firefox는 URI 전체를 Percent Encoding하지만, Internet Explorer 7은 ? 이후의 부분 즉 query 부분은 Percent Encoding하지않고 그대로 보낸다. 결국, 한글이 query에 포함되고, 이에 대한 인코딩을 EUC-KR로 가정하고 개발한 웹애플리케이션이 있다면, 리눅스에서 실행된 Firefox에서는 오동작할 거란 얘기다.’ 이 부분을 언급하신 것 같은데, 내용이 좀 모호하네요. IE7 에서는 Percent Encoding(URL Encoding)을 하지 않고 그대로 보낸다고 하는데, 이 그대로가 euc-kr인지 utf-8인지 좀 헷갈립니다.

      다시 한 번 테스트해본 결과 IE의 문제가 맞는 것으로 보입니다. 제가 조금 오버했네요. 관련해서 새로 포스트를 작성해보아야겠습니다. utf-8 페이지에서 get 방식으로 값을 보내는데, 이를 euc-kr로 보내느 것은 정말 넌센스네요. 새삼스럽지만 IE 실망입니다. (javascript도 utf-8, 웹 페이지도 utf-8 모든게 utf-8인데 query string 을 euc-kr로 보내다니 이해할 수가 없네요.)

      사실 관련해서 오늘 친구한테 전화까지 받았었는데… -_-a

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">