¼Ò¼³°°Àº ÀÚ¹Ù 4ºÎ  Á¦16Àå ³×Æ®¿÷ÀÇ ±âº»  16.5 URLEncoder¿Í URLDecoderŬ·¡½º  

 

16.5 URLEncoder¿Í URLDecoderŬ·¡½º

 

URLEncoder Ŭ·¡½º´Â ¿î¿µÃ¼°è¸¶´Ù ÀϺΠ¹®ÀÚ¸¦ ÀνÄÇÏ´Â ¹æ½ÄÀÌ Æ²¸®±â ¶§¹®¿¡ ÀÌ ¹®Á¦¸¦ ÇØ°áÇϱâ À§Çؼ­ »ç¿ëÇϴ Ŭ·¡½ºÀÔ´Ï´Ù. ¿©·¯ºÐÀº °¡²û À¥ºê¶ó¿ìÁ®ÀÇ ÁÖ¼ÒÁÙ¿¡ ±úÁø ±ÛÀÚ¸¦ ÀÚÁÖ º¸°Ô µÇ´Âµ¥ À̰ÍÀÌ ¹Ù·Î EncodingµÈ ¹®ÀÚµéÀÔ´Ï´Ù. º¸Åë, ¾Æ½ºÅ° ¹®ÀÚ°¡ ¾Æ´Ñ ¹®ÀÚµéÀº ÀüºÎ Ư¼öÇÑ ¹®ÀÚµé·Î º¯È¯ÇÏ¿© ó¸®ÇÏ°Ô µË´Ï´Ù.

 

URLEncoderŬ·¡½º´Â ÀϹݹ®ÀÚ¿­À» À¥¿¡¼­ Åë¿ëµÇ´Â ¡®x-www-form-urlencoded¡¯ Çü½ÄÀÇ MIME(Multipurpose Internet Mail Extensions) Çü½ÄÀ¸·Î º¯È¯ÇÏ´Â ¿ªÇÒÀ» ´ã´çÇÕ´Ï´Ù. ½±°Ô ¸»ÇÏÀÚ¸é ´ë¼Ò¹®ÀÚ, ¼ýÀÚ, ¹ØÁÙÀ» Á¦¿ÜÇÑ URL¿¡ ÀÖ´Â ¹®ÀÚ¸¦ ÄÚµåÈ­ÇÏ´Â °ÍÀÔ´Ï´Ù. º¯È¯±ÔÄ¢Àº ´ÙÀ½°ú °°½À´Ï´Ù.

 

n         ¾Æ½ºÅ°¹®ÀÚ(a~z, A~Z, 1~9), ".", "-", "*", "_" : ±×´ë·Î Àü´Þ

n         °ø¹é¹®ÀÚ(¡® ¡¯) : ¡¯+¡¯ ±âÈ£·Î º¯È¯µÊ

n         ±âŸ¹®ÀÚ : ¡®%xy¡¯ ¿Í °°ÀÌ ¼¼ °³ÀÇ ¹®ÀÚ·Î º¯È¯µÇ¸ç, ÀÌ ¶§ xy´Â ÇØ´ç ¹®ÀÚÀÇ ASCIIÄڵ带 16Áø¼öÈ­ÇÑ °á°ú¸¦ µÎÀÚ¸®ÀÇ ´ë¹®ÀÚ·Î ³ªÅ¸³½ °ÍÀÌ´Ù.

 

¿©±â¼­ ÇѰ¡Áö ½Å°æ½á¾ß ÇÒ ºÎºÐÀº À¯´ÏÄÚµå ¹®ÀÚÀÇ °æ¿ì 16Áø¼ö ÀÎÄÚµùÀÌ ÀϾ±â Àü¿¡ ÇØ´ç Ç÷¿Æû¿¡¼­ »ç¿ëÇÏ´Â ¹®ÀÚ -> ¹ÙÀÌÆ® ÀÎÄÚµùÀ» »ç¿ëÇÏ¿© ¹®ÀÚ ½ºÆ®¸²ÀÇ µµ¿òÀ» ¹Þ¾Æ ¹ÙÀÌÆ®·Î ¹Ù²ï´Ù´Â »ç½ÇÀÔ´Ï´Ù.

 

URLEncoderŬ·¡½ºÀÇ ÁÖ¿ä ¸â¹ö¸Þ¼­µå

