ブログシステムが知っていること:知られていないことを明らかにする(3)

ブログシステムが知っていること:知られていないことを明らかにする(3)

男はブログを言う

最后更新 2022/03/08 22:49
汪宇杰博客
预计阅读 8 分钟
分类
共有する。
标签
共有する。

上篇《博客系统知多少:揭秘那些不为人知的学问(二)》介绍了博客的基本功能设计要点,本篇介绍博客的协议或标准。

目次目次

記事が長いため、この記事は以下の4つの記事に分かれています。

  1. “ブログ”の前世
  2. 私のブログストーリー。
  3. ブログの聴衆は誰ですか?
  4. ブログの基本機能設計のポイント
    • 4.1ポスト(Post)
    • 4.2コメントComment
    • 4.3カテゴリ
    • 4.4タグTag
    • 4.5アーカイブArchive
    • 4.6ページPage
    • 4.7 Subscribe
    • 4.8バージョン管理
    • 4.9テーマと個性
    • 4.10ユーザーと権限
    • 4.11プラグイン
    • 4.12写真と添付ファイルの処理
    • 4.13汚い言葉のフィルタリングとコメントのレビュー
    • 4.14スタティック化
    • 4.15通知システム
  5. ブログのプロトコルまたは標準
    • 5.1 RSS
    • 5.2 ATOM
    • 5.3 OPML
    • 5.4 APML
    • 5.5 FOAF
    • 5.6 BlogML
    • 5.7 Open Search
    • 5.8 Pingback
    • 5.9 Trackback
    • 5.10 MetaWeblog
    • 5.11 RSD
    • 5.12 Reader Viewビュー
  6. ブログシステムの設計とは?
    • 6.1タイムゾーンは本当にUTCですか?
    • 6.2 HTMLとMarkdown
    • 6.3 MVCまたはSPA
    • 6.4安全性は
  7. 結びの言葉

5.1略称はRss。

RSS(Really Simple Syndication)は、ブログを含むコンテンツサイトで広く使用されるXMLベースの標準で、1999 年にDave Winerによって発明され、10代のコンピュータ天才 Aaron Swartzが仕様の定義に参加しました。

RSSはブログシステムの最も特徴的な機能の1つであり、ブログでの普及は事実上の標準となっており、RSSのないブログシステムはカメラのない携帯電話を見るのと同じくらい興味深いものです。

RSSファイルの拡張子は通常.rssまたは.xmlであることも、拡張子を持たないこともできます(Moonglade RSSのように)。コンテンツは、タイトル、日時、著者、カテゴリ、要約(全文も可)などの情報を含む、最近公開されたブログ記事のXML記述です。

(图:Moonglade的RSS源)

RSSは機械に書かれており、ウェブサイト間のコンテンツ同期に使用できます。例えば、Renren(旧学校ネットワーク)はRSSを介してブログ記事を日記としてインポートすることができます。一般ユーザーの場合、ブログを購読するためにRSSリーダーアプリが必要です。多くの場合、そのような読者は1つの著者のブログを購読するだけでなく、ユーザーが気にするすべてのブログを購読する。リーダーはしばしばクロスプラットフォーム、クロスデバイスであり、ユーザーはコンピュータ、タブレット、携帯電話、さらにはRaspberry PiでRSSフィードを購読することができます。

(图:2012年我在初代iPad上通过RSS订阅自己博客)

(图:最新版Microsoft 365 Outlook 中RSS订阅我的博客)

一部のブラウザ(初期のFirefoxなど)は、ブログのRSSアドレスを自動的に認識し、ブラウザ内で購読することもできます。自動発見の原理は、ウェブページのヘッダーにそのようなものがあるかどうかを見つけることです:

<link rel="alternate" type="application/rss+xml" title="Edi Wang" href="/rss" />

但是 RSS 有个缺点,它并不能够由服务器主动向客户端推送,而需要靠客户端自动去服务器拉取。而过去 10 年中,随着移动端的兴起,消息推送服务弥补了 RSS 的不足,各大平台也几乎都推出了自己的手机 APP,因此 RSS 已经被许多网站淘汰。但并不意味着 RSS 没用了,至今仍有大量网站仍然提供 RSS 订阅。例如微软 Channel 9 电视台的 RSS: https://channel9.msdn.com/Feeds/RSS/,国内的博客园的 RSS:http://feed.cnblogs.com/blog/sitehome/rss,有意思的是博客园网站的 logo 其实就是个 RSS 图标。

