'TB'에 해당되는 글 1건

  1. 2008.10.08 [雜物] TrackBack 에 대한 메모

[雜物] TrackBack 에 대한 메모

雜物 2008. 10. 8. 15:18 posted by 무명시인



트랙백의 원리
트랙백의 핵심은 매우 간단합니다. 누군가의 글에 대해 자신의 블로그에 의견을 피력하면서 그 글에 대해 “당신이 쓴 글에 대해 제가 의견을 썼습니다. 당신이 관심을 가질 것 같아서 일부 내용과 함께 알려드립니다”라고 알려주는 것이 바로 트랙백입니다. 트랙백을 사용할 때와 그렇지 않을 때 어떻게 커뮤니케이션이 이루어지는지 예를 들어 보겠습니다. 


 프로토콜 명세
트랙백의 프로토콜은 매우 간단합니다. 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을 다음과 같이 추가로 지정해줄 수도 있습니다.

◆ 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을 가진 글에 트랙백 핑을 보내는 것입니다. 트랙백 핑을 보낸 후 성공한 경우에는 다음과 같은 응답을 받게 됩니다.

<?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>