public static String encode(String s) : ¹®ÀÚ¿­À» x-www-form-urlencoded Çü½ÄÀ¸·Î º¯È¯ÇÑ´Ù.

 

ÀÌ¿¡ ¹ÝÇØ URLDecoderŬ·¡½º´Â URLEncoderŬ·¡½º¿Í ¹Ý´ëÀÇ ±â´ÉÀ» Çϴ Ŭ·¡½ºÀÔ´Ï´Ù. ¡®x-www-form-urlencoded¡¯Çü½ÄÀÇ MIMEÇü½ÄÀ» ÀÏ¹Ý ¹®ÀÚ¿­·Î º¯È¯ ÇÏ´Â ±â´ÉÀ» ´ã´çÇϰí ÀÖ½À´Ï´Ù. Áï, URLEncoder·Î ¾Ïȣȭ µÈ °ÍÀ» ´Ù½Ã ÀÏ¹Ý ÅØ½ºÆ® ÇüÅ·Πº¯È¯ÇÏ´Â °ÍÀÔ´Ï´Ù. º¯È¯±ÔÄ¢Àº URLEncoderŬ·¡½ºÀÇ ¿ª¼øÀ¸·Î ÅØ½ºÆ®È­ ÇÕ´Ï´Ù.

 

n         ¾Æ½ºÅ°¹®ÀÚ(a~z, A~Z, 1~9), ".", "-", "*", "_" :±×´ë·Î Àü´Þ

n         ¡®+¡¯ : °ø¹é¹®ÀÚ(¡® ¡¯)·Î º¯È¯µÊ

n         ¡®%xy¡¯ : ¡®xy¡¯¸¦ 16Áø¼ö µÎ ÀÚ¸®·Î °®´Â ¹®ÀÚ·Î º¯È¯.

 

¹ÙÀÌÆ®½ºÆ®¸²À» ÅëÇØ ¿À´Â µ¥ÀÌÅÍ´Â Ç÷§Æû¿¡¼­ ±âº»ÀûÀ¸·Î »ç¿ëÇÏ´Â ¹ÙÀÌÆ®->¹®ÀÚ ÀÎÄÚµùÀ» ÅëÇØ StringÀ¸·Î ¹Ù²ï´Ù´Â »ç½ÇÀ» ÀØÁö ¸¶½Ã±æ ¹Ù¶ø´Ï´Ù.

 

URLConnectionŬ·¡½ºÀÇ ÁÖ¿ä ¸â¹ö¸Þ¼­µå

public static String decode(String s) : ¡®x-www-form-urlencoded¡¯ Çü½ÄÀÇ MIME ŸÀÔÀ» StringÀ¸·Î º¯È¯ÇÑ´Ù.

 

 ±×·³ ¿©±â¼­ ÀÌÇØ¸¦ ½±°ÔÇϱâÀ§ÇØ ¹®ÀÚ¿­À» ÀÎÄÚµùÇÏ°í ´Ù½Ã º¹¿øÇÏ´Â ¿¹Á¦¸¦ Çϳª º¸µµ·Ï ÇϰڽÀ´Ï´Ù.

 

