[첫화면으로]한RSS에저장되는URL길이제한문제

마지막으로 [b]

관련 글

주인장 생각

%-인코딩된 URL을 길다는 이유로 문제삼으면 곤란하지 않을까

[성렬's log - 한RSS and beyond : 태터의 기본 주소체계로 숫자사용을 제안합니다.]에 답글로 남긴 주인장의 생각:

음... 제가 보기에는 세 가지 문제가 겹쳐 있는데요,

1) 블로그의 각 엔트리들을 구분할때 숫자 인덱스를 사용할 것인가, 페이지 제목을 사용할 것인가

이건 각 블로그 주인들이 결정할 문제이긴 한데, 태터에서 기본값을 뭐로 하느냐에 따라 대부분의 사용자들은 그대로 따라가겠죠. 그렇지만 태터는 그렇게 고치면 된다 치고, 다른 블로그 툴을 쓰는 경우는?

2) URL에 아스키 문자만 사용할 것인가 한글도 사용할 것인가

이건 아스키 문자만 쓰도록 권장(인지 강제인지, 누가 그걸 결정하는 건지 저도 잘 모릅니다만)되는 건 맞습니다. 아스키 문자가 아니라면 %EC... 와 같이 %-인코딩되어서 사용하게 되어 있죠.

3) URL의 길이 제한

URL의 길이가 얼마 이상이면 안 된다..라는 제한이 있는지요? 저는 전혀 모르겠습니다. 방금 찾아보니 http://www.boutell.com/newfaq/misc/urllength.html 글에 따르면 스펙에는 명시되어 있지 않고, 이런 저런 브라우저와 서버를 대상으로 테스트해보면 작게는 4000캐릭터 쯤에서 문제가 발생하고 브라우저 쪽에서는 19만 캐릭터(-_-;)까지 테스트했다고 하는군요.

애초에 문제가 된 그 URL (운영게시판 질문글에 있는)의 경우는, "ASCII만으로 이뤄진 URL" 맞습니다. 그러니 2)의 관점에서 그 URL에 문제가 있다고 말하는 건 옳지 않다고 생각됩니다. "http..../안녕하세요"라는 URL은 문제의 소지가 있지만 "http..../%EC%95%88%EB%85%95%ED%95%98%EC%84%B8%EC%9A%94"는 "http..../1234"와 다르게 취급받을 이유가 없다고 보는 거죠.

그런데 하필 그 URL이 조금(? 너무?) 길어서 문제인 건데, 한글1글자가 UTF-8에서는 3바이트 차지하고 그걸 %-인코딩 하면 9바이트가 되어 버리니까, 실제로 255글자 채우는 건 한글 28자 정도면 됩니다. 앞에 "http..도메인이름/디렉토리" 부분이 한 30여 바이트 차지할 걸 생각하면 남는 건 220바이트, 한글24글자+영어4글자 정도인데, 티스토리 홈페이지 메인 화면에서 최근 등록된 글 보면 10페이지 정도 뒤지니까 한 다섯 건 정도의 글 제목이 그 제한을 넘는군요.

"마가리타 - 소금과 레몬이 어울리는 데낄라와 꼬앙뜨로의 절묘한 조화" - 제목만 277바이트가 됩니다. 제가 찾았던 시점에는 이게 제일 길었네요. :-)

10페이지 뒤져서 (총 100건 중에) 네다섯건의 글이면 드문 경우다...라고 할 수 있겠지만, 그렇다고 "아주 드물다"라고 할만큼 적은 수치인지는 잘 모르겠습니다.

뭐 여기까지 쓰면서도 계속 맘에 걸리는 건, 한RSS에 하루에도 수천 수만개의 링크들이 등록될 텐데 현재 255바이트를 저장하는 걸 두배로 늘린다고 해도 필요한 저장공간이 어마어마하게 추가될 것이고, 두배로 늘려도 "더 긴 주소가 오면 어떡할 거냐"라는 문제가 여전히 남는다는 건데... (이 문제 때문에 성렬님도 고민하시는 거겠지요. 도깨비방망이처럼 저장공간을 뚝딱하고 늘릴 수 있다면야 뭐가 문제겠습니까만)

