º¸Åë À¥ ¼¹ö ÇÁ·Î±×·¡¹Ö¿¡¼ ·Î±×ÀεîÀ» À§ÇÑ ÀÎÁõ ÆäÀÌÁö¸¦ ¸¸µé ¶§¿¡´Â HTML ¾ç½ÄÀ» ¸¹ÀÌ ÀÌ¿ëÇÕ´Ï´Ù. Æû ¾ç½ÄÀ» ÅëÇØ¼ ¿©·¯ °¡Áö À¯È¿ÇÑ Á¤º¸µéÀ» È¿°úÀûÀ¸·Î ¹Þ¾ÆµéÀÏ ¼ö Àֱ⠶§¹®ÀÌÁÒ. ±×·¸Áö¸¸ ¿©·¯ºÐÀº À¥¼ÇÎÀ» ÇÏ¸ç ¾î´À »çÀÌÆ®¿¡ µé¾î°¡·Á ÇÒ ¶§ ·Î±×ÀÎÀ» À§ÇÑ ÀÎÁõ ÆäÀÌÁö°¡ À¥ºê¶ó¿ìÀú¿Í´Â ´Ù¸¥ º°°³ÀÇ Ã¢¿¡ ¶°¼ ¾ÆÀ̵ð¿Í ÆÐ½º¿öµå¸¦ ¿ä±¸ÇÏ´Â °æ¿ì¸¦ Çѹø¾¿Àº °æÇèÇϼÌÀ» °ÍÀÔ´Ï´Ù. ÀÌ·± °æ¿ì´Â ¼¹öÃø¿¡¼ Http¸¦ ±â¹ÝÀ¸·Î ÇØ¼ ¸¸µç °ÍµéÀÔ´Ï´Ù. ¿©±â¼´Â ÀÌ·¸°Ô °£´ÜÇÑ ÀÎÁõÀ» ÇÒ ¶§ À¯¿ëÇÏ°Ô ¾²ÀÏ ¼ö ÀÖ´Â Http¸¦ ±â¹ÝÀ¸·Î ÇÏ´Â ±âº»ÀÎÁõ(basic Authorization)À» ¼ºí¸´¿¡¼ ÀÌ¿ëÇÏ´Â ¹æ¹ý¿¡ ´ëÇØ ¾Ë¾Æº¸°Ú½À´Ï´Ù.
±×·³ ¸ÕÀú ¼ºí¸´¿¡¼ ±âº»ÀÎÁõ(basic Authorization)À» ÀÌ¿ëÇÏ´Â ÀýÂ÷¿¡ ´ëÇØ »ìÆìº¸°Ú½À´Ï´Ù. ÀÌ ÀýÂ÷¸¦ Àß ÀÌÇØÇϼž߸¸, ÀÌ¿¡ °üÇÑ ÇÁ·Î±×·¡¹Ö ¹× ºÐ¼®À» ÇÒ ¼ö ÀÖÀ¸¸ç, ¿©·¯ ºÎºÐ¿¡ °ÉÃÄ °ü·ÃµÈ ºÎºÐÀÌ´Ï Àß »ìÆìº¸½Ã±â ¹Ù¶ø´Ï´Ù.
n Http Çì´õ¸¦ °Ë»çÇØ AuthorizationÇì´õÀÇ Á¸Àç¿©ºÎ °Ë»ç
ÀÎÁõÀÇ Á¤º¸¸¦ ´ã°í ÀÖ´Â AuthorizationÇì´õÀÇ Á¸Àç¿©ºÎ¸¦ ¿ì¼± °Ë»çÇÕ´Ï´Ù.
n Çì´õ°¡ Á¸ÀçÇÒ °æ¿ì ¡°basic¡±À̶õ ´Ü¾î¸¦ »« ³ª¸ÓÁö ºÎºÐÀ» base64·Î µðÄÚµù.
ÀÎÁõ¹æ½ÄÀ» ³ªÅ¸³»´Â ¡°basic(±âº»)¡±À̶õ ´Ü¾î µÞºÎºÐºÎÅͰ¡ ½ÇÁ¦ÀûÀÎ »ç¿ëÀÚÀÇ Á¤º¸°¡ µÇ´Â °ÍÀÔ´Ï´Ù. ±×¸®°í ¿©±â¼ ¸»ÇÏ´Â base64´Â °£´ÜÇÑ ¾ÏÈ£È ¾Ë°í¸®ÁòÀ̶ó´Â Á¤µµ·Î ¾Ë¾ÆµÎ½Ã±â ¹Ù¶ø´Ï´Ù.Sun¿¡¼´Â ÀÌ·¸°Ô base64·Î ÀÎÄÚµù µÈ ¹®ÀÚ¿À» µðÄÚµùÇØÁÖ±â À§ÇÑ sun.misc.BASE64Ŭ·¡½º¸¦ Á¦°øÇÕ´Ï´Ù.
n µðÄÚµùÇÑ ÈÄ »ý±ä ¡°user:password¡±ÇüÅÂÀÇ ¹®ÀÚ¿·Î »ç¿ëÀÚ ÀÎÁõ
base64·Î µðÄÚµùÇÑ ÈÄ ³ª¿À´Â »ç¿ëÀÚÁ¤º¸(ÀÎÁõÀ» À§ÇØ ÀÔ·ÂÇÑ Á¤º¸)¸¦ µðºñµî¿¡ ÀÔ·ÂµÈ ½ÇÁ¦ Á¤º¸¿Í ºñ±³ÇÏ¿© ÀÏÄ¡ÇÏ¸é ¿øÇÏ´Â ÆäÀÌÁö¿¡ µé¾î°¡°Ô µÇ°í ±×·¸Áö ¾ÊÀ» °æ¿ì ´ÙÀ½ÀÇ °úÁ¤À» °ÅĨ´Ï´Ù.
n AuthorizationÇì´õ°¡ Á¸ÀçÇÏÁö ¾Ê°Å³ª ÀÎÁõ¿¡ ½ÇÆÐÇÒ °æ¿ì 401»óÅÂÄÚµå¿Í Çì´õ¸¦ µ¹·ÁÁÜ
AuthorizationÇì´õ°¡ Á¸ÀçÇÏÁö ¾Ê°Å³ª ÀÔ·ÂµÈ »ç¿ëÀÚ Á¤º¸°¡ À߸ø µÇ¾î¼ ÀÎÁõ¿¡ ½ÇÆÐÇÑ °æ¿ì¿¡´Â »ç¿ëÀÚ ID¿Í Password¸¦ ¹¯´Â âÀÌ ¶°¾ß Çϴµ¥ ±×°ÍÀ» ÇØÁÖ´Â °ÍÀÌ 401»óÅÂÄÚµå(Unauthorized)¿Í www-Authentificate: BASIC realm=¡°name¡±ÇüÅÂÀÇ Çì´õÀÔ´Ï´Ù.
»óÅÂÄÚµå´Â HttpÀÀ´äÀÇ ¸Ç ÀÁÙ¿¡ Á¤¼ö¿Í °£´ÜÇÑ ¸Þ½ÃÁö·Î ±¸¼ºµÇ´Â °ÍÀ¸·Î, °¢ Á¤¼öÀÇ ¹øÈ£¿¡ µû¶ó¼ Ŭ¶óÀÌ¾ðÆ®¿¡°Ô Á¤º¸¸¦ Á¦°øÇϰųª, ó¸®ÀÇ »óÅÂ, ÆÄÀÏÀÇ À̵¿, ¿À·ù»óŵîÀ» ³ªÅ¸³»´Â ¿ªÇÒÀ» ÇÕ´Ï´Ù. ¿©±â¼ 401(SC_UNAUTHORIZED)´Â Ŭ¶óÀÌ¾ðÆ®°¡ AuthorizationÇì´õ¿¡ À߸øµÈ Á¤º¸¸¦ ³Ö°í ƯÁ¤ÇÑ ÆäÀÌÁö¿¡ Á¢±ÙÇÏ·Á ÇßÀ½À» ÀǹÌÇÏ´Â °ÍÀÔ´Ï´Ù.
±×¸®°í, www-AuthentificateÇì´õ´Â 401»óÅÂÄÚµå ¼³Á¤½Ã ¹Ýµå½Ã ÀÀ´äÀ¸·Î Æ÷ÇÔ½ÃÄÑ¾ß ÇÏ´Â °ÍÀ¸·Î, Authorization ¿äûÇì´õ¿¡ Æ÷ÇÔ½Ãų ÀÎÁõÇü½Ä ¹× ¿µ¿ªÀ» ºê¶ó¿ìÀú¿¡°Ô ¾Ë·ÁÁÝ´Ï´Ù. À§¿¡¼ º¸ÀÚ¸é, ÀÎÁõÇü½ÄÀº BASICÀ̰í, ¿µ¿ªÀº nameÀÎ ¾ÆÀ̵ð¿Í ÆÐ½º¿öµå¸¦ ÀÔ·ÂÇÒ ´ëÈ»óÀÚ¸¦ ¶ç¿ì´Â ¿ªÇÒÀ» ÇÕ´Ï´Ù.
n µÎ¹øÂ° °úÁ¤ºÎÅÍ ¹Ýº¹ ½ÇÇà
¾ÆÀ̵ð¿Í ÆÐ½º¿öµå¸¦ ÀÔ·ÂÇÑ ÈÄ ±×°ÍÀ» ´Ù½Ã base64·Î ÀÎÄÚµùÇϰí, AuthorizationÇì´õ¿¡ ´ã¾Æ¼ ¿äûÀ» º¸³À´Ï´Ù.
´ÙÀ½ÀÇ ¿¹Á¦´Â À§ÀÇ ÀÎÁõÀÇ ÀýÂ÷¸¦ ½ÇÁ¦·Î ±¸ÇöÇÏ¿©, ¾ÆÀ̵ð¿Í ÆÐ½º¿öµå¸¦ °Ë»çÇÏ¿© ¿Ã¹Ù¸£°Ô ÀԷµǾúÀ»¶§¿¡¸¸ ¿øÇÏ´Â ÆäÀÌÁö¿¡ Á¢±ÙÇÒ ¼ö ÀÖ°Ô ÇÏ´Â ÀÎÁõ ¼ºí¸´ÀÔ´Ï´Ù.
|
PassCheck..java |
»ç¿ëÀÚ ÀÎÁõÀ» À§ÇÑ ¼ºí¸´ |
|
| |
|
| |
¿¹Á¦¸¦ ºÐ¼®ÇØ º¸°Ú½À´Ï´Ù. ¸ÕÀú base64¸¦ µðÄÚµùÇϱâÀ§ÇØ BASE64Ŭ·¡½º¸¦ ÀÓÆ÷Æ®Çϰí ÀÖ½À´Ï´Ù.
n import sun.misc.BASE64Decoder;
¿©±â¼ ¿©·¯ºÐÀÌ ÇѰ¡Áö ¾Ë¾ÆµÎ¼Å¾ß ÇÒ Á¡Àº sunÆÐŰÁö¿¡ °üÇÑ ¼³¸íÀº ¿©·¯ºÐÀÌ º¸½Ã´Â Java API Doc¹®¼¿¡¼´Â ±× ¼³¸íÀ» ãÀ¸½Ç ¼ö ¾ø´Ù´Â °ÍÀÔ´Ï´Ù. ºñ·Ï ÀÌ ÆÐŰÁö´Â JDK1.1ÀÌÈÄ ¹öÀü¿¡ ¸ðµÎ Æ÷ÇԵǾî ÀÖÁö¸¸ Sun¿¡¼ °ø½ÄÀûÀ¸·Î ¾²À̵µ·Ï ¸í½ÃÇÏÁö ¾Ê±â¿¡ ±×·¯¸®¶ó º¾´Ï´Ù.
´ÙÀ½À¸·Î Çì´õ¿¡¼ AuthorizationÀ» ¹Þ¾Æ¼ ±× null°ªÀ̸é, ÀÀ´äÀ¸·Î ±× »óŸ¦ ¼³Á¤Çϰí, Çì´õ¸¦ ¼³Á¤ÇÏ¿© ÀÎÁõÀ» À§ÇÑ Ã¢À» ¶ç¿ó´Ï´Ù. °á°ú¸¦ º¸½Ã¸é ¿©±â¼ ¼³Á¤ÇÑ realmÀÌ ¿µ¿ªÀ¸·Î Ç¥½ÃµÇ¾úÀ½À» È®ÀÎÇÒ ¼ö ÀÖ½À´Ï´Ù.
n String authorization = request.getHeader("Authorization");
n if (authorization == null) {
n response.setStatus(response.SC_UNAUTHORIZED);
n response.setHeader("WWW-Authenticate", "BASIC realm=\"novel JSP-Servlet\"");
n }
AuthorizationÇì´õ¿¡ °ªÀÌ ÀÖÀ¸¸é ±× °ªÀ» ¹Þ¾î¼ BASE64Decoder¸¦ »ç¿ëÇÏ¿© µðÄÚµùÇÕ´Ï´Ù. À§¿¡¼ ¼³¸íÇßµí ¾Õ¿¡ ºÙÀº basicÀ̶õ ¸»Àº »©±â À§ÇÏ¿© substringÀ» ÀÌ¿ëÇÏ¿© ¿©¼¸¹øÂ° ±ÛÀÚºÎÅÍ ÀÐ¾î¼ ½ºÆ®¸µÀ¸·Î ÀúÀåÇØ ³õ½À´Ï´Ù.
n String userInfo = authorization.substring(6).trim();
n BASE64Decoder decoder = new BASE64Decoder();
n String info = new String(decoder.decodeBuffer(userInfo));
µðÄÚµùÇÏ¿© ³ª¿Â °á°ú°¡ ¡°id:password¡±·Î ÀÌ·ç¾îÁ®Àֱ⶧¹®¿¡ id¿Í password¸¦ ±¸ºÐÇÏ¿© »ç¿ëÇϱâ À§Çؼ ¡°:¡±À» index·Î ÇÏ¿© ¾Õ°ú µÚ·Î substringÇØ¼ °¢°¢ ÀúÀåÇÕ´Ï´Ù.
n int index = info.indexOf(":");
n String user = info.substring(0, index);
n String password = info.substring(index+1);
ºñ±³ÇÒ ¾ÆÀ̵ð¿Í ÆÐ½º¿öµå¸¦ ÄÚµå ³»¿¡ ½á ³õ¾Ò½À´Ï´Ù. ½ÇÁ¦·Î ÇÑ´Ù¸é µ¥ÀÌÅͺ£À̽º³ª ´Ù¸¥ ´Ù¸¥ ÆÄÀϵ¼ ºÒ·¯¿Í¾ß ÇϰÚÁö¸¸ °£·«ÇÑ ¼³¸íÀ» À§Çؼ ¿©±â¼´Â ¹Ù·Î º¸ÀÌ°Ô ÇØ ³õ¾Ò½À´Ï´Ù. À̰Ͱú »ç¿ëÀÚ°¡ ÀÔ·ÂÇÑ ÀÎÁõÁ¤º¸¿Í ºñ±³ÇÏ¿© ¸ÂÀ¸¸é ¿øÇÏ´Â ÆäÀÌÁö¿¡ Á¢±Ù °¡´ÉÇÏ°í Æ²¸®¸é ´Ù½Ã Çì´õ¸¦ ¼³Á¤ÇÏ´Â ºÎºÐÀ¸·Î °¡°Ô µÇ´Â °ÍÀÔ´Ï´Ù.
n String realUser = "Admin";
n String realPassword = "1234";
n if (realUser.equals(user) && realPassword.equals(password)) {
ÀÌ·¸°Ô HttpÀÇ Çì´õ¸¦ ÀÌ¿ëÇØ¼ ¼ºí¸´ ÀÎÁõ ÆäÀÌÁö¸¦ ¸¸µé¾î º¸¾Ò½À´Ï´Ù. Http ÀÇ »óÅÂ¿Í Çì´õ¸¦ ¼³Á¤ÇÔÀ¸·Î½á ÀÎÁõÆäÀÌÁö¸¦ ¼ºí¸´¿¡¼ »ç¿ëÇÏ´Â ¹æ¹ýÀ» ¾Ë¾Æº» °ÍÀÔ´Ï´Ù. ±×·³ HttpÀÇ »óÅ¿¡ ´ëÇØ¼ Á»´õ ¾Ë¾Æº¸°í ³Ñ¾î°¡°Ú½À´Ï´Ù. HttpÀÇ »óŸ¦ ¼³Á¤ÇÔÀ¸·Î¼ º¸´Ù Æø³ÐÀº ÇÁ·Î±×·¡¹ÖÀ» ÇÒ ¼ö ÀÖ°í, »óÅÂÄڵ带 ºÐ¼® ÇÔÀ¸·Î¼ ¾î¶°ÇÑ °÷¿¡¼ ¿¡·¯°¡ ³µ´ÂÁö, ¾î¶»°Ô °á°ú°¡ 󸮵Ǿú´ÂÁö µÇ¾ú´ÂÁö À¯Ãß°¡ µÇ±â ¶§¹®¿¡ ¾Ë°í °¡½Ã¸é À¯¿ëÇÒ °ÍÀÔ´Ï´Ù.
|
»óÅÂÄÚµåÀÇ Á¾·ù¿Í ±× ÀÇ¹Ì |
|
|
100~199 100¹øÅ ÄÚµåµéÀº Ŭ¶óÀÌ¾ðÆ®°¡ ´ÙÀ½¿¡ ÇൿÇÒ Á¤º¸¸¦ Á¦°øÇÕ´Ï´Ù. 100(continue) : Ŭ¶óÀÌ¾ðÆ®¿¡¼ ÷ºÎ¹®¼(attatched document)¸¦ º¸³»±â Àü¿¡ ¿äûÀ» º¸³¾¶§ ExpectÇì´õ¿¡ ¼³Á¤Çؼ º¸³À´Ï´Ù. 101(switching protocol) : ¼¹ö°¡ UpgradeÇì´õ¿¡ ÀÀ´äÇÒ¼ö ÀÖ°í, ´Ù¸¥ ÇÁ·ÎÅäÄÝ·Î Àüȯ ÇÑ´Ù´Â °ÍÀ» ³ªÅ¸³À´Ï´Ù. | |
|
200~299 ¿äû ¹ÞÀº °ÍÀÌ ¼º°øÀûÀ¸·Î 󸮵ǾúÀ½À» ³ªÅ¸³À´Ï´Ù. 200(OK) : ¸ðµç °ÍÀÌ Á¦´ë·Î 󸮵Ǿú´Ù´Â °ÍÀ» ³ªÅ¸³À´Ï´Ù. 201(Created) : Ŭ¶óÀ̾ðÆ®ÀÇ ¿äû¿¡ ´ëÇØ¼ ¼¹ö°¡ »õ·Î¿î ¹®¼¸¦ »ý¼ºÇÏ¿´´Ù´Â °ÍÀ» ³ªÅ¸³À´Ï´Ù. 202(Accepted) : Ŭ¶óÀ̾ðÆ®ÀÌ ¿äûÀ» ¹Þ¾ÆµéÀ̱⸸ ÇßÀ» »Ó ¾ÆÁ÷ ¿Ï·áµÇÁö ¾ÊÀº »óŸ¦ ³ªÅ¸³À´Ï´Ù. 204(No Content) : »õ·Î¿î ¹®¼°¡ ¾ø¾î¼ ºê¶ó¿ìÀú¿¡°Ô ÀÌÀü ¹®¼¸¦ °è¼Ó Ç¥½ÃÇ϶ó°í ¾Ë·ÁÁÖ´Â °ÍÀÔ´Ï´Ù. 205(Reset Content) : »õ·Î¿î ¹®¼°¡ ¾ø´õ¶óµµ ºê¶ó¿ìÀú¿¡¼ âÀ» ÃʱâÈÇϰí, ¹®¼¸¦ »õ·Î Ç¥½ÃÇÑ´Ù´Â °ÍÀÔ´Ï´Ù. | |
|
300~399 ÆÄÀϵéÀÌ À̵¿µÇ¾úÀ» ¶§ ¾²À̸ç, À̵¿ÇÏ´Â À§Ä¡¸¦ ³ªÅ¸³»´Â Location Çì´õ°¡ ÀÀ´ä¿¡ Æ÷ÇԵ˴ϴÙ. 300(Multiple Choice) : ¿äûµÈ ¹®¼°¡ ¿©·¯°÷¿¡ ÀÖÀ»¶§ ¾î¶² ¹®¼¸¦ ¿øÇÏ´ÂÁö¸¦ ¹¯´Â °ÍÀÔ´Ï´Ù. 301(Moved Permanently) : ¿äûµÈ ¹®¼ÀÇ À§Ä¡°¡ ¿µ±¸ÀûÀ¸·Î º¯ÇßÀ½À» ³ªÅ¸³»´Â °ÍÀÔ´Ï´Ù. 302(Found) : ¿äûµÈ ¹®¼ÀÇ À§Ä¡°¡ ÀÓ½ÃÀûÀ̶ó´Â °ÍÀ» ³ªÅ¸³À´Ï´Ù. 304(Not Modified) : ºê¶ó¿ìÀúÀÇ Ä³½Ã¿¡ µé¾îÀÖ´Â ¹®¼°¡ Ãֽй®¼ÀÌ´Ï ±×°ÍÀ» ±×´ë·Î »ç¿ëÇ϶ó´Â°ÍÀ» ³ªÅ¸³À´Ï´Ù. 305(Use Proxy) : ¿äûµÈ ¹®¼¸¦ ÇÁ·Ï½Ã¸¦ ÅëÇØ¼ Àü¼Û ¹ÞÀ¸¶ó´Â °ÍÀ» ³ªÅ¸³À´Ï´Ù. | |
|
400~499 Ŭ¶óÀÌ¾ðÆ® ¶§¹®¿¡ ³ªÅ¸³ ¿À·ù¸¦ ÀǹÌÇÕ´Ï´Ù. 401(Bad Request) : Ŭ¶óÀÌ¾ðÆ®¿¡¼ À߸øµÈ ±¸¹®À¸·Î ¿äûÇÏ¿´À½À» ³ªÅ¸³À´Ï´Ù. 402(Unauthorized) : Ŭ¶óÀÌ¾ðÆ®°¡ À߸øµÈ ÀÎÁõÁ¤º¸¸¦ Authorization Çì´õ¿¡ ³Ö¾úÀ½À» ³ªÅ¸³À´Ï´Ù. 403(Forbidden) : Ŭ¶óÀ̾ðÆ®ÀÇ ÀÎÁõÁ¤º¸¿¡ »ó°ü¾øÀÌ ÆäÀÌÁö¿¡ ´ëÇÑ Á¢±ÙÀ» °ÅºÎÇÑ´Ù´Â °ÍÀ» ³ªÅ¸³À´Ï´Ù. 404(Not Found) : Ŭ¶óÀÌ¾ðÆ®°¡ ¿äûÇÑ ÀÚ¿ø¿¡ ¼¹ö¿¡ ¾ø´Ù´Â °ÍÀ» ³ªÅ¸³À´Ï´Ù. 408(Request Timeout) : Ŭ¶óÀ̾ðÆ®ÀÇ ¿äûÀ» ±â´Ù¸± ¼ö ÀÖ´Â Á¦Çѽð£ÀÌ Áö³µ´Ù´Â °ÍÀ» ³ªÅ¸³À´Ï´Ù. 410(Conflict) : ¿äûµÈ ¹®¼°¡ »ç¶óÁö°í, »õ·Î¿î ÁÖ¼Ò´Â ¾Ë ¼ö ¾ø´Ù´Â °ÍÀ» ³ªÅ¸³À´Ï´Ù. 413(Request Entity Too Large) : ¿äûµÈ ¹®¼°¡ ¼¹ö°¡ ´Ù·ê ¼ö ÀÖ´Â ¹®¼ÀÇ Å©±âº¸´Ù ÅÀ» ³ªÅ¸³À´Ï´Ù. 415(Unsupported Media Type) : ¿äû¿¡ ÷ºÎµÈ ¹®¼°¡ ¼¹ö°¡ ó¸®ÇÒ ¼ö ¾ø´Â ¹®¼ÀÓÀ» ³ªÅ¸³À´Ï´Ù. | |
|
500~599 ¼¹ö¿¡ ÀÇÇÑ ¿À·ù¸¦ ³ªÅ¸³À´Ï´Ù. 500(Internal Server Error) : ¼¹ö ³»ºÎ¿¡ ¹®Á¦°¡ ÀÖÀ½À» ³ªÅ¸³À´Ï´Ù. 501(Not Implemented) : Ŭ¶óÀ̾ðÆ®ÀÇ ¿äûÀ» ó¸®Çϴµ¥ ÇÊ¿äÇÑ ±â´ÉÀ» ¼¹ö°¡ Áö¿øÇÏÁö ¾ÊÀ½À» ³ªÅ¸³À´Ï´Ù. 502(Bad Gateway) : ¼¹ö°¡ °ÔÀÌÆ®¿þÀÌ ¿ªÇÒÀ» ÇÒ ¶§ ¿ø°Ý¼¹ö·ÎºÎÅÍ À߸øµÈ ÀÀ´äÀ» ¹Þ¾ÒÀ½À» ³ªÅ¸³À´Ï´Ù. 503(Service Unavailable) : ¼¹öÀÇ »çÁ¤À¸·Î ÀÀ´äÇÒ ¼ö ¾øÀ½À» ³ªÅ¸³À´Ï´Ù. | |
| jabookÀúÀÚ¸íÇÔ |
|
Á¦¸ñ:¼Ò¼³°°ÀºJSP1ºÎ ÀúÀÚ:ÃÖ¿µ°ü |