I have used blogs for a long time, but realized that I knew nothing about how blog pings work, so I have been investigating since yesterday. Perhaps I am searching poorly, but surprisingly there are few clear, consolidated resources, which has made it difficult.

Because the MyBlog.jp interface also sends the article content, I assumed pings did the same, but apparently they do not. Only the title and the blog URI are sent—not the RDF or RSS URI, but the blog URI.

The server receiving the ping GETs the page at that URI and searches it for lines such as:

<link rel=”alternate” type=”application/rdf+xml” title=”RDF” href=”http://www.sakimura.org/modules/wordpress/wp-rdf.php\” />
<link rel=”alternate” type=”application/rss+xml” title=”RSS 2.0″ href=”http://www.sakimura.org/modules/wordpress/wp-rss2.php\” />
<link rel=”alternate” type=”text/xml” title=”RSS .92″ href=”http://www.sakimura.org/modules/wordpress/wp-rss.php\” />
<link rel=”alternate” type=”application/atom+xml” title=”Atom 0.3″ href=”http://www.sakimura.org/modules/wordpress/wp-atom.php\” />

It then obtains the desired resource file.

The ping itself is sent by POST in the following format.

POST /RPC2 HTTP/1.0
User-Agent: Radio UserLand/7.1b7 (WinNT)
Host: rpc.weblogs.com
Content-Type: text/xml
Content-length: 250

< ?xml version=”1.0″?>
<methodcall>

<methodname>weblogUpdates.ping</methodname>
<params>
<param>
<value>This is the title.</value>
</param>
<param>
<value>http://www.example.com/blogpage.html</value>
</param>
</params>
</methodcall>

The response is:

HTTP/1.1 200 OK
Connection: close
Content-Length: 333
Content-Type: text/xml
Date: Sun, 30 Sep 2001 20:02:30 GMT
Server: UserLand Frontier/7.0.1-WinNT

< ?xml version=”1.0″?>
<methodresponse>
<params>
<param>
<value>
<struct>
<member>
<name>flerror</name>
<value>
<boolean>0</boolean>
</value>
</member>
<member>
<name>message</name>
<value>Thanks for the ping.</value>
</member>
</struct>
</value>
</param>
</params>
</methodresponse>

It takes this form.

I actually sent a ping to blog.goo.ne.jp. It appeared in the Apache log as follows.

(Ping sent here)
blog.goo.ne.jp – – [22/Feb/2005:00:54:55 +0900] “GET /modules/wordpress/index.php
HTTP/1.1” 200 63328 “-” “-”
blog.goo.ne.jp – – [22/Feb/2005:00:54:55 +0900] “GET /modules/wordpress/wp-rss2.ph
p HTTP/1.1” 200 27660 “-” “-”

In summary, it works like this:

\"Blog

Incidentally, in the WordPress ME module for Xoops, this PING is performed by function pingWeblogs($blog_ID = 1) in wp-admin/functions.php.

Next comes Trackback, I suppose….

Related posts