ブログシステムを構築するために、通常はモバイルアプリに特化していないし、ユーザーは各ブログのために別々にアプリをダウンロードすることはなく、ブログシステムと他のブログやウェブサイトはまだ同期する必要があり、すべてのパートナーのための同期プロトコルのセットを開発することは不可能であり、誰もがまだ認識されている標準RSSを使用しているので、RSSは2020 年のブログシステムが記事をプッシュする最良の方法です。

参考:https://en.wikipedia.org/wiki/RSS

5.2愛称はアトム。

ATOMはRSSとほぼ同じ機能を果たしますが、ATOMはRSSの設計上の欠陥を補うために生まれました。例えば、記事の公開日については、ATOMはRFC 3339のタイムスタンプを使用し、RSSはRFC 822標準を使用します。ATOMは記事の言語を識別し、RSSが許可していないX HTML、XML、Base 64エンコードされたコンテンツをペイロードに表示することもできる。

多くのBloggingシステム(私のMoongladeを含む)はRSSおよびATOMフィードの両方を提供する。

参考链接:https://en.wikipedia.org/wiki/Atom_(Web_standard)

5.3 OPMLのこと。

OPMLは、アウトライン(“各ノードが文字列値を持つ名前付き属性のセットを含むツリー”として定義される)のためのXMLフォーマットです。当初はUserLandがRadio UserLand製品でアウトラインアプリケーションのネイティブファイル形式として開発したが、その後他の用途にも使われており、最も一般的なものはウェブフィードアグリゲーター間でウェブフィードのリストを交換することである。

OPML仕様では、アウトラインを任意の要素の階層的な順序付けリストとして定義している。この仕様は非常にオープンであり、多くの種類のリストデータに適用できます。

Mozilla Thun derbirdをはじめとする多くのRSSリーダーのウェブサイトやアプリケーションは、OPML形式でのRSSフィードリストのインポートとエクスポートをサポートしています。”

参考:https://en.wikipedia.org/wiki/OPML

簡単に言えば、ブログのためのOPMLは、このブログのフィードとそれぞれのサブスクリプションアドレスの合計を読者に伝えることです。通常、各記事カテゴリは1つのフィードであり、すべての記事は1つのフィードです。

(图:Moonglade的OPML)

5.4 APMLとは?

APMLはAttention Profiling Mark-up Languageの略で、OPMLよりもあまり知られていません。APMLは現在、インターネット上では非常にまれであり、WPよりも悪い。ブログ業界の歴史的遺跡の一つとして、簡単に紹介します。

OPMLと同様に、XML形式の宣言ファイルであり、個人的に興味のあるものやトピックを記述し、読者やブログシステムがユーザーが興味のあるものにサービスを提供したり、よりターゲットを絞った広告を提供するのに役立つように、他の読者やブロガーと共有する。

参考链接:https://en.wikipedia.org/wiki/Attention_Profiling_Mark-up_Language

Word Pressはプラグイン経由でAPMLを実装でき、BlogEngineはAPMLを内蔵していますが、私のMoongladeはAPMLをサポートしません。

5.5『 FOAF 』

FOAFは、人間の社会的関係を記述した機械向けの文書でもあり、ブロガーと他のブロガーの間の“友情リンク”を表すためにブログで一般的に使用されますが、この友情リンクは機械向けです。マシンがあなたの友人が誰かを理解し、読者にあなたのブログの内容を推薦させるために。

Word PressはプラグインでFOAFを実装できますが、BlogEngineはFOAFをサポートしません。FOAFとAPMLの現状はほぼ同じであり、ほぼ消滅している。

参考链接:https://en.wikipedia.org/wiki/FOAF_(ontology)

5.6 blogMLとは

BlogMLは、クロスブログシステムのデータ標準のセットであり、BlogMLを実装したブログシステムは、言語やプラットフォームが異なっていても、記事やその他のデータを互いにインポートしたりエクスポートしたりすることができます。HTML 5が標準であり、Edge、Chrome、Firefoxがブラウザであるように、HTML 5用に書かれたWebページはこれらのブラウザで動作します。

BlogMLも. NETコミュニティで生まれ、標準に進化しました。独自の. NET BlogEngineのようなシステムに加えて、PHPで書かれたWord PressはBlogMLをサポートしています。Windows Live Spaces、Subtext、DasBlogなどのBlogMLサポートもあります。MoongladeはBlogMLをサポートしません。

BlogMLの標準スキーマは2006 年 11 月 25 日に更新された2.0である。どうやらこの基準ももう

参考:https://en.wikipedia.org/wiki/BlogML

5.7オープン検索の結果

ブログがOpen Search仕様を実装している場合、ブログの検索機能は自動的にユーザーのブラウザに統合され、ユーザーはブラウザのアドレスバーから直接ブログの検索サービスを検索エンジンとして使用できるようになります(BingやGoogleのように)。

