목적:
Http의 url에서 자주 사용되는 다양한 인코딩(encoding)에 대한 정리
※내용은 중요하지 않고 인코딩된 패킷을 생성하고 싶으시다면 다음 포스팅을 참고하세요.
http://kthan.tistory.com/46
내용:
1. Hex Encoding
URL을 인코딩 하는 가장 간단한 방법 RFC 표준에 따른다.
2. Double Percent Hex Encoding
Microsoft IIS에서 지원한다.
Hex Encoding에 기반하는 encoding방식으로..
'%25' 가 '%'를 의미하기 때문에 결국은 한번 꼬았다고 보면 된다.
3. Double Nibble Hex Encoding
Microsoft IIS에서 지원한다.
인코딩 할 값을 하나씩 나눠서 각각 인코딩을 한다. (nibble이란 단어의 의미를 곰곰히 생각해보면 이해하는데 조금 도움이 된다.)
'%34' 가 '4'이고 '%31'이 '1'을 의미하므로 각각을 디코딩 하면 결국 %41이 된다.
4. First Nibble Hex Encoding
Microsoft IIS에서 지원한다.
바로 앞에서 다른 'Double Nibble Hex Encoding'과 유사하다.
인코딩 이름에서 알 수 있듯 처음 nibble만 인코딩을 한다는 의미이다.
즉, '%34'가 '4'이므로 이 값을 디코딩 하면 '%41'이 된다.
5. Second Nibble Hex Encoding
Microsoft IIS에서 지원한다.
이름을 봐서 알 수 있듯 .. First Nibble과 유사하다.
차이점이라면 두번째 nibble을 인코딩 한다는 점이 다르다.
문법상의 차이로 모양새는 조금 다르지만 이해하는데는 별 문제가 되지 않는다.
'%31'이 '1'이므로 이 값을 디코딩 하면 '%41'이 된다.
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 처럼 표현한 부분이 실제 의미있는 값이다.
다음 예에서 보면.. 녹색으로 표시한 값들이 실제 데이터라고 보면 된다.
Full UTF-8 Character Map 링크
8. UTF-8 Bare byte Encoding
Microsoft IIS 서버만이 지원한다.
UTF-8 인코딩과 같지만 '%'를 쓰지 않는점이 다르다.
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 = 11100000 10000000 10101111 = 101111 = 2F = '/'
예2) %C1%81 = 11000001 10000001 = 1000001 = 41 = 'A'
%E0%81%81 = 11100000 10000001 10000001 = 1000001 = 41 = 'A'
Full UTF-8 Character Map 링크
8. UTF-8 Bare byte Encoding
Microsoft IIS 서버만이 지원한다.
UTF-8 인코딩과 같지만 '%'를 쓰지 않는점이 다르다.
예) 0xC1 0x81 = 'A'
'IT 생활 > 프로그래밍' 카테고리의 다른 글
[프로그래맹] 정규표현식(Regular Expression) - 상급 (0) | 2011.12.02 |
---|---|
[프로그래밍] 웹서버 취약점 검색 툴(Nikto) (0) | 2011.08.22 |
[프로그래밍] HTTP encoding 테스트 툴 (0) | 2011.06.22 |
[프로그래맹] 정규표현식(Regular Expression) - 중급 (0) | 2011.03.30 |
[프로그래밍] 정규표현식 (Regular Expression) - 초급 (0) | 2011.03.30 |