본문으로 바로가기
링크허브 공식블로그

연동이 쉬워진다

링크허브 공식블로그

현대리가 생각하는 IT

Percent Encoding

URL ENCODING ?

간단히 말하자면, URL에서 사용할 수 없는 문자들(예약문자, 특수문자, ..)을 사용할 수 있도록 변환하는 과정입니다.

RFC3986에 따라 정해진 몇개의 문자들을 제외하고는 octet(8bit)단위로 묶어서 16진수 값으로 인코딩한 후 %를 붙여야 합니다.


URL ENCODING이라는 용어는, URL뿐만 아니라 URI, URN에서도 사용하기 때문에 퍼센트 인코딩(Percent Encoding)이라는 용어를 사용하는 것이 더 적합하다고 볼 수 있습니다.


URL에서 사용할 수 없는 문자

URL에서 사용할 수 없는 문자들은 인코딩과정을 거처야 합니다.

RFC3986에서는 비 ASCII(non-ASCII) 문자에 대한 인코딩 테이블을 제공하지 않기 때문에, ASCII 코드에 정의되지 않은 문자들은 반드시 Percent-encoding 되어야 합니다.


URL에서 사용할 수 있는 문자

URL에서 사용할 수 있는 문자는 예약(Reserved)문자와 비예약(Unreserved)문자로 구분되어 집니다.

예약문자는 URL에서 문법적 의미를 가지고 있기 때문에, 그 의미로 사용할 것이 아니라면 반드시 인코딩을 해야 합니다.

! * ' ( ) ; : @ & = + $ , / ? # [ ]


비예약문자는 퍼센트 인코딩을 하지않는것을 권장합니다.

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

a b c d e f g h i j k l m n o p q r s t u v w x y z

0 1 2 3 4 5 6 7 8 9 - _ . ~


HOW TO

Percent-encoding을 위해서는 octet으로 인코딩한 후 %를 붙여주면 됩니다.

예를들어, '링크허브' 문자를 Percent-encoding시키면 다음과 같은 과정을 거치게 됩니다.

링크허브 → 0xEB 0xA7 0x81 0xED 0x81 0xAC 0xED 0x97 0x88 0xEB 0xB8 0x8C → %EB%A7%81%ED%81%AC%ED%97%88%EB%B8%8C


URL 디코딩, 인코딩을 하시려면 아래 사이트를 이용해 주시면 됩니다.

http://convertstring.com/


Example에서 살펴보기

팝빌 예제 SDK중에서 JSP소스를 살펴보면 아래와 같이 선언되어 있는 것을 확인하실 수 있습니다.

1
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
cs

JSP는 서버에서 JAVA로 변환이 된 후에 결과(HTML)을 클라이언트에게 전송하고,

클라이언트는 HTML만을 해석하여 사용자에게 제공하게 됩니다.

HTML의 <meta>태그가 브라우저를 위한 설정값이라면, 위의 contentType과 pageEncoding은 서버를 위한 설정입니다.

contentType은 서버에서 생성될 HTML의 캐릭터셋에 대한 정보이고, pageEncoding은 JSP내의 JAVA코드에 대한 캐릭터셋 정보입니다.

예~전에는 두가지 다른 캐릭터셋으로 정의를 했다고 하는데, 요새는 UTF-8로 통일시키는것이 일반적입니다.





  • Today
  • Total