공부/Jsp,Servlet

URL Encoding(percent Encoding)

JangGiraffe 2016. 10. 30. 21:14

페이지 작업 중 값을 암호화하고 get방식으로 전달하는 과정에서 url이 예상과는 다른 값이 나왔다. 왜그럴까?

 

1) 예상 url

 ?registerNo=m0tQgzyN8EQjojlW7dLoNA%3D%3D

2) 실제 url

?registerNo=m0tQgzyN8EQjojlW7dLoNA%253D%253D

값은 또 제대로 출력된다.

 

이유를 인터넷에서 찾아봤는데 URL Encoding과 관련되어 나타나는 현상이었다.

 

URL Encoding을 왜 하는가?

URL은 아스키 코드로만 구성되야 하며, 아스키 코드에 포함되지 않은 문자는 URL에 포함될 수 없다.
 >> 아스키코드만을 사용하도록 설계되었지만, 인터넷 사용량이 점점 늘어나며, 다양한 문자를 URL에 넣기 위해 percent encoding이라는 규약을 만들어냈다.)

URL에서 의미를 가지고 있는 문자(%,?,#), 올 수 없는 문자(공백),System에서 해석이 될 수 있는 문자(<,>)를 치환하여 발생할 수 있는 문제를 예방하기 위함.

 

방법

URL에서 문제를 발생시킬 수 있는 문자를 %와 2개의 16진수로 구성된 값으로 치환한다.

 

나의 url에 경우에는 %가 %25로 치환됐다. 이유는  %는 의미를 가지고 있는 문자이기 때문이다.

반응형