URLEncoderTest.java(URLEncoder¿Í URLDecoderŬ·¡½º Å×½ºÆ®

import java.net.*;

public class URLEnDecoderTest{

   public static void main(String [] args) {

       String str, encoderStr, decoderStr;

       str="¼Ò¼³ °°Àº ÀÚ¹Ù - www.jabook.org";

       encoderStr = URLEncoder.encode(str);

       decoderStr = URLDecoder.decode(encoderStr);

       System.out.println("str  :  " + str);

       System.out.println("encoderStr  :  " + encoderStr);

       System.out.println("decoderStr  :  " + decoderStr);

   }

}

C:\JavaExample\16>java URLEnDecoderTest

str  :  ¼Ò¼³ °°Àº ÀÚ¹Ù - www.jabook.org

encoderStr  :  %BC%D2%BC%B3+%B0%B0%C0%BA+%C0%DA%B9%D9+-+www.jabook.org

decoderStr  :  ¼Ò¼³ °°Àº ÀÚ¹Ù - www.jabook.org

 

°£´ÜÇÏÁÒ? ÀÏ´Ü Ã³¸®ÇÒ ¹®ÀÚ¿­À» Çϳª ¸¸µé¾î¼­ ÀÌ ¹®ÀÚ¿­À» URL ÀÎÄÚµùÇÏ´Â ºÎºÐÀº ´ÙÀ½°ú °°½À´Ï´Ù.

 

n         String str="¼Ò¼³ °°Àº ÀÚ¹Ù - www.jabook.org";

n         String encoderStr = URLEncoder.encode(str);

 

ÀÌ·¸°Ô ¹®ÀÚ¿­À» ÀÎÄÚµùÇÏ¸é ¾Æ·¡¿Í °°ÀÌ ¾Æ½ºÅ°Äڵ尡 ¾Æ´Ñ ´ëºÎºÐÀÇ ±ÛµéÀº ±úÁ®¼­ ³ªÅ¸³ª°Ô µË´Ï´Ù.

 

n        %BC%D2%BC%B3+%B0%B0%C0%BA+%C0%DA%B9%D9+-+www.jabook.org

 

±×¸®°í ¹®ÀÚ¿­À» º¹¿øÇÏ¸é ¿ø·¡±Û ´ë·Î º¹¿øµË´Ï´Ù. º¹¿øÇÏ´Â ÄÚµå´Â ¾Æ·¡¿Í °°½À´Ï´Ù.

 

n        String decoderStr = URLDecoder.decode(encoderStr);

 

ÀÌ ¿¹Á¦´Â ½ÇÁ¦ À¥°ú ¿¬°áµÇÁö´Â ¾Ê¾ÒÁö¸¸ ÀÎÄÚµù°ú µðÄÚµùÀÇ °úÁ¤À» Àß º¸¿©ÁÖ°í ÀÖ½À´Ï´Ù. ÀÚ! ±×·¸´Ù¸é ½ÇÁ¦ ³×Æ®¿÷»ó¿¡¼­ µ¿ÀÛÇÏ´Â ¿¹Á¦¸¦ ¸¸µé¾î º¸µµ·Ï ÇÏÁÒ. ¾Æ·¡ÀÇ ¿¹Á¦´Â Post¹æ½ÄÀ¸·Î µ¥ÀÌÅ͸¦ º¸³»±âÀ§Çؼ­ URLConnectionÀ» »ç¿ëÇÏ´Â ¹æ¹ý·Ðµµ »ç¿ëÇÕ´Ï´Ù. ±×¸®°í Post¹æ½ÄÀÇ Äõ¸®¸¦ º¸³¾ ¶§ ÇѱÛÀ» URLEncodingÇÏ¿© Àü¼ÛÇÏ°Ô µË´Ï´Ù. ¸¸¾à ¿©·¯ºÐÀÌ ¹®ÀÚ¿­À» ÀÎÄÚµùÇÏÁö ¾Ê¾Ò´Ù¸é ÀüÇô ´Ù¸¥ °á°ú¸¦ ¾ò°Ô µÉ °ÍÀÔ´Ï´Ù.

 

URLConnectionOutput.java(CGIÀÇ Post¹æ½ÄÀÇ µ¥ÀÌÅÍ ¾ò¾î³»±â)

import java.net.*;

import java.io.*;

public class URLConnectionOutput {

   public static void main(String[] args) {

       try {

          URL url = new URL("http://kr.search.yahoo.com/bin/options");

          URLConnection conn = url.openConnection();

          conn.setDoOutput(true);

          OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());

          wr.write("p=" + URLEncoder.encode("»ç¶û"));

          wr.flush();

          wr.close();

          String line=null;

          BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));

          while ((line = rd.readLine()) != null) {

                System.out.println(line);

          }

          rd.close();

       } catch (Exception e) {e.printStackTrace();}

   }

}

Ãâ·ÂÈ­¸éÀÌ ³Ê¹« ±æ±º¿ä. ¿©·¯ºÐÀÌ Á÷Á¢ ÄÜ¼Ö È­¸é¿¡ °á°ú¸¦ Ãâ·Â ÇØ º¸½Ã±â ¹Ù¶ø´Ï´Ù.

 

ÀÌ ÇÁ·Î±×·¥ÀÇ Ãâ·Â°á°ú´Â ¾ßÈÄÀÇ °Ë»ö´Ü¾î¿¡ ¡°»ç¶û¡±À̶ó°í ÀÔ·ÂÇÑ °Í°ú °°Àº °á°ú¸¦ Ãâ·ÂÇÏ°Ô µÉ °ÍÀÔ´Ï´Ù. ÀÌÁ¦ ¿¹Á¦¸¦ ÀÚ¼¼È÷ µé¿©´Ù º¸°Ú½À´Ï´Ù.

 

