Jquery-cookie: ์ฟ ํ‚ค ๊ฐ’์— ๋Œ€ํ•ด encodeURIComponent()๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ escape()์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์— ๋งŒ๋“  2011๋…„ 01์›” 20์ผ  ยท  5์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: carhartl/jquery-cookie

์ฟ ํ‚ค ๊ฐ’์„ ์ด์Šค์ผ€์ดํ”„ํ•˜๊ธฐ ์œ„ํ•ด ์—ฌ๊ธฐ์—์„œ encodeURIComponent()๊ฐ€ ๋งž์Šต๋‹ˆ๊นŒ? '๋„๋ง'์ด ๋˜์–ด์•ผ ํ•˜์ง€ ์•Š๊ฒ ์Šต๋‹ˆ๊นŒ?

์ฟ ํ‚ค๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ์— ์ž˜ ๋“ค์–ด์˜ค๊ณ  ๋‚˜์ง€๋งŒ ๊ฒฝ๋กœ ์ด๋ฆ„์ด ํฌํ•จ๋œ ์ฟ ํ‚ค๋Š” ์ธ์ฝ”๋”ฉ ์„ ํƒ์œผ๋กœ ์ธํ•ด ๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ์žˆ๋Š” ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ๋‚˜์™€ ๊ฐ™์€ ๋‹ต๋ณ€์„ ๊ฒ€์ƒ‰ํ•˜๋Š” ๋™์•ˆ ์ด ํ† ๋ก ์„ ์ฐพ์€ ๊ฒฝ์šฐ:

์ฟ ํ‚ค๋Š” HTTP ํ—ค๋”๋กœ ์„œ๋ฒ„์— ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค.

์ฟ ํ‚ค: ์ด๋ฆ„1=๊ฐ’1; ์ด๋ฆ„2=๊ฐ’2

๋ถ„๋ช…ํžˆ value1์—๋Š” ;

๋‹ค๋ฅธ ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ์บ๋ฆญํ„ฐ๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

์‚ฌ์‹ค ์ฟ ํ‚ค๋Š” ์ธ์ฝ”๋”ฉ ๋ถ€์กฑ์œผ๋กœ ์ธํ•ด ๊ทผ๋ณธ์ ์œผ๋กœ ๋ฐฉํ•ด๋ฅผ ๋ฐ›์Šต๋‹ˆ๋‹ค. ์ธ์ฝ”๋”ฉ์„ ์„ ํƒํ•˜๊ณ  ๋ธŒ๋ผ์šฐ์ €์™€ ์„œ๋ฒ„ ๋ชจ๋‘์—์„œ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

MDN์€ encodeURIComponent๋ฅผ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค: https://developer.mozilla.org/en-US/docs/Web/API/document.cookie

๋ชจ๋“  5 ๋Œ“๊ธ€

encodeURIComponent / decodeURIComponent ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ๋Š” escape / unescape ๊ฐ€ ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ ์ž…๋‹ˆ๋‹ค.

๊ทธ ์™ธ์—๋Š” ์—ฌ๊ธฐ์— ๋ฌธ์ œ๊ฐ€ ๋ฌด์—‡์ธ์ง€ ์•„์ง ์ดํ•ดํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. ์ฟ ํ‚ค ๊ฐ’์€ ๋ฐ˜ํ™˜๋˜๊ธฐ ์ „์— decodeURIComponent๋ฅผ ํ†ตํ•ด ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋ˆ„๋ฝ๋œ ๊ฒƒ์ด ์—†์œผ๋ฉด ์ฟ ํ‚ค์— ์ „๋‹ฌ๋˜์—ˆ์„ ๋•Œ์™€ ์ •ํ™•ํžˆ ๋™์ผํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ฌธ์ œ๋ฅผ ์„ค๋ช…ํ•˜๊ธฐ ์œ„ํ•ด ์š”์ ์ด๋‚˜ ๋‚ด์šฉ์„ ๊ฒŒ์‹œํ•ด ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

