페이지 작업 중 값을 암호화하고 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로 치환됐다. 이유는 %는 의미를 가지고 있는 문자이기 때문이다.
반응형