Open Searchは2つのステップで実装され、最初にウェブページのヘッダーにopensearch定義ファイルへのリンクを追加します。

<link
  type="application/opensearchdescription+xml"
  rel="search"
  title="Edi Wang"
  href="/opensearch"
/>

Open Searchファイルをエクスポートします。

<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/">
  <ShortName>Edi Wang</ShortName>

  <Description>Latest posts from Edi Wang</Description>

  <image height="16" width="16" type="image/vnd.microsoft.icon"
    >https://edi.wang/favicon.ico</image
  >

  <Url type="text/html" template="https://edi.wang/search/{searchTerms}" />
</OpenSearchDescription>

ファイルには、ブログの名前、プロフィール、アイコン、および検索コンテンツのURLパターンが記述されています。ブラウザがこのファイルを認識すると、自動的に検索エンジンのリストにブログを登録します。読者はブラウザのアドレスバーで直接キーワードを検索し、ブログ独自の検索結果ページを表示することができます。

(图:在地址栏中搜索我博客的内容)

(图:搜索结果页面)

Open Search 的具体规范和标准可参考:https://en.wikipedia.org/wiki/OpenSearch

5.8 Pingbackです。

Pingbackはブログシステム間の通信に使用され、自分の投稿が他人によって参照されるとピンバックリクエストを受信し、自分が他人の投稿を参照すると、相手のブログにピンバックリクエストを送信するので、ピンバックを完了するには自分と相手のブログが共同でピンバックプロトコルをサポートする必要があります。標準プロトコルなので、ピンバックは両方のブログが同じブログプロダクトを使用する必要はありません。例えば、. NET Coreで書かれた私のMoongladeはPHPで書かれたWord Pressと完璧にpingを行います。Pingbackはウェブサイトの種類をブログに制限しません。CMSやコンテンツサイトはPingbackをサポートしたいと思っても大丈夫です。

Pingbackの技術原理も複雑ではない。

** ピンバックリクエストを送信します:*

自分の記事のURL A、反対側の参照先の記事のURL B、リクエストBを取得し、ピンバックターミナルがあるかどうかを確認し、もしあれば、XMLを含むHTTPリクエストを作成します:

<methodCall>
       <methodName>pingback.ping</methodName>
       <param>
              <param><value><string>A</string></value></param>
              <param><value><string>B</string></value></param>
       </param>
</methodCall>

このように、BのサイトはAの記事がBの記事を引用していることを知り、ピンバックを処理した後、Aのサイトに成功したかどうかの応答を与えます。

(图:Moonglade的pingback终端)

** ピンバックリクエストを受け付けます:**

自分の記事のURL Aが他人の記事Bによって参照され、ピンバックXMLを受信します。セキュリティを確保するために、他人のピンバックリクエストが奇妙であるかどうかを確認します。例えば、正常なmethodName、正当な2つのURL、URLが正常にアクセスできるかどうか、奇妙なURL(local hostや攻撃の可能性を持つ特別な構造など)などです。ピンバックリクエストが問題でないことを確認したら、Bのページをリクエストし、BのページのタイトルコンテンツとBのIPアドレスをクロールし、自分のデータベースに記録し、Aの記事に関連付けます。

受信したピンバックは通常、システムとして自動的に投稿の下にコメントを追加しますが、このデザインは仕様の1つではなく、Moongladeのようにピンバックをバックグラウンドでまとめてブログ管理者に表示させるなど、自由にプレイできます。

(图:Moonglade后台管理中查看哪些网站引用了自己博客的文章)

参考:https://en.wikipedia.org/wiki/Pingback

5.9トラックバックのこと。

Trackbackは、あるサイトが別のサイトに更新を通知することを可能にする。これは、ウェブサイトの作成者が誰かが自分のドキュメントにリンクしたときに通知を要求する4種類のリンク方法の1つです。これにより、著者は記事にリンクする人を追跡できます。

参考:https://en.wikipedia.org/wiki/Trackback

機能はPingbackと似ているが、Trackbackは通常手動で送信し、記事の要約を相手に提供する必要がある。Pingbackのプロセスは、両方のブログシステムが完了する完全自動操作です。

5.10 MetaWeblogとは

MetaWeblogはXML-RPCベースのWebサービスであり、記事、カテゴリ、タグなどの一般的なブログコンテンツのCRUDのためのいくつかの標準インターフェイスを定義している。これらのインターフェイスのブログシステムが実装されている限り、ブロガーはブラウザからブログのバックグラウンドにログインして記事を書くのではなく、コンピュータにインストールされたクライアントを使用してブログを書くことができます。主要なクライアントにはWindows Live Writer、Microsoft Wordなどがある。クライアント側では、記事の完全な編集、画像の挿入、カテゴリの設定、さらにはブログのトピックをクライアント側に同期することができます。