말이 길어졌는데 정리하면,

1. 멀티바이트 문자인 한글을 URL에 쓰면 안 된다고 해서 %-인코딩해놨더니만, 이제는 "길어져서 문제다"라는 건 불합리해 보입니다.

2. 어차피 태터에서만 한RSS에 글이 올라오는 게 아닌데, 태터에서 주소 형태 기본값을 뭘로 할 것인지는 태터에서 (뭔가 다른 이유로) 고민할 안이지 한RSS의 해결책은 아닐 것 같고요.

2-1. 덧붙여서, 도저히 숫자로 자신의 데이타를 구분할 수 없는 환경들도 많지요. 대표적으로 위키위키 사이트들은 전부 각 페이지 제목을 그 페이지의 URL에 포함시킵니다. 위키페디아의 각 페이지들이 숫자로 되어 있다면...;;; 그런 곳의 RSS도 한RSS에 등록될 수 있을 거고요.

3. 그렇다고 한RSS의 저장공간을 무한정 늘릴수는 없을테니 결국 절충의 문제일텐데, 지금의 255바이트 제한은 너무 짧다고 생각됩니다. 512바이트면 한글만 썼을 때 56자 정도군요. 이 정도면 신문기사 스크랩해서 제목을 그대로 주소로 바꿔도 어지간하면 안 넘을 주소 같긴 하네요.

4. 하루에도 수십번씩 한RSS들어와서 글 읽는 재미로 사는 사람으로써 감사의 인사 드립니다 :-) 부디 이 문제가 잘 해결되었으면 좋겠네요.

참, 태터만이라도 일단...이라는 접근으로는, 글 주소 형태를 사용자가 어느 방식을 택하든지간에, 어차피 두 주소 다 호환되는 것 같으니, RSS출력에는 무조건 숫자URL로 나오게 하는 건 어떻습니까? 블로그 주인은 제목URL을 택했는데 RSS타고 들어온 사람은 숫자URL을 보는게 기분나쁘다..라면, 숫자URL로 들어오면 태터 쪽에서 제목URL로 redirection시킬 수도 있겠군요. (이건 TNF쪽에 써야 될 문제겠습니다만.)

위키 사이트들의 경우

위키위키 사이트들은 전부(전부인지는 모르겠지만 안 그런 곳을 본 적이 없음) 페이지 제목을 URL에 가져다 쓰기 때문에, 한글 제목의 페이지의 경우 %-인코딩을하면 대책없이 길어진다.

GyparkWiki에서는, http://gypark.pe.kr/wiki/까지가 25바이트, 따라서 한RSS에 제대로 등록되려면 페이지 제목이 %-인코딩했을 때 230바이트까지 허용된다. 현재 가장 긴 이름의 페이지는... 페이지이름페이지이름페이지이름페이지이름페이지이름abcdef 이건 시험삼아 만들어본 231바이트짜리 제목이고, :-) 제대로 된 건 횡설수설/파나소닉배2002온게임넷스타리그16강B조2경기로서 198바이트.

막연하게 한글1글자=2바이트 또는 3바이트 정도로만 생각했는데, %-인코딩된 형태를 생각하면 많게는 9바이트를 잡아먹는다. 게다가 그렇게 해서 나오는 건 "%ED%9A%A1%EC%84%A4%EC%88%98%EC%84%A4("횡설수설"까지만 인코딩한 게 이 정도다)"..라는 도저히 어떤 의미를 알 수 없는 문자열. 알파벳과 비교하면... 너무 불공평하지 않나 =.=

재미삼아 다른 위키사이트들도 잠깐 살펴보면 (제목만 따져서)

관련 링크

URL 길이 제한에 관해 언급한 글들, 구글에서 "url length limit"검색했음.

Comments

이름:  
Homepage:
내용:
 


기타분류

마지막 편집일: 2012-2-11 12:25 am (변경사항 [d])
1691 hits | Permalink | 변경내역 보기 [h] | 페이지 소스 보기