Trackback‎ > ‎

Trackback 1.2


Trackback Ping의 전송

트랙백은 표준 HTTP 호출을 통해서 요청이 이루어지는 REST모델을 사용합니다. 트랙백 핑을 전송하기 위해서, 클라이언트는 서버에게 표준 HTTP 요청을 전송하고, 간단한 XML 형태의 응답을 받게 됩니다.

트랙백 핑을 받는 URL을 trackback ping URL이라고 합니다. 일반적으로 트랙백 핑URL은 'http://www.elex.pe.kr/trackback/5'와 유사한 형식이며, 여기서 5는 트랙백 ID입니다. 서버에서는 다양한 URL 형식으로 구현할 수 있으므로 클라이언트 구현시에 특정 형식으로 한정해서는 안됩니다.

핑을 전송하기 위해서 클라이언트는 HTTP POST 요청을 트랙백 핑 URL로 전송합니다. 클라이언트는 HTTP 헤더에 Content-type을 포함해야 하며, 이 값은 application/x-www-form-urlencoded로 설정되어야 합니다. 또한 전송하는 정보의 문자 인코딩을 charset 속성에 명시해야 합니다.

핑 요청의 예

POST http://www.elex.pe.kr/trackback/5
Content-type: application/x-www-form-urlencoded; charset=utf-8
title=트랙백+테스트&url=http://www.elex.pe.kr/test&excerpt=This+Is+A+Track+Test&blog_name=Elex's+Blog
전송할 내용

모든 항목의 값들은 charset에서 명시한 인코딩을 사용해야 합니다.

트랙백 규약에서는, 각 항목의 값에 대해서 길이를 제한하지 않습니다. 다만, 서버 구현시에 일부가 짧게 잘려지거나 특정 항목이 무시될 수 있습니다.

  • title
게시물의 제목.

  • excerpt
게시물 본문 내용의 발췌.

  • url
게시물의 영구링크. 영구링크는 HTML 페이지상의 실제 게시물에 대한 위치를 가리키는 링크주소를 사용해야 합니다. 반드시 전송해야 하는 항목입니다. 클라이언트가 URL을 전송하지 않은 때에 서버는 에러 메시지를 전송해야 합니다.

  • blog_name
게시물이 작성된 블로그의 이름.

응답

핑 전송이 성공한 경우에 서버는 다음과 같은 형태의 응답을 반환해야 합니다.
<?xml version="1.0" encoding="utf-8"?>
<response>
   <error>0</error>
</response>

핑 전송이 실패한 경우에 서버는 다음과 같은 형태의 응답을 반환해야 합니다.
<?xml version="1.0" encoding="utf-8"?>
<response>
   <error>1</error>
   <message>에러 메시지</message>
</response>


문서 내에서 트랙백 핑 URL을 자동으로 탐색하도록 만드는 방법

클라이언트는 블로그 등의 게시물에 포함된 여러 URL 중에서 트랙백 핑 URL을 골라낼 수 있는 방법이 필요합니다. 이를 지원하기 위해서는 서버가 페이지를 생성할 때에 RDF 정보를 페이지 내에 포함하도록 해야 합니다. RDF는 클라이언트가 트랙백 핑 URL을 자동으로 탐지하는데 필요한 게시물에 관한 메타 데이터 정보로 구성됩니다.

RDF의 예

<!--
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
     xmlns:dc="http://purl.org/dc/elements/1.1/"
     xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
<rdf:Description
     rdf:about="http://www.elex.pe.kr/entry/88"
     dc:identifier="http://www.elex.pe.kr/entry/88"
     dc:title="트랙백 테스트"
     trackback:ping="http://www.elex.pe.kr/trackback/88" />
</rdf:RDF>
-->

브라우저에 따라, XHTML 내에 포함되는 RDF에 대해서 예상치 못한 결과가 발생할 수도 있으므로 <!-- -->를 사용해서 주석 처리하는 방법도 나쁘지 않습니다.

dc:는 표준 Dublin Core 요소입니다.

trackback:ping은 RSS 1.0/2.0을 위한 트랙백 모듈로부터 정의된 요소입니다.

클라이언트의 처리 과정

클라이언트는 주어진 'url'의 페이지 내용을 얻기 위해 HTTP GET요청을 전송합니다.
페이지의 내용 중에 포함된 RDF를 찾습니다. 페이지에 포함된 RDF가 여러 개일 수도 있으므로, 클라이언트는 dc:identifier가 해당 'url'과 일치하는 RDF 블록을 찾아야 합니다.
RDF 블록 중에서 trackback:ping의 값을 추출합니다. 이 값이 트랙백 핑 URL입니다.
클라이언트는 추출한 주소로 트랙백 핑을 전송할 수 있습니다.

Comments