목적:
Http의 url에서 자주 사용되는 다양한 인코딩(encoding)에 대한 정리 

※내용은 중요하지 않고 인코딩된 패킷을 생성하고 싶으시다면 다음 포스팅을 참고하세요. 
http://kthan.tistory.com/46


내용:

 1.  Hex Encoding 
URL을 인코딩 하는 가장 간단한 방법 RFC 표준에 따른다.

예) %41 = 'A'  


 
2. Double Percent Hex Encoding
Microsoft IIS에서 지원한다. 
Hex Encoding에 기반하는 encoding방식으로..
'%25' 가 '%'를 의미하기 때문에 결국은 한번 꼬았다고 보면 된다. 

예) %2541 = 'A' 



3.  Double Nibble Hex Encoding
Microsoft IIS에서 지원한다. 
인코딩 할 값을 하나씩 나눠서 각각 인코딩을 한다. (nibble이란 단어의 의미를 곰곰히 생각해보면 이해하는데 조금 도움이 된다.)
'%34' 가 '4'이고 '%31'이 '1'을 의미하므로 각각을 디코딩 하면 결국 %41이 된다. 
 

예) %%34%31 = 'A'

 

4. First Nibble Hex Encoding  
Microsoft IIS에서 지원한다. 
바로 앞에서 다른 'Double Nibble Hex Encoding'과 유사하다. 
인코딩 이름에서 알 수 있듯 처음 nibble만 인코딩을 한다는 의미이다. 
즉, '%34'가 '4'이므로 이 값을 디코딩 하면 '%41'이 된다. 

예) %%341 = 'A' 



5. Second Nibble Hex Encoding
Microsoft IIS에서 지원한다.  
이름을 봐서 알 수 있듯 .. First Nibble과 유사하다.
차이점이라면 두번째 nibble을 인코딩 한다는 점이 다르다.
문법상의 차이로 모양새는 조금 다르지만 이해하는데는 별 문제가 되지 않는다. 
'%31'이 '1'이므로 이 값을 디코딩 하면 '%41'이 된다. 

예) %4%31 = 'A'


6.  Microsoft %U Encoding
Microsoft IIS에서 지원한다.  
%U뒤에 4자리 값이 오는 형식으로 인코딩 한다. 
4자리 값은 0부터 65535까지의 숫자 혹은 16진수로 0x0000 부터 0xffff까지 값이 올 수 있다. 

예) %U0041 = 'A' 

7. UTF-8 Encoding
처음 byte는 길이를 의미하므로 매우 중요하다. 

예) 110xxxxx 10xxxxxx                (two byte sequence)
     1110xxxx 10xxxxxx 10xxxxxx  (three byte sequence)

인코딩을 하기 위해 '%'를 사용한다. 
위에서 xxx 처럼 표현한 부분이 실제 의미있는 값이다. 
다음 예에서 보면.. 녹색으로 표시한 값들이 실제 데이터라고 보면 된다. 

예1) %C0%AF     = 11000000 10101111  =  101111 = 2F = '/'
     %E0%80%AF = 1110
0000 10000000 10101111  = 101111 = 2F = '/'

예2) %C1%81      = 110
00001 10000001 = 1000001 = 41 = 'A'
       %E0%81%81 = 1110
0000 10000001 10000001 = 1000001 = 41 = 'A' 



Full UTF-8 Character Map 링크

8. UTF-8 Bare byte Encoding
Microsoft IIS 서버만이 지원한다. 
UTF-8 인코딩과 같지만 '%'를 쓰지 않는점이 다르다. 

 예) 0xC1 0x81 = 'A'

Posted by KT한
,