๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๋ชฉ๋ก์ด ์—†์Šต๋‹ˆ๋‹ค.

[์›น ํ”„๋กœ๊ทธ๋ž˜๋ฐ] GET ๋ฐฉ์‹์œผ๋กœ query string ๋„˜๊ธธ ๋•Œ ํŠน์ˆ˜๋ฌธ์ž ์‚ฌ๋ผ์ง ํ˜„์ƒ

๐Ÿ—ฃ Language

    ์›น์—์„œ 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