티스토리 뷰

TrackBack의 이해

원본 : http://www.sixapart.com/pronet/docs/trackback_spec

번역 : 킬크(keunpark@gmail.com)


TrackBack
의 기술적 정의


이 문서는 TrackBack에 대한 것을 설명한 것이며, TrackBack은 웹사이트 사이의 P2P 통신과 이를 알리는 프레임웍이다. TrackBack의 원리는
TrackBack Ping이라는 요청의 원리에 출발한다. , 어떤 자원 A는 다른 자원 B에 연관되거나 연결되어 있다고 알리는 것이다. TrackBack이라는 것은 표준 URITrackBack Ping URL에 의해 표현되는 자원이라고 정의할 수 있다.


TrackBack
을 이용하면, 웹사이트들은 서로 연관된 자원끼리 통신이 가능하다. 예를 들면, 어떤 블로거 A가 블로거 B에게 자신이 A의 포스트에 관심이나 관계가 있는 포스팅을 했음을 알리고 싶다면, 블로거 A는 블로거 B에게 TrackBack Ping을 보낸다. 이런 행위는 다음의 두 가지를 수행하게 된다.


1.
     
블로거 B는 그의 블로그에 올린 특정 글이 언급이 된 모든 사이트들을 자동적으로 리스팅할 수 있으며, 블로거 B의 사이트를 방문하는 모든 사람들에게 블로거 A의 글을 포함한 모든 관련된 글을 보여줄 수 있다.

  2.       TrackBack Ping은 블로거 B와 블로거 A에게 견고하고 명확한 링크를 제공하는데, 이는 리퍼러로그 같은 외부적인 방문자의 행동을 일방적으로 기록하는 링크와는 대조적으로 제공하게 된다. 상호성이 존재하는 링크이다.


TrackBack Ping
보내기


TrackBack
REST 모델을 사용하는데, REST는 표준 HTTP를 통한 요청을 말한다. TrackBack Ping을 보내기 위해서 클라이언트는 서버에 표준 HTTP 요청을 하고, 간단한 XML 포맷의 응답을 받게 된다.

TrackBack 시스템에서 TrackBack Ping을 받는 URLTrakback Ping URL이라고 한다. http://www.example.com/trackback/5같은 형식으로 되어 있다. 여기서 5TrackBack ID이다. 서버는 TrackBack Ping URL이 어떤 포맷이라도 이해할 수 있도록 되어 있으며, 그러므로 클라이언트는 특정 포맷에 의존적이지 않아도 된다.


Ping
을 보내려면 클라이언트는 TrackBack Ping URL HTTP POST 요청을 보낸다. 이때 클라이언트는 반드시 Content-Type HTTP 헤더를 보내야 하는데,
application/x-www-form-urlencoded의 형식으로 보내야 한다. 또 보내는 콘텐츠에는 제목, 인용포스트, 블로그명을 콘텐트 타입 헤더에 정의된 캐릭터셋으로 보내야 한다.


예를 들자면 다음과 같다.


  POST http://www.example.com/trackback/5

  Content-Type: application/x-www-form-urlencoded; charset=utf-8

 

  title=Foo+Bar&url=http://www.bar.com/&excerpt=My+Excerpt&blog_name=Foo


요청 가능한 콘텐트 파라미터는 다음과 같다.


1.
     
Title(제목)

TrackBack 포스팅의 제목


2.
     
Excerpt(인용문)

  인용문의 제목


3.
     
URL

해당 포스팅의 Permalink


4.
     
Blog Name

TrackBack을 보낸 포스트의 블로그명


위의 모든 항목들은 반드시 캐릭터셋에 명시된 방법으로 인코딩해서 보내야 한다.


TrackBack
프로토콜에서 각 필드들의 길이 제한은 없으나, 서버는 임의로 길이를 제한하여 자르거나 무시할 수 있다.


성공적으로 Ping을 받게되면, 서버는 반드시 다음과 같은 포맷으로 응답을 주어야 한다.
  <?xml version="1.0" encoding="utf-8"?>

  <response>

  <error>0</error>

  </response>


만일 Ping이 실패하게 되면, 서버는 다음과 같은 HTTP 응답을 보내야 한다.
 
<?xml version="1.0" encoding="utf-8"?>

  <response>

  <error>1</error>

  <message>The error message</message>

  </response>

반응형
댓글