๋งˆ์ง€๋ง‰์œผ๋กœ raw ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ ์ฒ˜์Œ๋ถ€ํ„ฐ ์ธ์ฝ”๋”ฉ์„ ์šฐํšŒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹น์‹ ์ด ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ๊ฒƒ์— ๋Œ€ํ•ด ์˜ณ์Šต๋‹ˆ๋‹ค. ์•„๋งˆ๋„ encodeURI()๋Š” encodeURIComponent() ๋Œ€์‹ ์— ์‹ค์ œ๋กœ ํ•„์š”ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ฐ„๋‹จํžˆ ๋งํ•ด์„œ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ท€ํ•˜์˜ ์ฝ”๋“œ๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ํ†ตํ•ด ์ฟ ํ‚ค๊ฐ€ ์ƒ์„ฑ๋˜๊ณ  ์†Œ๋น„๋˜๋Š” ๊ฒฝ์šฐ์—๋งŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ฟ ํ‚ค๋ฅผ ๋งŒ๋“  ๋‹ค์Œ PHP ๋˜๋Š” Java ์•ฑ์—์„œ ์ฟ ํ‚ค๋ฅผ ์ฝ์œผ๋ ค๊ณ  ํ•˜๋ฉด ํ•ด๋‹น ์•ฑ์€ ์ฟ ํ‚ค๊ฐ€ encodeURIComponent()๋กœ ์ธ์ฝ”๋”ฉ๋˜๊ณ  ๋ฐฑ์—”๋“œ์—์„œ urldecoded()์—ฌ์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ด๊ฒƒ์ด ๋ฌธ์ œ๋ฅผ ์ผ์œผํ‚ค๋Š” ์ฃผ์š” ์žฅ์†Œ๋Š” ์ฟ ํ‚ค์— URL์ด๋‚˜ URI๋ฅผ ๋„ฃ์„ ๋•Œ์ž…๋‹ˆ๋‹ค. ์ฟ ํ‚ค์— "/foo"๋ฅผ ๋„ฃ๊ณ  ์‹ถ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด ๋ด…์‹œ๋‹ค. EncodeURIComponent()๋Š” ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ๋กœ ์ด๋ฆ„ "%2Ffoo"๋ฅผ ์ œ๊ณตํ•˜๋Š” ๋ฐ˜๋ฉด, encodeURI()๋Š” ๋ฐฑ์—”๋“œ ์‹œ์Šคํ…œ์ด๋‚˜ ํ”Œ๋Ÿฌ๊ทธ์ธ ์—†์ด ์ฟ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ์ง์ ‘ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” "/foo"๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์„œ encode()์˜ ์žฅ์ ์€ ์‹ค์ œ๋กœ ์ฟ ํ‚ค ๊ฐ’์— ์„ธ๋ฏธ์ฝœ๋ก ์ด ์žˆ์œผ๋ฉด ์ด์Šค์ผ€์ดํ”„ ์ฒ˜๋ฆฌ๋œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. encodeURI()๋Š” ์„ธ๋ฏธ์ฝœ๋ก ์„ ์ด์Šค์ผ€์ดํ”„ํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ encodeURI()๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ ์™ธ์— ์ด๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ถ”๊ฐ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

Raw๋Š” ๊ดœ์ฐฎ์ง€๋งŒ ์ธ์ฝ”๋”ฉ์— ๋ฌธ์ œ๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ถ”๊ฐ€ํ•œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. encodeURI()๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด ์•„๋งˆ๋„ ๋” ์ด์ƒ ํ•„์š”ํ•˜์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

encodeURI ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋Š” ์ด์œ :

encodeURI('foo;bar') == "foo;bar"

ํ•˜์ง€๋งŒ:

encodeURIComponent('foo;bar') == "foo%3Bbar"

ํ›„์ž๋Š” ์šฐ๋ฆฌ๊ฐ€ ์›ํ•˜๋Š” ํ–‰๋™์ž…๋‹ˆ๋‹ค.

raw ๋Š” ์‹ค์ œ๋กœ ์„œ๋ฒ„์™€ ์ž˜ ๋†€๊ธฐ ์œ„ํ•ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์™œ ๊ทธ๋Ÿฐ ํ–‰๋™์„ ์›ํ•˜๋Š”์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๊ณณ์—์„œ ๋‹ต์„ ์ฐพ๊ธฐ ์œ„ํ•ด ๊ณ ๊ตฐ๋ถ„ํˆฌ http://stackoverflow.com/questions/5743119/why-use-encodeuricomponent-when-writing-json-to-a-cookie

๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ๋‚˜์™€ ๊ฐ™์€ ๋‹ต๋ณ€์„ ๊ฒ€์ƒ‰ํ•˜๋Š” ๋™์•ˆ ์ด ํ† ๋ก ์„ ์ฐพ์€ ๊ฒฝ์šฐ:

์ฟ ํ‚ค๋Š” HTTP ํ—ค๋”๋กœ ์„œ๋ฒ„์— ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค.

์ฟ ํ‚ค: ์ด๋ฆ„1=๊ฐ’1; ์ด๋ฆ„2=๊ฐ’2

๋ถ„๋ช…ํžˆ value1์—๋Š” ;

๋‹ค๋ฅธ ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ์บ๋ฆญํ„ฐ๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

์‚ฌ์‹ค ์ฟ ํ‚ค๋Š” ์ธ์ฝ”๋”ฉ ๋ถ€์กฑ์œผ๋กœ ์ธํ•ด ๊ทผ๋ณธ์ ์œผ๋กœ ๋ฐฉํ•ด๋ฅผ ๋ฐ›์Šต๋‹ˆ๋‹ค. ์ธ์ฝ”๋”ฉ์„ ์„ ํƒํ•˜๊ณ  ๋ธŒ๋ผ์šฐ์ €์™€ ์„œ๋ฒ„ ๋ชจ๋‘์—์„œ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

MDN์€ encodeURIComponent๋ฅผ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค: https://developer.mozilla.org/en-US/docs/Web/API/document.cookie

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