Toby Inkster
  • Open Source
  • Hire
  • Blog
  • Now
  • Contact
Home » Blog » Archive » X-Blog-Name

X-Blog-Name

09/01/2008

By Toby Inkster

OK, so the Trackback specification includes the ability for a pinging page to specify its article title and blog name when it sends a trackback ping. However, these fields are optional. When not present, typically the recipient of the ping will then make an HTTP request back to the pinger to determine the article title from the page’s element. But there is no standardised way of determining the blog name — or more generically, because Trackback can be used by sites other than blogs — the name of the “collection of web pages”. </p> <p>The following informal specification suggests a method of determining the name of the collection of documents to which a given HTML document belongs. It also provides a clear way for you to mark your own HTML documents as being part of a particular collection.</p> <p>Determining the Collection for a Given Document</p> <p>Attempt to find the name of the collection in the following places. The first successful result should be considered the name of the collection.</p> <p>Check for the presence of an HTTP Header ‘X-Blog-Name’. If this exists, the value of the header is the name of the collection.<br /> Check for the presence of an HTTP Header ‘Link’, formatted to the specification for HTTP link headers, with a rel value of “blog-name” and with a non-empty “title” value. The name of the collection is the “title” value. Additionally the URL of the main page of the collection can be found in the “href” value.<br /> Check for the presence of an HTML <meta> element with the value of the “name” element of ‘Blog-Name’. If found, the name of the collection can be found in the “content” attribute.<br /> Treating HTML <meta> elements with an “http-equiv” attribute as being equivalent to real HTTP headers, repeat steps #1 and #2.<br /> Check for the presence of an HTML <link> element with a “rel” value of “blog-name” and if found, use the same semantics as #2.<br /> Repeat steps #1 to #5 looking for ‘index’ instead of ‘blog-name’. ‘x-index’ SHOULD NOT be accepted.<br /> Repeat steps #1 to #5 looking for ‘top’ instead of ‘blog-name’. ‘x-top’ SHOULD NOT be accepted.</p> <p>String comparisons for HTTP header names, HTML <meta> name and http-equiv values and Link rel values MUST be case-insensitive.</p> <p>Marking the Collection on your Documents</p> <p>Mark your document with the collection in a manner that can be found using the algorithm described above. Multiple methods MAY be employed, but in this case, note that only the first matching collection name will be used.</p> <p>It is advised that producers take advantage of the HTTP header methods to reduce bandwidth and parsing requirements on the part of the client.</p> <p>Although implementations are required to make string comparisons case-insensitive, producers SHOULD use the case specified in this document for output.</p> </div> <footer> </footer> <section id="comments" class="comments"> </section> </article> </main> <aside class="sidebar col-md-4"> <section class="widget search-2 widget_search"><form role="search" method="get" class="search-form" action="https://toby.ink/"> <label> <span class="sr-only"> Search for: </span> <input type="search" placeholder="Search …" value="" name="s" > </label> <button>Search</button> </form> </section> <section class="widget recent-posts-2 widget_recent_entries"> <h3>Recent Blog Posts</h3> <ul> <li> <a href="https://toby.ink/blog/2023/01/24/perl-testing-in-2023/">Perl Testing in 2023</a> </li> <li> <a href="https://toby.ink/blog/2023/01/09/creating-a-simple-dsl-in-perl/">Creating a Simple DSL in Perl</a> </li> <li> <a href="https://toby.ink/blog/2023/01/02/keeping-your-valuables-under-lock-and-key/">Keeping Your Valuables Under Lock and Key</a> </li> <li> <a href="https://toby.ink/blog/2022/12/30/semver-but-with-extra-steps/">SemVer but with Extra Steps</a> </li> <li> <a href="https://toby.ink/blog/2022/09/16/typetiny-v2-is-coming/">Type::Tiny v2 is Coming</a> </li> <li> <a href="https://toby.ink/blog/2022/08/18/rfc-new-api-for-typeparams/">RFC: new API for Type::Params</a> </li> </ul> </section><section class="widget rss_mastodon-2 widget_rss_mastodon"><h3><a class="rsswidget rss-widget-title" href="https://toots.toby.ink/@tobyink">Thoughts</a></h3><ul><li><a class='rsswidget' href='https://toots.toby.ink/@tobyink/109761379173463643'>27/01/2023 13:22</a><div class="rssSummary"><a href="https://metacpan.org/pod/Exporter" rel="nofollow">https://metacpan.org/pod/Exporter</a>::Almighty — new exporter module for @Perl. Basically a wrapper that sets up Exporter::Tiny for you, defines constants, etc.</div></li><li><a class='rsswidget' href='https://toots.toby.ink/@tobyink/109751168052398492'>25/01/2023 18:05</a><div class="rssSummary">Toad in the Hole #food</div></li><li><a class='rsswidget' href='https://toots.toby.ink/@tobyink/109745462772540061'>24/01/2023 17:54</a><div class="rssSummary">Article on modern @Perl testinghttps://toby.ink/blog/2023/01/24/perl-testing-in-2023/</div></li><li><a class='rsswidget' href='https://toots.toby.ink/@tobyink/109744568636469044'>24/01/2023 14:07</a><div class="rssSummary">I finally have my new glasses!</div></li><li><a class='rsswidget' href='https://toots.toby.ink/@tobyink/109738943515618253'>23/01/2023 14:16</a><div class="rssSummary">I seem to eternally be stuck deciding whether to install `tcsh` on all the machines I have to SSH into, or whether to give up and get used to using `bash` because that's just everywhere already.</div></li></ul></section> </aside> </div> </div> <a href="#" id="return-to-top"><i class="fa fa-arrow-up"></i></a> <script type="text/javascript">jQuery('#return-to-top').hide();</script> <footer class="content-info"> <div class="container"> <section class="widget_text widget custom_html-3 widget_custom_html"><div class="textwidget custom-html-widget"><p class="text-center">Copyright © 1999–2023 Toby Inkster. All rights reserved.</p> <p class="text-center"><small class="text-muted">Toby Ink Ltd is a registered company in England and Wales with company number 12533297.</small></p> </div></section> </div> </footer> <nav id="floating-icons" class="floating-icons-left"><h2><i class="fa fa-bars"></i><span>Quick Links</span></h2><div class="menu-quick-links-container"><ul><li><a href="https://toby.ink/" target="_self" title="About Toby Inkster" data-bs-content="No description." data-bs-trigger="hover" data-bs-toggle="popover"><i class="fa fa-user menu-item menu-item-type-post_type menu-item-object-page menu-item-home"></i> <span>Profile</span></a></li></li><li><a href="https://toby.ink/blog/" target="_self" title="Blog" data-bs-content="No description." data-bs-trigger="hover" data-bs-toggle="popover"><i class="fa fa-wordpress menu-item menu-item-type-post_type menu-item-object-page current_page_parent"></i> <span>Blog</span></a></li></li><li><a href="https://toots.toby.ink/@tobyink" target="_self" title="Mastodon" data-bs-content="No description." data-bs-trigger="hover" data-bs-toggle="popover"><i class="fa fa-rss menu-item menu-item-type-custom menu-item-object-custom"></i> <span>Mastodon</span></a></li></li><li><a href="https://github.com/tobyink" target="_self" title="GitHub" data-bs-content="No description." data-bs-trigger="hover" data-bs-toggle="popover"><i class="fa fa-github menu-item menu-item-type-custom menu-item-object-custom"></i> <span>GitHub</span></a></li></li><li><a href="https://toby.ink/contact/" target="_self" title="Contact" data-bs-content="No description." data-bs-trigger="hover" data-bs-toggle="popover"><i class="fa fa-envelope menu-item menu-item-type-post_type menu-item-object-page"></i> <span>Contact</span></a></li></li></ul></div></nav><script src='https://toby.ink/wp-content/plugins/ctrl-semicolon/js/site.js?ver=1.0' id='ctrl-semicolon-js'></script> <script id='app/0-js-before'> (()=>{"use strict";var e,r={},o={};function t(e){var n=o[e];if(void 0!==n)return n.exports;var a=o[e]={exports:{}};return r[e](a,a.exports,t),a.exports}t.m=r,e=[],t.O=(r,o,n,a)=>{if(!o){var l=1/0;for(s=0;s<e.length;s++){o=e[s][0],n=e[s][1],a=e[s][2];for(var i=!0,f=0;f<o.length;f++)(!1&a||l>=a)&&Object.keys(t.O).every((e=>t.O[e](o[f])))?o.splice(f--,1):(i=!1,a<l&&(l=a));if(i){e.splice(s--,1);var u=n();void 0!==u&&(r=u)}}return r}a=a||0;for(var s=e.length;s>0&&e[s-1][2]>a;s--)e[s]=e[s-1];e[s]=[o,n,a]},t.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return t.d(r,{a:r}),r},t.d=(e,r)=>{for(var o in r)t.o(r,o)&&!t.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:r[o]})},t.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),t.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{var e={666:0};t.O.j=r=>0===e[r];var r=(r,o)=>{var n,a,l=o[0],i=o[1],f=o[2],u=0;if(l.some((r=>0!==e[r]))){for(n in i)t.o(i,n)&&(t.m[n]=i[n]);if(f)var s=f(t)}for(r&&r(o);u<l.length;u++)a=l[u],t.o(e,a)&&e[a]&&e[a][0](),e[a]=0;return t.O(s)},o=self.webpackChunksage=self.webpackChunksage||[];o.forEach(r.bind(null,0)),o.push=r.bind(null,o.push.bind(o))})()})(); </script> <script src='https://toby.ink/wp-content/themes/thyme/public/js/575.4b71f1.js' id='app/0-js'></script> <script src='https://toby.ink/wp-content/themes/thyme/public/js/138.1403a1.js' id='app/1-js'></script> <script src='https://toby.ink/wp-content/themes/thyme/public/js/app.77f069.js' id='app/2-js'></script> </body> </html>