[Áöµð³ÝÄÚ¸®¾Æ]¿ì¸®³ª¶ó¿¡¼´Â ÀÛ³âºÎÅÍ 1ÀÎ ¹Ìµð¾î ¼º°ÝÀÇ ºí·Î±× ¼ºñ½ºµéÀÌ À¯Çàó·³ »ý°Ü³µÁö¸¸ ¹«¾ð°¡ ºüÁø µíÇÑ ´À³¦ÀÌ µé¾ú½À´Ï´Ù. »ç½Ç ´Þ·Â, ²¿¸®¸», Ä«Å×°í¸® ÀÌ·¯ÇÑ °Íµé¸¸À¸·Î »ç¿ëÀڵ鿡°Ô ±âÁ¸ÀÇ °Ô½ÃÆÇ°úÀÇ Â÷º°¼ºÀ» ÀÌÇØ½Ã۱â´Â Èûµì´Ï´Ù. °³ÀÎÀÇ Á¤Ã¼¼ºÀ» ³×Æ®¿öÅ©¸¦ ÅëÇØ Ç¥ÃâÇÏ´Â °Í¿¡ Á¤´äÀÌ ÀÖ´Â °Ç ¾Æ´ÏÁö¸¸ ±âÁ¸ÀÇ ºí·Î±×µéÀº ´õ ¡®ºí·Î±×´ä°Ô¡¯ º¯ÇØ¾ß ÇÒ Çʿ䰡 ÀÖ¾ú½À´Ï´Ù. ±×·¡¼ÀÎÁö ¿äÁò¿¡´Â Æ®·¢¹é, °ü·Ã ±Û µîÀÇ À̸§À¸·Î Æ®·¢¹éÀÌ Áö¿øµÇ´Â ºí·Î±× ¼ºñ½ºµéÀÌ ¸¹ÀÌ µîÀåÇß½À´Ï´Ù.
¡®ºí·Î±×´Ù¿î¡¯ ÀÇ»ç¼ÒÅë ¹æ½Ä
ºí·Î±×¶õ »ç¶÷ÀÔ´Ï´Ù. ´Ù¸¸ Á¸ÀçÇÏ´Â °ø°£ÀÌ ´Ù¸¦ »ÓÀÔ´Ï´Ù. ¿ì¸®´Â ½ÇÁ¦ ¼¼°è¿¡ »ì°í ÀÖÁö¸¸ ºí·Î±×´Â ³×Æ®¿öÅ© »ó¿¡¼ »ì°í ÀÖ½À´Ï´Ù. Á¦°¡ ºí·Î±×¸¦ ¾µ ¶§¸é °¡²û ¾Ö´Ï¸ÞÀÌ¼Ç ¡®°ø°¢±âµ¿´ë¡¯¿¡ ³ª¿À´Â ¡°³×Æ®¿öÅ©·Î ´ÙÀ̺ê(dive)ÇÑ´Ù¡±¶ó´Â ¸»ÀÌ ¶°¿À¸¨´Ï´Ù. ³×Æ®¿öÅ©·Î ´ÙÀ̺êÇØ¼ ³ªÀÇ Á¤Ã¼¼ºÀ» Ç¥ÇöÇÏ°í ³×Æ®¿öÅ©¿¡ ´ÙÀ̺êÇØ¼ µé¾î¿Â ´Ù¸¥ ºí·Î°ÅµéÀ» ¸¸³ª´Â°Ô ºí·Î±ë(blogging)À̶ó°í »ý°¢ÇÕ´Ï´Ù.
±¸Ã¼ÀûÀ¸·Î ¸»ÇÏÀÚ¸é ÀÚ½ÅÀÇ Á¤Ã¼¼ºÀ» Ç¥ÇöÇÑ´Ù´Â °ÍÀº ´ë°³ ±ÛÀÌ µÇ°ÚÁö¸¸ »çÁø, À½¾Ç, µ¿¿µ»ó µî Ãß»óÀûÀÎ ¸ÖƼ¹Ìµð¾î·Îµµ °¡´ÉÇÕ´Ï´Ù. ±âÁ¸ÀÇ À¥ °Ô½ÃÆÇÀ» ÅëÇØ ÀÚ½ÅÀÇ ¸ñ¼Ò¸®¸¦ Ç¥ÇöÇØ ¿Â ³×ƼÁðµé¿¡°Ô´Â ÀÚ½ÅÀÇ Á¤Ã¼¼ºÀ» Ç¥ÇöÇÏ´Â °ÍÀº ÀÚ¿¬½º·´°Ô ¹Þ¾ÆµéÀÏ ¼ö ÀÖ´Â °³³äÀÔ´Ï´Ù.
»ç½Ç ÀÚ½ÅÀÇ Á¤Ã¼¼ºÀ» Ç¥ÇöÇÏ´Â °Íº¸´Ù ´õ Áß¿äÇÑ °ÍÀÌ ¸µÅ©ÀÔ´Ï´Ù. ¿©±â¼ ¸µÅ©¶ó°í ¸»ÇÑ °ÍÀº ´Ü¼øÈ÷ ¿¬°áµÈ »óŸ¸À» ³ªÅ¸³»´Â °ÍÀÌ ¾Æ´Ï¶ó ¿¬°áµÈ »óÅ À§¿¡¼ ÀÌ·ç¾îÁö´Â »óÈ£ ÀÛ¿ë±îÁö Æ÷ÇÔÇÑ ¸»ÀÔ´Ï´Ù. »çȸ¿¡¼ »ç¶÷ÀÌ È¥ÀÚ »ì ¼ö ¾øµíÀÌ ³×Æ®¿öÅ©»ó¿¡¼ ºí·Î±×´Â È¥ÀÚ Á¸ÀçÇÒ ¼ö ¾ø°í ´Ù¸¥ ºí·Î±×µé°ú ¸µÅ©¸¦ ¸¸µé°Ô µË´Ï´Ù.
»ç¶÷µéÀº ¸», ±Û ¶Ç´Â ¸öÁþ µîÀ» ¸Å°³¹°(medium)·Î ÀÚ½ÅÀ» Ç¥ÇöÇÏ°í ´Ù¸¥ »ç¶÷µé°úÀÇ ¸µÅ©¸¦ ¸¸µé¾î °¡Áö¸¸ ºí·Î±×´Â ³×Æ®¿öÅ©¶ó´Â ¾ÆÁ÷Àº ¹Ì¼÷ÇÑ »çȸ¿¡¼ ¸µÅ©¸¦ ¸¸µé¾î°¡¾ß ÇÕ´Ï´Ù. ÀÌ·¯ÇÑ ºí·Î±×°£ÀÇ ¸µÅ© ¿ªÇÒÀ» ÇØÁÙ ¼ö ÀÖ´Â ¸Å°³¹°Àº ²¿¸®¸»(comment), Æ®·¢¹é(trackback), Çιé(pingback) µîÀÌ ÀÖ½À´Ï´Ù. ²¿¸®¸»ÀÇ °æ¿ì ¿ö³« Àͼ÷ÇÑ Ç¥Çö ¹æ¹ýÀ̶ó µû·Î ¼³¸íÀÌ ÇÊ¿ä ¾øÀ» °ÍÀ̰í ÇιéÀº ´Ù¸¥ ºí·Î°ÅÀÇ Æ÷½ºÆÃ(posting, ºí·Î±×¿¡ ¾²¿©Áø ÇϳªÀÇ ±ÛÀ» ÀǹÌÇÔ)À» ¸µÅ©·Î½á ÀοëÇÑ °æ¿ì ¿ø·¡ÀÇ Æ÷½ºÆÃ¿¡ ´ëÇØ ¸µÅ©°¡ °É·È´Ù´Â °ÍÀ» ¾Ë·ÁÁÖ´Â ±â´ÉÀÔ´Ï´Ù.
ÀÌ ±Û¿¡¼ ¼³¸íÇÒ ³»¿ëÀÎ Æ®·¢¹éÀº ¼·Î ´Ù¸¥ À¥ »çÀÌÆ®°£ÀÇ ¾Ë¸²(notification)À» °¡´ÉÇÏ°Ô ÇØÁÖ´Â ±â´ÉÀ¸·Î½á Çιé°ú ºñ½ÁÇÏ°Ô ¿ø·¡ÀÇ Æ÷½ºÆÃ¿¡ ´ëÇØ ¸µÅ©¸¦ ¾Ë·ÁÁÖ±ä ÇÏÁö¸¸ ¿ªÀ¸·Î ÀÚ½ÅÀÇ ÀǰßÀ» ¿ø·¡ÀÇ Æ÷½ºÆÃ¿¡ º¸³¾ ¼ö ÀÖ´Ù´Â Á¡ÀÌ Æ¯Â¡ÀÔ´Ï´Ù.
Æ®·¢¹éÀÇ ¾ÆÀ̵ð¾î´Â ¸Å¿ì °£´ÜÇÏÁö¸¸ ¾ÆÁ÷µµ ¸î¸î À¯¸í ºí·Î±×¿¡ ¡®Æ®·¢¹é Å×½ºÆ®¡¯, ¡®Æ®·¢¹éÀÌ ¹¹Áö?¡¯ µîÀÇ Æ®·¢¹éÀÌ µé¾î¿À´Â °ÍÀ» º¸¸é óÀ½ Á¢ÇÏ´Â »ç¶÷µéÀÌ ÀÌÇØÇϱâ´Â ½±Áö ¾ÊÀº °Í °°½À´Ï´Ù. ÇÊÀÚ ¶ÇÇÑ Ã³À½ Á¢ÇÒ ´ç½Ã ¹«¾ù¿¡ ¾²´Â °ÍÀÎÁö ¹«½¼ Àǹ̸¦ °¡Áö´Â °ÍÀÎÁö ¾Ë¾Æ³»±â À§ÇØ ²Ï³ª °í¹ÎÇß½À´Ï´Ù.
Æ®·¢¹éÀÇ ¿ø¸®
Æ®·¢¹éÀÇ ÇÙ½ÉÀº ¸Å¿ì °£´ÜÇÕ´Ï´Ù. ´©±º°¡ÀÇ ±Û¿¡ ´ëÇØ ÀÚ½ÅÀÇ ºí·Î±×¿¡ ÀǰßÀ» ÇÇ·ÂÇÏ¸é¼ ±× ±Û¿¡ ´ëÇØ ¡°´ç½ÅÀÌ ¾´ ±Û¿¡ ´ëÇØ Á¦°¡ ÀǰßÀ» ½è½À´Ï´Ù. ´ç½ÅÀÌ °ü½ÉÀ» °¡Áú °Í °°¾Æ¼ ÀϺΠ³»¿ë°ú ÇÔ²² ¾Ë·Áµå¸³´Ï´Ù¡±¶ó°í ¾Ë·ÁÁÖ´Â °ÍÀÌ ¹Ù·Î Æ®·¢¹éÀÔ´Ï´Ù. Æ®·¢¹éÀ» »ç¿ëÇÒ ¶§¿Í ±×·¸Áö ¾ÊÀ» ¶§ ¾î¶»°Ô Ä¿¹Â´ÏÄÉÀ̼ÇÀÌ ÀÌ·ç¾îÁö´ÂÁö ¿¹¸¦ µé¾î º¸°Ú½À´Ï´Ù.
¡ß Æ®·¢¹éÀ» »ç¿ëÇÏÁö ¾ÊÀº °æ¿ì
µðÁöÅÐ Ä«¸Þ¶ó(ÀÌÇÏ µðÄ«) Ä¿¹Â´ÏƼ »çÀÌÆ®¿¡¼ Ȱµ¿Çϰí ÀÖ´Â A¿Í B°¡ ÀÖ½À´Ï´Ù. ¾î´À ³¯ A´Â B°¡ ½á³õÀº ±ÛÀ» º¸°Ô µÇ°í B°¡ ÀÚ½ÅÀÌ °¡Áö°í ÀÖ´Â µðÄ«¿Í µ¿ÀÏ ±âÁ¾À» °¡Áö°í ÀÖ°í ±× µðÄ«¿¡ ´ëÇÑ È°¿ëÆÁ µîÀ» Àû¾î ³õÀº °ÍÀ» º¸°Ô µË´Ï´Ù. ÀÌ ±ÛÀ» º» A´Â BÀÇ ±ÛÀÌ »ó´çÈ÷ À¯¿ëÇÏÁö¸¸ ÀÚ½ÅÀÌ ¾Ë°í Àִ Ȱ¿ëÆÁÀÌ ¸î °¡Áö ºüÁø °ÍÀ» º¸°í ´ä±Û ¶Ç´Â ²¿¸®¸» Çü½ÄÀ¸·Î BÀÇ ±ÛÀ» º¸ÃæÇØÁÝ´Ï´Ù.
¡ß Æ®·¢¹éÀ» »ç¿ëÇÑ °æ¿ì
µðÄ«¿¡ ´ëÇØ °ü½ÉÀÌ ÀÖ´Â A¿Í B°¡ °¢ÀÚÀÇ ºí·Î±×¸¦ ¾²°í ÀÖ½À´Ï´Ù. ¾î´À ³¯ A´Â BÀÇ ºí·Î±×¿¡¼ ÀÚ½ÅÀÌ °¡Áö°í ÀÖ´Â µðÄ«¿Í µ¿ÀÏ ±âÁ¾¿¡ ´ëÇÑ È°¿ëÆÁÀ» ÀûÀº ±ÛÀ» º¸°Ô µË´Ï´Ù. A´Â BÀÇ ±Û¿¡ ´ëÇØ ²¿¸®¸»À» ´Þ¾Æ ÀڽŸ¸ÀÌ ¾Ë°í ÀÖ´Â ºÎºÐÀ» º¸ÃæÇÒ ¼öµµ ÀÖÁö¸¸ ±× ±ÛÀÇ Æ®·¢¹é URLÀ» ã¾Æ¼ ÀÚ½ÅÀÇ ºí·Î±×¿¡ ³ª¸ÓÁö Ȱ¿ëÆÁÀ» ÀûÀº ÈÄ B°¡ ÀÚ½ÅÀÇ ±Û¿¡ ´ëÇØ °ü½ÉÀ» °¡Áú °Å¶ó°í »ý°¢Çϰí BÀÇ ±Û¿¡ ´ëÇØ Æ®·¢¹é ÇÎÀ» º¸³À´Ï´Ù.
ÀÌ µÎ °¡Áö ¿¹Á¦´Â À¥ »çÀÌÆ®¿¡ ¿Ã¶ó¿Â ±Û¿¡ ´ëÇØ Æ®·¢¹éÀ» »ç¿ëÇÑ °æ¿ì¿Í »ç¿ëÇÏÁö ¾ÊÀº °æ¿ì ±× ±Û¿¡ ´ëÇØ ÃëÇÒ ¼ö ÀÖ´Â ÇÑ °¡Áö Çൿ ¿¹¸¦ º¸¿© ÁÝ´Ï´Ù. Æ®·¢¹éÀ» »ç¿ëÇÏÁö ¾ÊÀº °æ¿ì¿¡ ºñÇØ Æ®·¢¹éÀ» »ç¿ëÇÑ °æ¿ì°¡ °¡Áö´Â °¡Àå Å« Â÷ÀÌÁ¡Àº ÇϳªÀÇ À¥ »çÀÌÆ® °ø°£(ºí·Î±×)À» ÃÊ¿ùÇÑ A¿Í B »çÀÌÀÇ ¸µÅ©°¡ ¸¸µé¾îÁø´Ù´Â Á¡°ú A´Â ÀÚ½ÅÀÇ °ø°£¿¡¼ ÀÚ½ÅÀÇ ÀǰßÀ» µ¶¸³ÀûÀ¸·Î Ç¥ÇöÇÒ ¼ö ÀÖ´Ù´Â °ÍÀÔ´Ï´Ù.
ÇÁ·ÎÅäÄÝ ¸í¼¼
Æ®·¢¹éÀÇ ÇÁ·ÎÅäÄÝÀº ¸Å¿ì °£´ÜÇÕ´Ï´Ù. HTTPÀÇ POST ¸Þ½îµå¸¦ ÅëÇØ¼ ¸î °¡Áö ÆÄ¶ó¹ÌÅÍ(¸Å°³º¯¼ö)¸¦ º¸³»°í XML·Î µÈ ÀÀ´äÀ¸·Î ¼º°ø, ½ÇÆÐ ¿©ºÎ¸¸ ÆÇ´ÜÇØÁÖ¸é µË´Ï´Ù.
Æ®·¢¹é ÇÎ º¸³»±â
Æ®·¢¹éÀº ±âº»ÀûÀ¸·Î HTTP¸¦ ÀÌ¿ëÇØ¼ º¸³»°Ô µË´Ï´Ù. Trackback 1.0¿¡¼´Â GET ¸Þ½îµå¸¦ ÀÌ¿ëÇØ¼ º¸³»°Ô µÇ¾îÀÖÁö¸¸ ÇöÀç ¾²ÀÌ´Â 1.1¿¡¼´Â POST ¸Þ½îµå¸¦ ÀÌ¿ëÇÏ°Ô µÇ¾î ÀÖ½À´Ï´Ù. Content-Type request header¿Í urlÀ̶õ À̸§ÀÇ ÆÄ¶ó¹ÌÅÍ´Â Çʼö ¿ä¼ÒÀÔ´Ï´Ù. Content-TypeÀº Ç×»ó appli cation/x-www-form-urlencodedÀ̾î¾ß ÇÏ°í ÆÄ¶ó¹ÌÅÍÀÇ charsetÀ» ´ÙÀ½°ú °°ÀÌ Ãß°¡·Î ÁöÁ¤ÇØÁÙ ¼öµµ ÀÖ½À´Ï´Ù.
 | [Ç¥ 1] POST request body·Î º¸³¾ ÆÄ¶ó¹ÌÅÍ |  | |  | |
