URL ์ธ์ฝ๋์ ๋์ฝ๋ ๋ณํํ๋ ๋ฐฉ๋ฒ๊ณผ ๊ฐ๋
๐ฃ์ธ์ฝ๋ฉ & ๋์ฝ๋ฉ ์ด๋?
Encoding: ์ธ์ฝ๋ฉ์ด๋ ์ฌ๋์ด ์ธ์ํ ์ ์๋ ๋ฌธ์์ด์ ๋ฐ์ดํธ ํ์์ผ๋ก ๋ณํ ํ๋ ๊ณผ์
Decoding: ๋์ฝ๋ฉ์ด๋ ์ธ์ฝ๋ฉ๊ณผ ๋ฐ๋ ๊ฐ๋ ์ผ๋ก ๋ฐ์ดํธ ํ์์ ๋ฌธ์์ด๋ก ๋ณํ ํ๋ ๊ณผ์
์ธ์ฝ๋ฉ๊ณผ ๋์ฝ๋ฉ์ ์ฃผ๋ก HTTP ํต์ ์ ํ ๋ URI์ ํ๊ธ ํน์ ํน์๋ฌธ์๊ฐ ํฌํจ๋์ด ์์๋ ์ฃผ๋ก ์ฌ์ฉํ๋ค.
๐ฃ์ธ์ฝ๋ฉ & ๋์ฝ๋ฉ ๊ฐ๋
EX: URI ์์์ ๊ฐ์ encodeURI๋ก ๋ณํํ๋ฉด ์๋์ ๋ณํ๋ ๊ฐ์ผ๋ก ๋ณํ๋๋ค.
์ธ์ฝ๋ฉ๋ ๊ฐ์ ๋ค์ decodeURI๋ก ๋ณํ์ ํ๋ฉด ๋ค์ ์๋ ํ์ธ์ ๋ฌธ์์ด์ ๋ณํ์ํจ๋ค.
์ธ์ฝ๋ฉ๊ณผ ๋์ฝ๋ฉ์ ์ฌ์ฉํ๋ ์ด์
์ธ์ฝ๋ฉ๊ณผ ๋์ฝ๋ฉ์ ํ๋ ์ด์ ์ค์ ๊ฐ์ฅ ํฐ ์ด์ ๋ URI ์ฃผ์ ๋๋ file ์ด๋ฆ์ ํ๊ธ or ํน์๋ฌธ์๊ฐ ํฌํจ๋๋ฉด ์๋ฌ๋ฅผ ๋ฐ์ ์ํฌ ์ ์๋ค. ์ด๋ฌํ ์๋ฌ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด์ ์ธ์ฝ๋ฉ๊ณผ ๋์ฝ๋ฉ์ ํ์ฉํด์ ์ํ๋ ๊ฒฐ๊ณผ๊ฐ์ ์ป์์ ์๋ค. ์ด๋ฌํ ์ฒ๋ฆฌ๋ฅผ
"์ด์ค์ผ์ดํ" ์ด๋ผ๊ณ ํ๋ค.
const uri = "https://mozilla.org/?keyword=์๋
ํ์ธ์";
const encoded = encodeURI(uri);
console.log(encoded);
// Expected output: "https://mozilla.org/?keyword=%EC%95%88%EB%85%95%ED%95%98%EC%84%B8%EC%9A%94"
console.log(decodeURI(encoded));
//Expected output: https://mozilla.org/?keyword=์๋
ํ์ธ์
๐ฃJavascript ๋ด์์ ํ์ฉํ ์ ์๋ ์ธ์ฝ๋ฉ & ๋์ฝ๋ฉ ๋ฉ์๋
- ์ด ํจ์๋ฅผ ํตํด์ "full URL"์ ์ธ์ฝ๋ํ๊ฑฐ๋ ๋์ฝ๋ํด์ ์ฌ์ฉ ํ ์ ์๋ค.
- encodeURI()๋ "full URL"์ ์ธ์ฝ๋ฉํ๋๋ก ์ค๊ณ๋์๊ธฐ ๋๋ฌธ์ ์ธ์ฝ๋ฉ ์ ์ธ ๋ฌธ์๊ฐ ์๋ค.
URI Syntax ์ ํฌํจ๋์ด ์ ์ธ๋๋ ๊ธฐํธ๋ค, encodeURI() ์ ์ ์ธ ๊ธฐํธ๋ค์ ์๋์ ๋ฌธ์๋ค์ ๋๋ค.
A–Z a–z 0–9 - _ . ! ~ * ' ( )
; / ? : @ & = + $ , #
URI Syntax์ ํฌํจ๋์ด ์ ์ธ๋๋ ๊ธฐํธ๋ค์ encodeURI() ํจ์์์ ๋ณํ์ด ๋์ง ์๋๋ค. ์ด๋ฌํ ๋ถ๋ถ์ ์ ๊ณ ๋ คํด์ผ๋๋ค.
encodeURIComponent(), decodeURIComponent()
- encodeURIComponent()๋ encodeURI() ์ URI Syntax ๊ธฐํธ๋ฅผ ์ ์ธํ์ง ์๊ณ ๋ชจ๋ ๋ฌธ์๋ฅผ ์ธ์ฝ๋ฉํฉ๋๋ค.
- encodeURI()์์ ๋ณํ๋์ง ์๋ ๋ฌธ์๋ค ๋๋ฌธ์ encodeURIComponent() ํจ์๋ฅผ ํ์ฉํด์ ์ธ์ฝ๋ฉ์ ํ๋ฉด ๋๋ค.
edcodeURI์ encodeURIComponent ๋ฉ์๋๋ฅผ ์ ์ ํ๊ฒ ํ์ฉํด์ ์ธ์ฝ๋ฉ์ ์ฌ์ฉํ ์ ์๋ค.
์ฌ๋ฐ๋ ์ค๋์ ๋ ๋ณ ์ด์ธ ๋ณด๊ณ ๊ฐ์ธ์!