์น์์ GET๋ฐฉ์์ผ๋ก ์ด๋ค ๊ฐ์ ๋๊ฒจ์ค ๋ ๊ฐํน ์ ๋๋ก ๋์ค์ง ์๋ ๋ฌธ์๊ฐ ์์ต๋๋ค. ๋ฐ๋ก ํน์๋ฌธ์์ค์ +์ &์ธ๋ฐ GET๋ฐฉ์์ผ๋ก ํ๋ฉด Query String์ผ๋ก URL์ ๋ค์ '?'๋ฌธ์์ ํจ๊ป ๊ฐ์ด ๋ถ์ด์ ธ์ URL์ ๊ตฌ์ฑํฉ๋๋ค. Query String ๋ฐฉ์์ผ๋ก ๋๊ฒจ์ฃผ๋ฉด +์ &๋ ์๋ต์ด ๋๋๋ฐ ์ ๊ฐ์ ๊ฒฝ์ฐ๋ ๊ฒ์ ๊ธฐ๋ฅ์ ๋ฃ์ ๋ ๋ฒ๊ทธ์ฌํญ์ผ๋ก ๊ฒฝํํ์ต๋๋ค. ๊ฒ์์ด ์ค์ (+)์ ๊ฐ์ ๊ธฐํธ๊ฐ ๋ค์ด๊ฐ๋ ๋ถ๋ถ์ด ์์๋๋ฐ +๊ฐ ์๋ต๋๋ ๋ฐ๋์ ์๋ฑํ ๊ฒฐ๊ณผ๋ฌผ์ด ๋์ค๊ฑฐ๋ ์์ ์๋์ค๋ ์ํฉ์ด ๋ฐ์ํ์ต๋๋ค. ์ด๋ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๊ฐ๋จํฉ๋๋ค.
ํด๊ฒฐ๋ฐฉ๋ฒ
๊ฐ๋จํ๊ฒ URI์ ์ธ์ฝ๋ฉ ๋ฐฉ์์ธ ํผ์ผํธ ์ธ์ฝ๋ฉ(percent-encoding)์ผ๋ก ์ธ์ฝ๋ฉ์ ํด์ฃผ๋ฉด ๋ฉ๋๋ค. ํผ์ผํธ ์ธ์ฝ๋ฉ์ ๋ฐ๋ฅด๋ฉด ์ํ๋ฒณ์ด๋ ์ซ์ ๋ฑ ๋ช๋ช ๋ฌธ์๋ค์ ์ ์ธํ ๋๋จธ์ง ํน์๋ฌธ์๋ค์ ์ฅํ ๋จ์๋ก ๋ฌถ์ด์, 16์ง์ ๊ฐ์ผ๋ก ์ธ์ฝ๋ฉํฉ๋๋ค. ์ฆ +์ &๋ง ํผ์ผํธ ์ธ์ฝ๋ฉ์ผ๋ก ๋ฐ๊ฟ์ฃผ๊ฑฐ๋ URI ์ ์ฒด๋ฅผ ํผ์ผํธ ์ธ์ฝ๋ฉ์ผ๋ก ๋ฐ๊พธ์ด์ฃผ๋ฉด ๋ฉ๋๋ค.
function replace(url) { url= url.replace(/&/g,"%26").replace(/\+/g,"%2B"); return url; }
๋๋
function replace(url) { url= encodeURIComponent(url); return url; }
ํผ์ผํธ ์ธ์ฝ๋ฉ์ผ๋ก ์ธ์ฝ๋ฉ ๋ฐ ๋์ฝ๋ฉ์ ํด์ฃผ๋ ํจ์๊ฐ javascript์ 4์ข ๋ฅ๊ฐ ์๋๋ฐ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- encodeURI( uri ) : URI์์ ์์ฃผ ์ฌ์ฉํ๋ : ; / = ? & ๋ฑ์ ์ ์ธํ๊ณ ์ธ์ฝ๋ฉํ๋ ํจ์
- encodeURIComponent( uri ) : ๋ชจ๋ ๋ฌธ์๋ฅผ ์ธ์ฝ๋ฉํ๋ ํจ์
- decodeURI( uri ) : encodeURI์ ๊ฒฐ๊ณผ๋ฌผ์ ๋์ฝ๋ฉํ๋ ํจ์
- decoudeURIComponent ( uri ) : encodeURIComponent์ ๊ฒฐ๊ณผ๋ฌผ์ ๋์ฝ๋ฉํ๋ ํจ์
ํผ์ผํธ ์ธ์ฝ๋ฉ ๊ท์ฝ์ด ์ ์๋์ด ์๋ RFC 3986์ ๋ฐ๋ฅด๋ฉด URI์์ ์ค์ํ๊ฒ ์ฌ์ฉ๋๋ ์์ฝ๋ฌธ์๊ฐ ์๊ณ , ๊ทธ๋ ์ง ์์ ๋น์์ฝ ๋ฌธ์๊ฐ ์์ต๋๋ค. ์์ฝ๋ฌธ์๋ ์์์ ์ธ์ฝ๋ฉ์์ผ์ค +์ &๋ง๊ณ ๋ ์๋์ ๊ฐ์ด ๋ ๋ง์ต๋๋ค.
์์ฝ๋ฌธ์
! * ' ( ) ; : @ & = + $ , / ? # [ ]
๋น์์ฝ๋ฌธ์
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 - _ . ~
๋น์์ฝ ๋ฌธ์๋ ์์ ๊ฐ์ต๋๋ค. ๋น์์ฝ ๋ฌธ์๋ค์ ์ธ์ฝ๋ฉํ ํ์ ์๊ณ ์ํ๋ ๊ฒ์ ๊ถ์ฅํฉ๋๋ค.
์ฐธ๊ณ
https://www.codingfactory.net/10377
https://ko.wikipedia.org/wiki/%ED%8D%BC%EC%84%BC%ED%8A%B8_%EC%9D%B8%EC%BD%94%EB%94%A9