古いブログプロトコルの1つのように見えるかもしれませんが、Microsoft 365スイートの最新バージョンは2020 年現在、MetaWeblog APIを実装したブログシステムを完全にサポートしています。

(图:Microsoft Word的博客支持)

MetaWeblogのようなブログAPIとしては、Blogger API、Atom Publishing Protocol、Micropubがある。

参考:https://en.wikipedia.org/wiki/MetaWeblog

私のブログは2012 年に996 0 0 7でMetaWeblog + RSDを完全に実装しましたが、30歳になった今、Live WriterやWordでブログを書いている人が多いので、. NET Coreで実装するつもりはありません。

5.11略称はRSD。

Really Simple Discovery RSDは、ブログやその他のWebソフトウェアによって公開されているサービスをクライアントソフトウェアによって発見できるようにするためのXMLフォーマットおよびパブリッシング規約です。これは、編集/ブログソフトウェアをセットアップするために必要な情報を、ユーザー名、パスワード、ホームページURLの3つのよく知られた要素に減らす方法です。その他の重要な設定は、ウェブサイトに関連するRSDファイルで定義するか、提供された情報を使用して見つけることができます。

RSDを使用するために、ウェブサイトの所有者は、RSDファイルの場所を示すリンクマークをフロントページの先頭に置きます。MediaWikiでの使用例は以下のとおりです。

<link
  rel="EditURI"
  type="application/rsd+xml"
  href="https://en.wikipedia.org/w/api.php?action=rsd"
/>

RSDファイルを使って各種APIのインタフェースを表現します。

<?xml version="1.0"?>

<rsd version="1.0" xmlns="http://archipelago.phrasewise.com/rsd">

    <service>

        <apis>

            <api name="MediaWiki" preferred="true" apiLink="http://en.wikipedia.org/w/api.php" blogID="">

                <settings>

                    <docs xml:space="preserve">http://mediawiki.org/wiki/API</docs>

                    <setting name="OAuth" xml:space="preserve">false</setting>

                </settings>

            </api>

        </apis>

        <engineName xml:space="preserve">MediaWiki</engineName>

        <engineLink xml:space="preserve">http://www.mediawiki.org/</engineLink>

    </service>

</rsd>

参考:https://en.wikipedia.org/wiki/Really_Simple_Discovery

RSDは上記のMetaWeblogインターフェイスとほぼ併用して使用される。Windows Live WriterやMicrosoft Wordなどのツールは、URLを手動で入力することなく、ブログのMetaWeblogサービスを自動的に検出できます。

5.12 Reader Viewビュー

ほとんどのブラウザとクライアントにはリーダービューがあり、読者はブログのページとは全く異なるスタイルのビューで記事を読むことができます。例えば、私のブログ記事の通常のページ長は以下のようです。

(图:Moonglade非阅读器视图文章页)

ブラウザが私のブログのリーダービューを認識し、没入型読書ボタンが点灯します。

(图:Microsoft Edge 浏览器沉浸式阅读按钮)

没入型読書インターフェイスに入ると、ブラウザは自動的に記事の内容を抽出し、記事のタイトル、章、画像を認識し、ナビゲーションバーやサイドバーなどの記事とは無関係な要素を削除し、ユーザーがテキストサイズ、背景色、さらには記事の内容を読むことを制御することができます。

(图:Moonglade 的文章进入沉浸式阅读界面)

私のブログだけでなく、よくデザインされたブログやニュースコンテンツステーションにもReaderビューがあります。

(图:Azure 官方博客阅读器视图)

また、リーダービューをサポートするウェブサイト、SEOは悪くありません。ブログシステムを設計するときは、リーダービューのサポートを検討してください。

** 次の記事は、主にブログシステムの設計知識ポイントを紹介します **

汪宇杰

Keep Exploring

延伸阅读

更多文章
近期更新 2026/05/01

このサイトはついにAIで再構築されました。

Razor Pages、SEO、違法なキーワード検索フィルタリング、ロード最適化、コンテンツのホットアップデート、最小限のテストセット、ウェブストアの使用方法など、Code WFをAIでリファクタリングしました。

继续阅读
近期更新 2026/04/22

バージョン別の. NETサポート状況(250 7 0 7更新)

仮想マシンとテストマシンを使用して、各バージョンのオペレーティングシステムの. NETサポートをテストします。オペレーティングシステムのインストール後、対応するランタイムを測定し、スターダストエージェントをパスとして実行できます。

继续阅读