| | ÆÄ¶ó¹ÌÅ͸í | ¼³¸í | | titile | Æ®·¢¹éÀ¸·Î Àü¼ÛµÇ´Â ±Û Á¦¸ñ | | excerpt | Æ®·¢¹éÀ¸·Î Àü¼ÛµÇ´Â ±ÛÀÇ ÀϺκÐ. Àü¼ÛµÇ´Â ±ÛÀÌ ¹«¾ùÀÎÁö ¾Ë ¼ö ÀÖÀ» Á¤µµÀÇ ¾çÀÌ¸é µÈ´Ù. º¸Åë ±ÛÀÚ¼ö·Î Àß¶ó¼ º¸³»´Âµ¥ movabletype¿¡¼´Â 255ÀÚ°¡ ³Ñ´Â °æ¿ì 252ÀÚ±îÁö ÀÚ¸£°í "..."À» ºÙ¿©¼ º¸³½´Ù. Æ®·¢¹éÀ» À§ÇÑ excerpt¸¦ µû·Î ÀÛ¼ºÇÏ¿© º¸³»µµ µÈ´Ù. | | url | Æ®·¢¹éÀ¸·Î Àü¼ÛµÇ´Â ±ÛÀÇ permalink | | blog_name | Æ®·¢¹éÀ¸·Î Àü¼ÛµÇ´Â ±ÛÀÌ ¾²¿©Áø ºí·Î±× À̸§ | | | | |
| |
¡ß Content-Type
application/x-www-form-urlencoded ¶Ç´Â Content-Type: application/x-www-form-urlencoded; charset=EUC-KR ¶Ç´Â Content-Type: application/x-www-form-urlencoded; charset=UTF-8
POST request body·Î º¸³¾ ÆÄ¶ó¹ÌÅ͵éÀº [Ç¥ 1]°ú °°½À´Ï´Ù. ÀÌ Æ®·¢¹é ¿äûÀ» º¸³»´Â °ÍÀ» ¡®Æ®·¢¹é ÇÎÀ» º¸³½´Ù¡¯¶ó°í ÇÕ´Ï´Ù. ¿¹¸¦ µé¾î ¾î¶² ±ÛÀÌ http://www.anyblog.com/ tb.cgi/7°ú °°Àº Æ®·¢¹é URLÀ» °¡Áö°í ÀÖ´Ù°í ÇÑ´Ù¸é ´ÙÀ½°ú °°Àº HTTP ¿äûÀ¸·Î ±× ±Û¿¡ Æ®·¢¹é ÇÎÀ» º¸³¾ ¼ö ÀÖ½À´Ï´Ù. ¿©±â¼ Æ®·¢¹é URLÀ̶õ Æ®·¢¹é ÇÎÀ» ¹Þ´Â ÇÁ·Î±×·¥ÀÌ ½ÇÇàµÇ´Â URLÀ» ¸»ÇÕ´Ï´Ù.
POST /tb.cgi/7 http/1.1
Host: www.anyblog.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 96
title=hello&excerpt=trackback%20test&url=http://www.mtgear.net/archieve/xx.html&blog_name=mtgear
¾Ë´Ù½ÃÇÇ HTTPÀÇ POST ¸Þ½îµå´Â request body¸¦ ÅëÇØ¼ ÆÄ¶ó¹ÌÅ͸¦ Àü´ÞÇϰí HTTP request¿¡¼ request body°¡ ÀÖÀ» °æ¿ì Content-Length°¡ request body¸¦ ÁöÁ¤ÇØÁà¾ß ÇÕ´Ï´Ù. ¿©±â¼ º¸³»´Â »ç¶÷ÀÇ ºí·Î±×´Â mtgear(http:// mtgear .net)À̰í Á¦¸ñÀÌ hello¶ó´Â ±ÛÀ» ¾²¸é¼ ±Û ³»¿ëÀÇ ¹ßÃéÀÎ ¡®trackback test¡¯¸¦ http://www.anyblog.com/tb.cgi/7À̶õ Æ®·¢¹é URLÀ» °¡Áø ±Û¿¡ Æ®·¢¹é ÇÎÀ» º¸³»´Â °ÍÀÔ´Ï´Ù. Æ®·¢¹é ÇÎÀ» º¸³½ ÈÄ ¼º°øÇÑ °æ¿ì¿¡´Â ´ÙÀ½°ú °°Àº ÀÀ´äÀ» ¹Þ°Ô µË´Ï´Ù.
lt;?xml version=¡±1.0¡± encoding=¡±iso-8859-1¡±?><response><error>0</error> </response>
½ÇÆÐÇÑ °æ¿ì¿¡´Â ´ÙÀ½°ú °°Àº ÀÀ´äÀ» ¹Þ°Ô µÇ°í ¸Þ½ÃÁöÀÇ ÅØ½ºÆ® ¿ä¼Ò(text element)¸¦ ÅëÇØ¼ ¿À·ùÀÇ ¿øÀÎÀ» ¾Ë ¼ö ÀÖ½À´Ï´Ù.
<?xml version=¡±1.0¡± encoding=¡±iso-8859-1¡±?><response><error>1</error> <message>The error message</message></response>
Æ®·¢¹é ÇÎÀ» º¸³»´Â ÇÁ·Î±×·¥ ÀÛ¼º
±×·³ ½ÇÁ¦·Î Æ®·¢¹é ÇÎÀ» º¸³»´Â ÇÁ·Î±×·¥À» ¸¸µé¾î º¾½Ã´Ù. ¾ð¾î´Â ÀÚ¹Ù¸¦ »ç¿ëÇϰڽÀ´Ï´Ù. ¸ÕÀú Æ®·¢¹é ÀÚü¸¦ ³ªÅ¸³»´Â Ŭ·¡½º¸¦ ¸¸µì´Ï´Ù. ÀÌ Å¬·¡½º¿¡¼´Â Æ®·¢¹éÀ» ÅëÇØ¼ º¸³»Áö´Â 4°¡Áö ÆÄ¶ó¹ÌÅÍÀÇ ³»¿ëÀ» ´ã°í ÀÖ½À´Ï´Ù.
| Æ®·¢¹é ÀÚü¸¦ ³ªÅ¸³»´Â Ŭ·¡½º | | | |
package bk.trackback;
public class Trackback {
private String title;
private String excerpt;
private String url;
private String blogname;
public String getBlogname() {
return blogname;
}
public void setBlogname(String blogname) {
this.blogname = blogname;
}
public String getExcerpt() {
return excerpt;
}
public void setExcerpt(String excerpt) {
this.excerpt = excerpt;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
} | |
 |
±×¸®°í ½ÇÁ¦·Î Æ®·¢¹é ÇÎÀ» º¸³»´Â Ŭ·¡½º´Â ´ÙÀ½°ú °°½À´Ï´Ù.
| Æ®·¢¹é ÇÎÀ» º¸³»´Â Ŭ·¡½º | | | |
package bk.trackback;
import java.io.IOException;
import java.net.MalformedURLException;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.methods.PostMethod;
public class TrackbackPing {
private String trackbackURL;
public TrackbackPing(String trackbackURL) throws MalformedURLException {
this.trackbackURL = trackbackURL;
}
public boolean send(Trackback trackback, String charset) throws
IOException {
HttpClient client = new HttpClient();
PostMethod post = new PostMethod(trackbackURL);
if (charset == null) {
post.setRequestHeader(¡°Content-Type¡±, ¡°application/x-www-form-
urlencoded;¡±);
} else {
post.setRequestHeader(¡°Content-Type¡±, ¡°application/x-www-form-
urlencoded; charset=¡± + charset);
}
post.addParameter(¡°url¡±, trackback.getUrl());
post.addParameter(¡°title¡±, trackback.getTitle());
post.addParameter(¡°blog_name¡±, trackback.getBlogname());
post.addParameter(¡°excerpt¡±, trackback.getExcerpt());
int statuscode = client.executeMethod(post);
return statuscode == 200 && (post.getResponseBodyAsString().indexOf
(¡°<error>0</error>¡±) > 0);
}
} | |
 |
¿©±â¼ HTTP ºÎºÐÀº Á÷°üÀûÀ¸·Î ÀÌÇØÇϱ⠽±°Ô Çϱâ À§ÇØ jakarta commonsÀÇ HttpClient¸¦ ÀÌ¿ëÇß½À´Ï´Ù. send() ºÎºÐ¿¡¼ application/x-www-form-urlencodedÀ¸·Î Content-TypeÀ» ¼³Á¤Çϰí request body ºÎºÐÀÇ character setÀ» ¼³Á¤ÇØÁÖ´Â ºÎºÐ°ú Æ®·¢¹éÀ¸·Î Àü¼ÛµÉ 4°¡Áö ÆÄ¶ó¹ÌÅ͸¦ ¼³Á¤ÇÏ´Â ºÎºÐÀÌ ÀÖ½À´Ï´Ù.
Æ®·¢¹é Çο¡ ´ëÇÑ ÀÀ´äÀ¸·Î HTTP response codeÀÎ 200 OK¸¦ ¹Þ´ÂÁö¿Í response body ºÎºÐ¿¡ <error>°¡ 0ÀÎÁö¸¦ °Ë»çÇØ¼ Æ®·¢¹é ÇÎÀÇ ¼º°ø ¿©ºÎ¸¦ ¾Ë ¼ö ÀÖ½À´Ï´Ù. ±×·¯¸é ¾ÕÀÇ Äڵ尡 ½ÇÁ¦·Î ÀÛµ¿ÇÏ´ÂÁö Å×½ºÆ®ÇØ º¾½Ã´Ù. Å×½ºÆ® ÄÚµå´Â junitÀ» ÀÌ¿ëÇØ ÀÛ¼ºÇß½À´Ï´Ù.
| |
package bk.trackback;
import java.io.IOException;
import junit.framework.TestCase;
public class TrackbackPingTest extends TestCase {
public void testSend() throws IOException {
TrackbackPing ping = new TrackbackPing(¡°http://www.anytrackbackurl.com/
tb/tb.cgi/xx¡±);
Trackback trackback = new Trackback();
trackback.setBlogname(¡°Å×½ºÆ®¡±);
trackback.setExcerpt(¡°¾È³çÇϼ¼¿ä¡±);
trackback.setTitle(¡°±×·³¡±);
trackback.setUrl(¡°http://www.bk.com¡±);
assertTrue(ping.send(trackback, ¡°EUC-KR¡±));
}
} | |
 |
¾ÕÀÇ Å×½ºÆ®¿¡¼ TrackbackPingÀÇ constructor¿¡ ÁÖ´Â °ªÀº Æ®·¢¹é URLÀ̾î¾ß ÇÕ´Ï´Ù. ÀÌ Å×½ºÆ®°¡ ¼º°øÇÑ´Ù¸é ½ÇÁ¦·Î Æ®·¢¹éÀÌ º¸³»Áø °ÍÀÔ´Ï´Ù.
Æ®·¢¹é ÇÎ ¹Þ±â
Æ®·¢¹é ÇÎÀ» ¹Þ´Â ÀÔÀå¿¡¼´Â Æ®·¢¹éÀ» ¹Þ¾Æ ÀÚÀ¯·Ó°Ô ÀúÀåÇØ¼ ³ªÁß¿¡ º¸¿©Áֱ⸸ ÇÏ¸é µÇ°í º°´Ù¸¥ Á¦¾à »çÇ×Àº ¾ø½À´Ï´Ù. ´Ù¸¸ ¹Þ´Â ÀÔÀå¿¡¼´Â ±ÛÀ» »ç¶÷ÀÌ ¿Ã¸®´Â°Ô ¾Æ´Ï¶ó ´Ù¸¥ À¥ »çÀÌÆ®¿¡¼ ¿Ã·ÁÁø´Ù´Â °ÍÀÌ ´Ù¸¦ »ÓÀÔ´Ï´Ù.
Æ®·¢¹é ÇÎ ¸ñ·Ï º¸±â
¾î¶² ±Û¿¡ º¸³»Áø Æ®·¢¹éµéÀ» º¸·Á¸é HTTP GET ¸Þ½îµå·Î Æ®·¢¹é URL°ú ÇÔ²² __mode=rss ÆÄ¶ó¹ÌÅ͸¦ °°ÀÌ ÁÖ¸é µË´Ï´Ù. Æ®·¢¹é ÇÎÀÌ POST ¿äûÀ¸·Î º¸³»Áö¹Ç·Î GET ¿äû¸¸À¸·Îµµ Æ®·¢¹é ¸ñ·ÏÀ» º¸¿©Á൵ µË´Ï´Ù. ÇÏÁö¸¸ Æ®·¢¹éÀÌ 1.0¿¡¼ 1.1·Î ¿Ã¶ó¿À¸é¼ GET¿¡¼ POST·Î º¯ÇÑ °ÍÀ̱⠶§¹®¿¡ ¾ÆÁ÷Àº GET ¿äûÀ¸·Î Æ®·¢¹é ÇÎÀ» º¸³»´Â °æ¿ì°¡ ÀÖ´Ù´Â °¡Á¤ ÇÏ¿¡¼ ¾ÕÀÇ ÆÄ¶ó¹ÌÅ͸¦ µû·Î »ç¿ëÇÏ´Â °ÍÀÔ´Ï´Ù. ÇÏÁö¸¸ ÃßÈÄ¿¡ ¹ßÇ¥µÉ Æ®·¢¹é Ç¥ÁØ¿¡¼´Â GET ¿äû¸¸À¸·Î Æ®·¢¹é ¸ñ·ÏÀ» °¡Á®¿Àµµ·Ï ¸í¼¼°¡ º¯ÇÑ´Ù°í ÇÕ´Ï´Ù.
URL ÀÚµ¿ ã±â, ¿ÀÅä µð½ºÄ¿¹ö¸®
Æ®·¢¹éÀ» º¸³»´Â ÀÔÀå¿¡¼ Æ®·¢¹é URLÀ» ÀÏÀÏÀÌ Ã£¾Æ º¹»çÇϱâ¿Í ºÙ¿©³Ö±â ÈÄ Æ®·¢¹é ÇÎÀ» º¸³½´Ù´Â°Ô ²Ï³ª ±ÍÂúÀº ÀÏÀÔ´Ï´Ù. ºí·Î±× ±ÛÀ» ÀÐÀ¸¸é¼ ±× ±Û¿¡ ´ëÇÑ Æ®·¢¹é URLÀ» ÀÚµ¿À¸·Î ã¾ÆÁÖ´Â ±â´ÉÀÌ Àִµ¥ ±×°Ô ¹Ù·Î ¿ÀÅä µð½ºÄ¿¹ö¸®(auto discovery)ÀÔ´Ï´Ù.
ÃÖ±Ù Æ÷ÅÐ »çÀÌÆ®¿¡¼ ¼ºñ½ºÇÏ´Â ºí·Î±×µéÀ» º¸¸é Æ®·¢¹é ¶Ç´Â °ü·Ã ±Û µîÀÇ À̸§À¸·Î Æ®·¢¹éÀÌ Áö¿øµÇ´Âµ¥ ´Ù¸¥ »ç¶÷ÀÇ ºí·Î±×¿¡¼ ±ÛÀ» Àдٰ¡ ¡®°ü·Ã ±Û ¾²±â¡¯ µîÀÇ ¹öưÀ» ´©¸£°í ±ÛÀ» ¾²¸é ±× ±ÛÀÌ ÀÚµ¿À¸·Î ÀÚ½ÅÀÇ ºí·Î±×¿¡ µî·ÏµÇ°í Àаí ÀÖ´ø ±Û¿¡ Æ®·¢¹é ÇÎÀÌ Àü¼ÛµË´Ï´Ù. Àаí ÀÖ´ø ±ÛÀÇ Æ®·¢¹é URLÀ» ¸ô¶óµµ ÀÌ·¸°Ô Æ®·¢¹é ÇÎÀ» Àü¼ÛÇÒ ¼ö ÀÖµµ·Ï ÇØÁÖ´Â ±â´ÉÀÌ ¹Ù·Î ¿ÀÅä µð½ºÄ¿¹ö¸®ÀÔ´Ï´Ù.
ÀÌ´Â Æ®·¢¹é URLÀ» ãµµ·Ï HTML¿¡ ÀÓº£µåµÈ RDF¿Í ±× RDF¿¡¼ Æ®·¢¹é URLÀ» ã¾Æ³»´Â ºÎºÐÀ¸·Î µÇ¾î ÀÖ½À´Ï´Ù. Æ®·¢¹é ÇÎÀ» º¸³»´Â ÀÔÀå, Áï Æ®·¢¹é Ŭ¶óÀÌ¾ðÆ®´Â ºí·Î±× ±Û°ú ÇÔ²² Á¦°øµÇ´Â RDF¿¡¼ ÇØ´ç ±ÛÀÇ Æ®·¢¹é URLÀ» ÃßÃâÇØ ³À´Ï´Ù. ÀÌ·¸°Ô ã¾Æ³½ Æ®·¢¹é URLÀº Àü¿ë Ŭ¶óÀÌ¾ðÆ® ¶Ç´Â À¥ ÇÁ·Î±×·¥À» ÅëÇØ¼ Æ®·¢¹éÀ» º¸³»´Âµ¥ ÀÌ¿ëµË´Ï´Ù. RDF ³»¿¡¼ Æ®·¢¹é¿¡ °ü·ÃµÈ ű״ [Ç¥ 2]¿Í °°Àº µÎ °¡Áö°¡ ÀÖ½À´Ï´Ù.
 | [Ç¥ 2] RDF¿¡¼ Æ®·¢¹é¿¡ °ü·ÃµÈ ÅÂ±× |  | |  | |
| | trackback:ping | Æ®·¢¹éÀ» ¹ÞÀ» ¼ö ÀÖ´Â URLÀ» ³ªÅ¸³»¸ç ¿ÀÁ÷ Çϳª¸¸ ÀÖ´Ù. | | trackback:about | ÇöÀç ±Û¿¡ Àü¼ÛµÈ Æ®·¢¹é ÇÎÀ» º¸³½ °÷ÀÇ Æ®·¢¹é URLÀÌ ³ªÅ¸³ª¸ç ¿©·¯°³°¡ ÀÖÀ» ¼ö ÀÖ´Ù.¿¹¸¦ µé¾î A¿Í B°¡ C¿¡ Æ®·¢¹é ÇÎÀ» Àü¼ÛÇß´Ù¸é CÀÇ trackback:about¿¡ A¿Í BÀÇ Æ®·¢¹é URLÀÌ ³ªÅ¸³´Ù. | | | | |
| |
´ÙÀ½Àº ½ÇÁ¦ ºí·Î±× ±Û¿¡ Æ÷ÇÔµÈ RDFÀÇ ÀϺΠ»ùÇÃÀÌ°í ¿©±â¿¡¼ trackback:pingÀ¸·Î µÈ ºÎºÐ http://mtgear.net/mt/ mt-tb.cgi/200ÀÌ ÀÌ ±Û¿¡ ´ëÇÑ Æ®·¢¹é ÇÎÀ» ¹ÞÀ» Æ®·¢¹é URLÀÔ´Ï´Ù.
| ½ÇÁ¦ ºí·Î±× ±Û¿¡ Æ÷ÇÔµÈ RDF | | | |
<!--
<rdf:RDF xmlns:rdf=¡±http://www.w3.org/1999/02/22-rdf-syntax-ns#¡±
xmlns:trackback=¡±http://madskills.com/public/xml/rss/module/trackback/¡±
xmlns:dc=¡±http://purl.org/dc/elements/1.1/¡±><rdf:Description
rdf:about=¡±http://mtgear.net/archives/000207.php¡±
trackback:ping=¡±http://mtgear.net/mt/mt-tb.cgi/200¡±
dc:title=¡±ÃµÀå¿¡¼ ÂïÀº ³»¸ð½À(?)¡±
dc:identifier=¡±http://mtgear.net/archives/000207.php¡±
dc:subject=¡±²ôÀû²ôÀû¡±
dc:description=¡± ÁøÂ¥·ç?...¡±
dc:creator=¡±wanderer¡±
dc:date=¡±2004-04-05T22:10:08+09:00¡± /></rdf:RDF>
--> | |
 |
Æ®·¢¹éÀÇ È°¿ë
Æ®·¢¹éÀº ¿ø°Ý ²¿¸®¸»°ú ÄÁÅÙÃ÷ ¼öÁý µî°ú °°Àº ¹æ¹ýÀ¸·Î ¸¹ÀÌ È°¿ëµÇÁö¸¸ ±× À̿ܿ¡ ¿©·¯°¡Áö ¹æ¹ýÀ¸·Î Ȱ¿ëµÉ ¼ö ÀÖ½À´Ï´Ù.
¿ø°Ý ²¿¸®¸»
¿ø°Ý ²¿¸®¸»(Remote commenting)Àº ¾î¶² ±Û¿¡ ´ëÇÑ ÀÚ½ÅÀÇ ÀǰßÀ» ±× ±ÛÀÌ ÀÖ´Â °÷¿¡ ´ä±ÛÀ̳ª ²¿¸®¸» µîÀ¸·Î ³²±â´Â ´ë½Å ÀÚ½ÅÀÇ »çÀÌÆ®¿¡ °ü·ÃµÈ ±ÛÀ» ³²±â°í ±× ±ÛÀ» Æ®·¢¹é ÇÎÀ¸·Î º¸³»´Â °ÍÀÔ´Ï´Ù. ÀÌ·¸°Ô º¸³»Áø Æ®·¢¹é ÇÎÀº ¿ÜºÎ »çÀÌÆ®¿¡ ¾²¿©Áø ±ÛÀÌ ¸¶Ä¡ ÀÚ½ÅÀÇ »çÀÌÆ®¿¡ ²¿¸®¸»Ã³·³ ³²°ÜÁö´Â È¿°ú¸¦ ÁÝ´Ï´Ù. ¶ÇÇÑ ÀÌ·¸°Ô Æ®·¢¹éÀ¸·Î ÀÚ½ÅÀÇ URLÀ» º¸³¿À¸·Î½á ºí·Î±×°£ÀÇ ¸µÅ©¸¦ Çü¼ºÇÒ ¼öµµ ÀÖ½À´Ï´Ù.
ÄÁÅÙÃ÷ ¼öÁý
http://www.blogkorea.org°¡ Æ®·¢¹éÀÇ ÄÁÅÙÃ÷ ¼öÁý(content aggregation)À» ÀûÀýÈ÷ Ȱ¿ëÇÑ ¿¹¶ó ÇÒ ¼ö Àִµ¥ Æ®·¢¹éÀ» ¹Þ´Â ÁÖü°¡ ƯÁ¤ ±ÛÀÌ ¾Æ´Ñ ÀÏÁ¾ÀÇ Ãß»óÀûÀÎ Ä«Å×°í¸®°¡ µÉ ¼ö ÀÖ´Ù´Â °ÍÀ» ÀÀ¿ëÇÑ ±â¼úÀÔ´Ï´Ù. ¿¹¸¦ µé¾î ³»°¡ °ü½ÉÀÖ´Â ÁÖÁ¦¿¡ ´ëÇÑ Ä«Å×°í¸®¸¦ ¸¸µé°í ±× Ä«Å×°í¸®¿¡ ´ëÇÑ Æ®·¢¹é URLÀ» °ø°³ÇÑ´Ù¸é ±× ÁÖÁ¦¿¡ ´ëÇØ °øÅë °ü½ÉÀ» °¡Áø »ç¶÷µéÀÌ ÀÚ½ÅÀÇ ºí·Î±×¿¡ ±ÛÀ» ³²±â¸é¼ ±× Ä«Å×°í¸®¿¡ Æ®·¢¹é ÇÎÀ» º¸³»ÁÙ °ÍÀÔ´Ï´Ù. ÀÌ·¸°Ô º¸³»Áø Æ®·¢¹é ÇεéÀº °°Àº °ü½É»ç¿¡ ´ëÇÑ ±ÛÀÏ °ÍÀ̹ǷΠÀÚµ¿À¸·Î °ü·ÃµÈ ±Ûµé, Áï ÄÁÅÙÃ÷¸¦ ¼öÁýÇÒ ¼ö ÀÖ½À´Ï´Ù.
Àû±ØÀûÀ¸·Î Á¤º¸¸¦ Àü´ÞÇÏ´Â Æ®·¢¹é
ÀÚ½ÅÀÇ ÀǰßÀ» Ç¥ÇöÇÏ°í ³²ÀÌ ÀоîÁֱ⸦ ¹Ù¶ó´Â ±âÁ¸ÀÇ Çǵ¿ÀûÀÎ À¥ ÀÌ¿ë ÇàÅÂ¿Í ºñ±³Çغ¸¸é ³ªÀÇ ÀǰßÀ» Àеµ·Ï Àû±ØÀûÀ¸·Î °¿ä(?)ÇÒ ¼ö ÀÖ´Â Æ®·¢¹éÀº ÀÚ±â ÁÖÀåÀÌ ¶Ñ·ÇÇÏ°í ¼ÖÁ÷ÇØÁö´Â ¿äÁîÀ½ÀÇ »çȸ È帧¿¡ Àß ºÎÇÕÇÒ ¼ö ÀÖ´Â ±â´ÉÀÔ´Ï´Ù. ±×¸®°í ¾ÕÀÇ µÎ °¡Áö Æ®·¢¹é ÀÌ¿ë »ç·Ê°¡ ÀÖÁö¸¸ Á¤º¸ÀÇ È帧À» Àû±ØÀûÀ¸·Î ÄÁÆ®·ÑÇÒ ¼ö ÀÖ´Ù´Â Ãø¸éÀº ´õ ³ªÀº ÀÀ¿ë »ç·Ê¸¦ ¸¸µé¾î³¾ ¼ö ÀÖ½À´Ï´Ù. ´õ±º´Ù³ª ÀÌ·± »ý°¢ÀÌ Ç¥ÁØÀ¸·Î ¾î´À °÷¿¡¼³ª Ȱ¿ëµÉ ¼ö ÀÖ´Ù´Â °ÍÀÌ ¾ó¸¶³ª ¸ÚÁý´Ï±î! @
* ÀÌ ±â»ç´Â ZDNet KoreaÀÇ ÀÚ¸ÅÁöÀÎ ¸¶ÀÌÅ©·Î¼ÒÇÁÆ®¿þ¾î¿¡ °ÔÀçµÈ ³»¿ëÀÔ´Ï´Ù.