¸ÕÀú Post¸¦ ¹Þ¾Æ µéÀÏ URL°´Ã¼ºÎÅÍ »ý¼ºÇÕ´Ï´Ù. À̶§ URL°´Ã¼´Â php¶Ç´Â cgiµîÀÇ Postµ¥ÀÌÅ͸¦ ¹ÞÀ» ¼ö ÀÖ´Â URL°´Ã¼¿©¾ß ÇÕ´Ï´Ù. ±×¸®°í ÀÌ URL°´Ã¼¿¡ Connnection¼³Á¤ºÎÅÍ ÇÏ°Ô µË´Ï´Ù.

 

n        URL url = new URL("http://kr.search.yahoo.com/bin/options");

n        URLConnection conn = url.openConnection();

 

 »ý¼ºµÈ URLConnection connÀÇ ¼³Á¤À» µ¥ÀÌÅ͸¦ º¸³¾ ¼ö ÀÖ´Â ¼Ó¼ºÀ¸·Î ¹Ù²Ù´Â ÀÛ¾÷À» ÇÏ°Ô µË´Ï´Ù.

 

n        conn.setDoOutput(true);

 

 ÀÌ ÀÛ¾÷±îÁö ¸¶ÃÆ´Ù¸é Post¹æ½ÄÀ¸·Î º¸³¾ µ¥ÀÌÅ͸¦ ¼ÂÆÃÇÏ¿© URLConnectionÀ¸·ÎºÎÅÍ Ãâ·Â½ºÆ®¸²À» »ý¼ºÇÏ¿© Ãâ·Â½ºÆ®¸²À¸·Î µ¥ÀÌÅ͸¦ ÇØ´ç URL·Î Àü¼ÛÇÏ°Ô µË´Ï´Ù. À̶§ ÇѱÛÀº URLEncoding°úÁ¤À» °ÅÃÄ¾ß ÇÕ´Ï´Ù. ¸¸¾à EncodingÀ» ÇÏÁö ¾Ê´Â´Ù¸é ´Ù¸¥ °á°ú¸¦ ¾ò°Ô µÉ ¼ö µµ ÀÖ½À´Ï´Ù.

 

n        OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());

n        wr.write("p=" + URLEncoder.encode("»ç¶û"));

 

 ÀÌÁ¦ ±× °á°ú¸¦ ¹Þ¾Æ¾ß °ÚÁÒ. URLConnectionÀ¸·ÎºÎÅÍ ÀÔ·Â ½ºÆ®¸²À» »ý¼ºÇϰí ÀÛ¾÷ÇÏ±â ÆíÇÑ ½ºÆ®¸²À¸·Î º¯È¯ÇÏ¿© µ¥ÀÌÅ͸¦ ÀÐ¾î ³»¸é ÄܼÖÈ­¸é¿¡ ¿©·¯ºÐÀÌ ¿øÇÏ´Â °á°ú°¡ Ãâ·ÂµÉ °ÍÀÔ´Ï´Ù.]

 

n         BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));

n        while ((line = rd.readLine()) != null) {

n               System.out.println(line);

n        }

 

¢Ñ URLEncoder

Ŭ·¡½º¿Í

    URLDecoder

Ŭ·¡½º

URLEncoderŬ·¡½º : ÀϹݹ®ÀÚ¿­À» À¥¿¡¼­ Åë¿ëµÇ´Â ¡®x-www-form-urlencoded¡¯ Çü½ÄÀÇ MIMEÇü½ÄÀ¸·Î º¯È¯ÇÏ´Â ±â´É ´ã´ç

URLDecoderŬ·¡½º : ¡®x-www-form-urlencoded¡¯ Çü½ÄÀÇ MIMEÇü½ÄÀ» ÀÏ¹Ý ¹®ÀÚ¿­·Î º¯È¯ÇÏ´Â ±â´É ´ã´ç



jabookÀúÀÚ¸íÇÔ
Á¦¸ñ:¼Ò¼³°°ÀºÀÚ¹Ù4ºÎ
ÀúÀÚ:ÃÖ¿µ°ü