사용하게 되었고 무었인지 모르는 상태에서 하나씩 배워서 해야했다 그래서 이번엔 트랙백에 대해
알아보고 있지만.. 흠... 뭐랄까.. 더 알아봐야겠다
-------------------------------------------------------------------------------------------------------
트랙백(trackback) 이란?
트랙백은 원격 댓글을 쓰고 이를 알려주는 기능입니다. 초
기 블로그에는 없던 새로운 기능입니다. 트랙백은 댓글(reply, 답글), 덧글(comment, talkback 등) 기능의
확장판이라고 보면 됩니다. 기존의 답글과 덧글은 해당 게시판에 독자가 게시물을 읽고 난 뒤 답변이나 감상문을 적는 기능입니다.
따라서 덧글은 해당 게시물 밑에만 남겨집니다. 트랙백은 이보다 좀더 개선된 기능으로 다른 곳에 댓글을 남기는 기능입니다.
그렇다면 트랙백이라는 기능은 왜 만든 것이며 그 의미는 무엇일까요? 트랙백을 만든 이유와 그 의미는 '내가 쓴 글을 다른 사람에게 알리기 위함'입니다. 트랙백은 이를 지원하기 위한 기능이죠. 트랙백은 다른 사람이 쓴 블로그 문서에 자신이 원격 댓글을 달았다는 사실을 알려주는 행위를 말합니다.
[트랙백 과정]
1. A가 자신의 블로그에 '한글날'에 대한 글을 올렸다.
2. B가 A의 블로그에 올라간 글을 보고 자신의 블로그에 '한글날' 글에 대한 소감을 적어 글을 올렸다.
3. B는 A의 블로그에 트랙백 핑(TrackBack Ping)을 보내 자신의 블로그에 A가 쓴 '한글'에 대하여 코멘트를 달았음을 알려준다.
4. A는 자기가 쓴 '한글날' 게시물에 달린 트랙백을 통해 B가 B의 블로그에 '한글날'과 관련된 글을 올렸다는 사실을 알 수 있습니다.
핑은 작은 문장을 뜻하며 트랙백 핑은 트랙백을 알려주는 작은 문장입니다.
트랙백을 건 다음에는 트랙백 핑(TrackBack Ping)이라고 부르는 작은 메시지를 상대편에게 보내줍니다. 물론 이는 프로그램이 알아서 자동으로 보내줍니다. 트랙백을 건 사람은 원 게시물 작성자에게 트랙백 핑을 보내 자신의 사이트에 관련 코멘트를 달았다는 사실을 알리는 겁니다.
트랙백 핑을 주고받는 절차는 아래와 같다.
구분선 기준으로 왼쪽이 트백백 클라이언트, 오른쪽이 트랙백 서버이다.

자바를 이용한 트랙백 클라이언트 구현예는 다음과 같다. Commons HttpClient 라이브러리를 활용한다.
public void testTrackbackWorks() {
post.getParams().setParameter(HttpMethodParams.RETRY_HANDLER,
new DefaultHttpMethodRetryHandler(3, false));
post.addRequestHeader("Content-Type",
"application/x-www-form-urlencoded; charset=utf-8");
new NameValuePair("ttle", "Foo+Bar"),
new NameValuePair("url", "http://www.bar.com/"),
new NameValuePair("excerpt", "My+Excerpt"),
new NameValuePair("blog_name", "Foo")
};
System.out.println("STATUS: " + statusCode);
System.err.println("Method failed: " + post.getStatusLine());
}
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally{
post.releaseConnection();
}
그리고 다음은 자바를 이용한 트랙백 서버의 구현예이다.
public class TrackBackController extends AbstractController {
protected ModelAndView handleRequestInternal(HttpServletRequest request,
HttpServletResponse response) throws Exception {
logger.debug("url" + request.getParameter("url"));
logger.debug("excerpt: " + request.getParameter("excerpt"));
logger.debug("blog_name: " + request.getParameter("blog_name"));
+ "<response><error>0</error></response>";
response.getWriter().flush();
}
}
아래는 트랙백 서버에서 트랙백 클라이언트가 보낸 트랙백 핑에 의한 블로그 반영결과를 트랙백 클라이언트에 되돌려 주는 결과 메시지를 나타낸 것이다.


