기타

#카카오톡 링크 인식 분석[실험]

geekseong 2019. 4. 14. 12:57

[ 발견 ] 편에 이어서  카카오톡이 어떤 텍스트를 링크로 인식하는지 확인하기 위하여 테스트용 텍스트를 여러개 만들어 실험하였다.

 

1. http://www.naver.com  링크로 인식
2. http://www.naver.com  링크로 인식
3. www.naver.com  링크로 인식
4. naver.com   링크로 인식
5. naver.hhh -> 링크로 인식 안함.
6. //www.naver.com -> // 를 제외하고 링크로 인식
7. //=_+naver.com -> //=_+ 를 제외하고 링크로 인식
8. naver.com_+/  ->  링크로 인식 못함
9. naver.com*^&^3 -> *^&^3  를 제외하고 링크로 인식
10. and-naver.com -> 링크로 인식.
11. asd—naver.com  -> asd—를 제외하고 링크로 인식.

   

여기까지의 실험으로 다음과 같은 결론을 내릴 수 있다.

 

1) 1, 2, 3, 4 번으로 보아 프로토콜(http(s)) 가 있던 없던 링크로 인식한다.

2) 4번, 5번으로 보아,  마지막에 올 수 있는 도메인이 명확하게 있다.

3) 6번, 7번으로 보아, 링크 앞에 딸린 특수문자는 제외하고 링크로 인식

4) 9번으로 보아, 도메인 마지막의 특수문자는 제외하고 링크로 인식

5) 10,번, 11번으로 보아 - 한개는 링크로 인식, --는 링크로 인식하지 않는다.

 

 

8번으로 보아 URL 에서 사용되는 특수문자 / _ - & = ? 같은 경우 좀더 실험 할 필요가 있어보인다.

아래 에는 도메인 뒤에 나올 수 있는 특수문자를 테스트 해보았고, 다음 3가지의 경우로 나눠 볼 수 있다.

 

1. ~!@#$%^&*()_+-=;:’”,.?<>` 의 특수 문자가 올 경우 특수문자를 무시하고 앞에 부분만 링크로 인식

 

2. _가 올경우 텍스트로 인식.

3. /가 올경우 /를 포함하여 링크로 인식

 

뒤에 나올 수 있는 도메인 규칙까지 포함하여 정리하면 다음과 같다.

 

1) 1, 2, 3, 4 번으로 보아 프로토콜(http(s)) 가 있던 없던 링크로 인식한다.

2) 4번, 5번으로 보아,  마지막에 올 수 있는 도메인이 명확하게 있다.

3) 6번, 7번으로 보아, 링크 앞에 딸린 특수문자는 제외하고 링크로 인식

4) 9번으로 보아, 도메인 마지막의 특수문자는 제외하고 링크로 인식

5) 10,번, 11번으로 보아 - 한개는 링크로 인식, --는 링크로 인식하지 않는다.

6) 12번으로 보아 (문자열.) 조합이 1 개 이상, 최대 4개 까지 올 수 있음.

7) ₩~!@#$%^&*()+-=;':",.<>? 의 특수문자가 나오는경우 앞에 특수문자 전까지만 링크로 인식

8) _가 나올경우는 전체를 문자로 인식

9) /가 나오는경우 /뒤 전체를 포함하여 링크로 인식.

 

다음 장에서는 위 규칙을 바탕으로 코드로 옮겨보도록 하겠다.