请检查勘误表自发布以来报告的任何错误或问题。
本规范的英文版是唯一的规范性版本。非正常翻译也可能提供。
版权© 2017W3C公司®(麻省理工学院,ERCIM公司,庆应(Keio),北京航空公司).W3C公司 责任,商标和许可文件许可规则适用。
链接数据通知是一种协议,描述了服务器(接收方)如何让应用程序(发送方)向其推送消息,以及其他应用程序(消费者)如何检索这些消息。任何资源都可以公布消息的接收端点(收件箱)。消息以RDF表示,可以包含任何数据。
状态更新(2017年5月):链接概述图于2017年5月22日固定到位:它们指向错误的内部锚。
状态更新(2017年9月):一个概念URI已于2017年9年9月5日至22日修复到位:它指向了错误的内部URI。
本节描述了本文档发布时的状态。其他文件可能取代本文件。当前列表W3C公司出版物和本技术报告的最新版本可在W3C公司技术报告索引在https://www.w3.org/TR/。
本文件由社交网络工作组作为建议。如果您希望对本文件发表意见,请发送至public-socialweb@w3.org(订阅,档案). 欢迎发表任何意见。
请参阅工作组的执行情况报告.
本文件已由W3C公司成员,由软件开发人员和其他W3C公司团体和感兴趣的各方,并被主任认可为W3C推荐标准。这是一份稳定的文件,可以用作参考材料或从其他文件中引用。W3C公司在制定建议时,其作用是引起人们对规范的关注,并促进其广泛部署。这增强了Web的功能和互操作性。
本文件由一个在2004年2月5日W3C公司专利政策.W3C公司保持一个任何专利披露的公开列表与集团的可交付成果相关;该页还包括披露专利的说明。对个人认为包含的专利具有实际知识的个人基本索赔必须按照第6节W3C公司专利政策.
本文件受2017年3月1日W3C公司工艺文件.
Web上的数据不应锁定在特定系统中,也不应仅由创建它的应用程序读取。用户应该可以在应用程序之间自由切换并在应用程序间共享数据。应用程序生成有关活动、交互和新信息的通知,这些通知可能会显示给用户或进一步处理。
链接数据通知(后勤数字)支持通知的共享和重用穿过应用程序,无论它们是如何生成的。这允许使用更模块化的系统,将数据存储与显示或以其他方式使用数据的应用程序解耦。该协议旨在允许独立实现并运行在不同技术堆栈上的通知的发送方、接收方和消费者无缝协作,有助于分散我们在Web上的交互。
该规范没有将通知视为短暂的或非持久的实体,而是将通知作为具有自己URI的单个实体。因此,可以检索和重用通知。我们支持一系列不同的应用程序域,包括社交和其他应用程序,因此通知的内容由应用程序定义。鼓励对通知进行身份验证和验证,但这样做的机制由接收者和消费者自行决定,因为需要因通知类型和不同的应用程序域而异。
后勤数字是社交网络工作组正在制定的几个相关规范之一。对替代方法和补充协议感兴趣的实施者应首先阅读概述文件社交网络协议本规范中引用了社交网络协议的特定子节,以强调可扩展性或与其他协议的互操作性。
发送方由人工或自动流程触发,向服务器发送通知。通知是供接收者注意的数据,例如:来自朋友的个人消息;pingback链路;博客帖子上的评论;合作邀请;日历提醒;科学观察。
发送方选择要向其发送通知的目标资源;然后发送方会发现目标的位置收件箱,并在那里发送通知。任何资源都可以公布收件箱。接收方公开通知数据(根据适当的访问控制)供消费者使用。
消费者以与发送者相同的方式发现收件箱的位置,并可能对通知进行进一步处理,将其与其他一些数据组合,或只是以合适的人类可读方式呈现。
发送方和消费者发现资源的收件箱通过HTTP中的关系的URL链接资源的标头或正文。
链接
这个发件人:
邮政
这个接收器:
GET(获取)
这个消费者:
后勤数字是链接数据平台的专门用途[低密度聚乙烯]用于发送和使用通知。它不依赖于LDP的完整实现,而是一个易于实现的子集。理解本规范不需要了解LDP,但了解LDP的人会发现一些概念很熟悉。我们描述了以分散、可互操作的方式轻松交换通知所需的特定功能。LDN收件箱与LDP相当基本容器.
基本容器
关键词“必须", "不能", "必修的", "应", "不得", "应该", "不应该", "推荐", "5月“、和”可选“在本文件中,应按照[RFC2119协议]. 除了标记为非规范的章节外,本规范中的所有创作指南、图表、示例和注释都是非规范性的。
LDN实施可能是发送者,接收器或消费者每个角色的一致性标准在本规范的相应章节中进行了描述。
本节描述了通知传递或读取的URL的发现(收件箱)以及交付机制。通知内容如所述有效载荷.
安收件箱可以从任何资源(例如博客帖子、用户配置文件、数据集、视频)中发现通知发送到的端点或使用通知的端点。发现的起点是通知指向或关于的资源:目标。选择从中开始发现的最合适的目标资源由发送方或使用者自行决定,因为任何资源(RDF或非RDF)都可能有自己的收件箱。
发件人和消费者执行以下操作以发现收件箱URL:
头部
相对
http://www.w3.org/ns/ldp#收件箱
这些操作可以按任意顺序进行,但如果第一个操作无法生成收件箱,则第二个操作无法完成必须被审判。发送者和使用者应该省略链接使用片段标识符专门针对URI时的标头发现。
如果目标包含片段标识符,则该片段不是对服务器的请求的一部分。发件人和消费者应注意链接标头将用于解析的URL,没有碎片。请参见[语义Web的酷URI-哈希URI].
一种资源必须只公布一个收件箱。一个收件箱5月被多个资源使用,例如,使用同一个收件箱回复我的所有博客帖子和共享我的所有照片。
发现示例1:链接标头
标题/文章HTTP/1.1 主持人:example.org 接受:application/ld+json HTTP/1.1 200正常 链接:<http://example.org/incbox/>; rel=“http://www.w3.org/ns/ldp#收件箱"
标题/文章HTTP/1.1
主持人:example.org
接受:application/ld+json
HTTP/1.1 200正常
链接:<http://example.org/incbox/>; rel=“http://www.w3.org/ns/ldp#收件箱"
发现示例2:JSON-LD
GET/配置文件HTTP/1.1 主持人:example.org 接受:application/ld+json HTTP/1.1 200正常 内容类型:application/ld+json { “@context”:“http://www.w3.org/ns/ldp", “@id”:“http://example.org/profile", “收件箱”:“http://example.org/incbox/" }
GET/配置文件HTTP/1.1
内容类型:application/ld+json
{
“@context”:“http://www.w3.org/ns/ldp",
“@id”:“http://example.org/profile",
“收件箱”:“http://example.org/incbox/"
}
发现示例3:可见HTML
GET/event HTTP/1.1 主持人:example.org 接受:text/html,application/ld+json HTTP/1.1 200正常 内容类型:text/html;字符集=utf-8 <p关于=“http://example.org/event“typeof=”http://schema.org/Event(http://schema.org/Event)“lang=”en“> <a rel=“http://www.w3.org/ns/ldp#收件箱“href=”/inbose/“>RSVP发送至活动 </p>
GET/event HTTP/1.1
接受:text/html,application/ld+json
内容类型:text/html;字符集=utf-8
<p关于=“http://example.org/event“typeof=”http://schema.org/Event(http://schema.org/Event)“lang=”en“>
<a rel=“http://www.w3.org/ns/ldp#收件箱“href=”/inbose/“>RSVP发送至活动
</p>
发现示例4:不可见HTML
GET/文章HTTP/1.1 主持人:example.org 接受:text/html,application/ld+json HTTP/1.1 200正常 内容类型:text/html;字符集=utf-8 <link href=“/inbox/”rel=“http://www.w3.org/ns/ldp#收件箱" />
GET/文章HTTP/1.1
<link href=“/inbox/”rel=“http://www.w3.org/ns/ldp#收件箱" />
发现示例5:不可见HTML
获取/文章HTTP/1.1 主持人:example.org 接受:text/html,application/ld+json HTTP/1.1 200正常 内容类型:text/html;字符集=utf-8 <section id=“results”about=“#results(#结果)” 属性=“http://www.w3.org/ns/ldp#收件箱“resource=”/收件箱/“> </section>
获取/文章HTTP/1.1
<section id=“results”about=“#results(#结果)”
属性=“http://www.w3.org/ns/ldp#收件箱“resource=”/收件箱/“>
</section>
财产
发现示例6:海龟
获取/HTTP/1.1 主持人:csarven.ca 接受:text/curl,application/ld+json HTTP/1.1 200正常 内容类型:文本/乌龟;字符集=utf-8 <http://csarven.ca/#i> <http://www.w3.org/ns/ldp#收件箱> <http://csarven.ca/inbox/> .
获取/HTTP/1.1
主持人:csarven.ca
接受:text/curl,application/ld+json
内容类型:文本/乌龟;字符集=utf-8
<http://csarven.ca/#i>
<http://www.w3.org/ns/ldp#收件箱> <http://csarven.ca/inbox/> .
请参阅社交网络协议有关如何执行发现的建议,特别是考虑到可能不知道该协议的服务器。
以下发现,要发送通知的发件人必须通过邮政请求收件箱URL。发件人可以期望201创建(带有位置链接标头)或202接受响应成功的请求。
201创建
位置
202接受
发件人5月使用选项请求来确定服务器接受的RDF内容类型,并根据接受-发布收割台[接受-发布]返回。否则,的主体邮政请求必须包含通知有效载荷JSON-LD格式带收割台内容类型:application/ld+json. The内容类型收割台5月包括一个轮廓URI(URI)[RFC6906号文件].
选项
接受-发布
内容类型
轮廓
发件人5月包括用于认证或授权目的的附加报头或内容,例如。,授权:持票人XXX.
授权:持票人XXX
如果发送方有任何在本地主机上侦听不需要身份验证的服务,则有可能在收件箱端点上运行恶意脚本,从而导致发送方执行任意邮政请求自身。发件人不应该制作邮政对收件箱的请求是本地主机或环回IP地址。
发送示例请求
POST/收件箱/HTTP/1.1 主持人:example.org 内容类型:application/ld+json;profile=“https://www.w3.org/ns/activitystreams网站" 内容-语言:英语 { “@context”:“https://www.w3.org/ns/activitystreams网站", “@id”:“”, “@type”:“宣布”, “演员”:“https://rhiaro.co.uk/#me", “对象”:“http://example.net/note", “目标”:“http://example.org/article", “更新”:“2016-06-28T19:56:20.114Z” }
POST/收件箱/HTTP/1.1
内容类型:application/ld+json;profile=“https://www.w3.org/ns/activitystreams网站"
内容-语言:英语
“@context”:“https://www.w3.org/ns/activitystreams网站",
“@id”:“”,
“@type”:“宣布”,
“演员”:“https://rhiaro.co.uk/#me",
“对象”:“http://example.net/note",
“目标”:“http://example.org/article",
“更新”:“2016-06-28T19:56:20.114Z”
发送示例响应
HTTP/1.1 201已创建 位置:http://example.org/inbox/5c6ca040
HTTP/1.1 201已创建
位置:http://example.org/inbox/5c6ca040
接收器必须支持GET(获取)和邮政收件箱URL上的请求。 在LDP术语中,收件箱是集装箱.
收到后岗位请求,如果通知资源处理成功,则接收方必须用状态代码响应201创建以及位置标题设置为可从中检索通知数据的URL(请参见消费者). 如果请求排队等待异步处理,则接收方必须以状态代码响应202接受并在响应正文中包含有关请求状态的信息。
岗位
对通知实施约束的接收器(请参阅约束条件)应该如果不满足约束,则无法处理通知并返回相应的4倍错误代码。
4倍
接收器必须接受请求正文为JSON-LD的通知内容类型:application/ld+json,其中5月包括一个轮廓URI(URI)[RFC6906号文件].
接收器5月接受其他RDF内容类型(例如。,文本/乌龟,文本/html),如果是,应该用接受-发布[接受-发布]标头响应选项对收件箱URL的请求。
文本/乌龟
文本/html
接收器示例1:选项响应
选项/收件箱/HTTP/1.1 主持人:example.org HTTP/1.1 200正常 允许:GET、HEAD、OPTIONS、POST Accept-Post:application/ld+json,text/turl
选项/收件箱/HTTP/1.1
允许:GET、HEAD、OPTIONS、POST
Accept-Post:application/ld+json,text/turl
接收方示例2:回复后
POST/收件箱/HTTP/1.1 主持人:example.org 内容类型:application/ld+json;profile=“https://www.w3.org/ns/activitystreams网站" 内容-语言:英语 { “@context”:“https://www.w3.org/ns/activitystreams网站", “@id”:“”, “@type”:“宣布”, “演员”:“https://rhiaro.co.uk/#me", “对象”:“http://example.net/note", “目标”:“http://example.org/article", “更新”:“2016-06-28T19:56:20.114Z” } HTTP/1.1 201已创建 位置:http://example.org/inbox/92d72f00
位置:http://example.org/inbox/92d72f00
一个成功的GET(获取)收件箱上的请求必须返回aHTTP 200正常具有通知URI,取决于请求者的访问权限(返回4倍错误代码)。接收器5月仅列出收件箱中消费者能够访问的通知的URI。 收件箱URL必须使用http://www.w3.org/ns/ldp#包含谓词引用通知。
HTTP 200正常
http://www.w3.org/ns/ldp#包含
每次通知必须成为RDF源。如果返回非RDF资源,则使用者5月忽略它们。一个成功的GET(获取)请求通知URI必须返回aHTTP 200正常以请求者的访问权限为准(返回4倍错误代码)。
JSON-LD内容类型必须可用于所有资源,但客户端可以发送接受首选其他内容类型的标题(RFC7231协议第3.4节-内容谈判)。 如果客户端没有发送接受标头,服务器可以JSON-LD或任何忠实地传递相同信息的格式(例如Turtle)发送数据。
接受
有关收件箱本身的任何其他说明5月也会被退回(例如。,约束条件).
本规范没有定义分页机制来为收件箱中的通知列表提供服务。希望启用分页的实现可能希望使用现有机制来实现高效检索,例如。,链接数据平台寻呼1.0,Activity Streams 2.0集合.
接收方示例3:获取响应
GET/inbox/HTTP/1.1 主持人:example.org 接受:application/ld+json 接受语言:en-GB,en;q=0.8,en-US;q=0.6 HTTP/1.1 200正常 内容类型:application/ld+json 内容-语言:英语 { “@context”:“http://www.w3.org/ns/ldp", “@id”:“http://example.org/incbox/", “包含”:[ "http://example.org/inbox/5c6ca040", "http://example.org/inbox/92d72f00" ] }
GET/inbox/HTTP/1.1
接受语言:en-GB,en;q=0.8,en-US;q=0.6
“@id”:“http://example.org/incbox/",
“包含”:[
"http://example.org/inbox/5c6ca040",
"http://example.org/inbox/92d72f00"
]
接收器应该验证通知的发送者。例如:
接收器应该使用约束以筛选在服务器上创建并由收件箱公开的未经授权的通知。
接收方可以考虑在收件箱URL上实现访问控制,以限制写入受信任发件人的白名单。
消费者通过制作GET(获取)请求收件箱URL(要查找此URL,请参阅发现).
通知的URI必须通过http://www.w3.org/ns/ldp#包含收件箱URL的谓词(请参见例子用于收件箱内容)。
当检索收件箱或单个通知时,消费者应该显式设置接受标头指示首选内容类型,包括JSON-LD。获取单个通知(如果有)、数量或根据特定标准(例如,内容长度、时间戳),由消费者自行决定。
消费者5月包括用于身份验证或授权的其他标题或内容。
消费者5月根据他们的判断,从有效载荷执行额外的信息获取或推断(例如,取消引用通知中引用的资源以获取其内容)。消费者5月还希望在进一步处理或使用之前,根据收件箱宣布的任何约束检查通知。
获取的通知URI可以包含带有一个或多个主题IRI的RDF语句不同的来自请求的URI本身。消费者也不应假设通知中包含任何以请求的URI作为主题的三元组。当通知正文使用相对IRI时,这也是相关的。实现可能希望将通知URI视为包含来自通知负载的RDF的图。
消费者应该知道,任何东西都可以发布到收件箱中(取决于接收者的限制,而这些限制不是由本协议定义的),因此,在使用通知数据时,消费者可能希望在确定内容的准确性时采取预防措施。
消费者示例:获取通知
GET/inbox/14a792f0 HTTP/1.1 主持人:example.org 接受:application/ld+json,text/turtle,application/xhtml+xml,text/html 接受语言:en-GB,en;q=0.8,en-US;q=0.6 HTTP/1.1 200正常 内容类型:application/ld+json;profile=“https://www.w3.org/ns/activitystreams网站" 内容-语言:英语 { “@context”:[ "https://www.w3.org/ns/activitystreams网站", {“@language”:“en”} ], “@id”:“http://example.org/inbox/14a792f0", “@type”:“宣布”, “演员”:{ “@id”:“http://csarven.ca/#i", “name”:“萨文·卡帕迪斯利” }, “对象”:{ “@context”:“http://www.w3.org/ns/anno.jsonld", “@id”:“http://example.net/note", “@type”:“注释”, “动机”:“http://www.w3.org/ns/oa#评估", “权利”:“http://creativecommons.org/licenses/by/4.0/" }, “目标”:“http://example.org/article", “已更新”:{ “@type”:“http://www.w3.org/2001/XMLSchema#dateTime", “@value”:“2016-06-28T19:56:20.114Z” } }
GET/inbox/14a792f0 HTTP/1.1
接受:application/ld+json,text/turtle,application/xhtml+xml,text/html
“@context”:[
"https://www.w3.org/ns/activitystreams网站",
{“@language”:“en”}
],
“@id”:“http://example.org/inbox/14a792f0",
“演员”:{
“@id”:“http://csarven.ca/#i",
“name”:“萨文·卡帕迪斯利”
},
“对象”:{
“@context”:“http://www.w3.org/ns/anno.jsonld",
“@id”:“http://example.net/note",
“@type”:“注释”,
“动机”:“http://www.w3.org/ns/oa#评估",
“权利”:“http://creativecommons.org/licenses/by/4.0/"
“已更新”:{
“@type”:“http://www.w3.org/2001/XMLSchema#dateTime",
“@value”:“2016-06-28T19:56:20.114Z”
通知的有效负载必须为JSON-LD,除非与接收方协商了其他RDF语法。为了允许各种各样的用例,这里故意不指定有效负载的实际词汇表。
本节不规范。
有效载荷示例1
{ “@context”:“网址:http://schema.org/", “@id”:“http://example.net/note#foo", “引文”:{“@id”:“http://example.org/article#结果" } }
“@context”:“网址:http://schema.org/",
“@id”:“http://example.net/note#foo",
“引文”:{“@id”:“http://example.org/article#结果" }
有效载荷示例2
{ “@context”:“https://www.w3.org/ns/activitystreams网站", “@id”:“”, “@type”:“宣布”, “演员”:“https://rhiaro.co.uk/#me", “对象”:“http://example.net/note", “目标”:“http://example.org/article", “更新”:“2016-06-28T19:56:20.114Z” }
有效载荷示例3
{ “@context”:{“pingback”:“http://purl.org/net/pingback/" }, “@id”:“”, “@type”:“pingback:Item”, “pingback:source”:{“@id”:“http://example.net/note#foo" }, “pingback:target”:{“@id”:“http://example.org/article#结果" } }
“@context”:{“pingback”:“http://purl.org/net/pingback/" },
“@type”:“pingback:Item”,
“pingback:source”:{“@id”:“http://example.net/note#foo" },
“pingback:target”:{“@id”:“http://example.org/article#结果" }
有效载荷示例4
{ “@context”:“网址:http://schema.org/", “@id”:“”, “@type”:“RsvpAction”, “事件”:{“@id”:“http://example.org/event" }, “代理”:{“@id”:“https://rhiaro.co.uk/#me" } }
“@type”:“RsvpAction”,
“事件”:{“@id”:“http://example.org/event" },
“代理”:{“@id”:“https://rhiaro.co.uk/#me" }
通知可能包含任意信息,包括对具有自己URI的多个资源的引用,而不必引用数据的一个特定外部资源或源。当消费者请求此类通知时,接收方将返回最初发送的所有三元组。
有效载荷示例5
{ “@context”:{ “@language”:“en”, “sioc”:“http://rdfs.org/sioc/ns#", “foaf”:“http://xmlns.com/foaf/0.1/" }, “@id”:“”, “@type”:“sioc:Comment”, “sioc:reply_of”:{“@id”:“http://example.org/article" }, “sioc:created_at”:{ “@type”:“http://www.w3.org/2001/XMLSchema#dateTime", “@value”:“2015-12-23T16:44:21Z” }, “sioc:content”:“这是一篇很棒的文章!”, “sioc:has_creator”:{ “@id”:“http://example.org/profile", “@type”:“sioc:UserAccount”, “sioc:account_of”:{“@id”:“http://example.org/profile#alice" }, “sioc:avatar”:{“@id”:“http://example.org/profile/avatar.png" }, “foaf:name”:“Alice” } }
“@context”:{
“@language”:“en”,
“sioc”:“http://rdfs.org/sioc/ns#",
“foaf”:“http://xmlns.com/foaf/0.1/"
“@type”:“sioc:Comment”,
“sioc:reply_of”:{“@id”:“http://example.org/article" },
“sioc:created_at”:{
“@value”:“2015-12-23T16:44:21Z”
“sioc:content”:“这是一篇很棒的文章!”,
“sioc:has_creator”:{
“@type”:“sioc:UserAccount”,
“sioc:account_of”:{“@id”:“http://example.org/profile#alice" },
“sioc:avatar”:{“@id”:“http://example.org/profile/avatar.png" },
“foaf:name”:“Alice”
有效载荷示例6
{ “@context”:[{“prov”:“http://www.w3.org/ns/prov#"}], “@id”:“http://example.org/activity/804c4e7efaa828e146b4ada1c805617ffbc79dc7", “@type”:“prov:Activity”, "http://www.w3.org/2000/01/rdf-schema#标签": { “@language”:“en”, “@value”:“顺其自然” }, “prov:endedAtTime”:{ “@type”:“http://www.w3.org/2001/XMLSchema#dateTime", “@value”:“2016-06-14T20:57:39.000Z” }, “prov:生成”:{ “@id”:“http://example.org/entity/804c4e7默认值828e146b4ada1c805617ffbc79dc7", “@type”:“prov:Entity”, “prov:specializationOf”:{“@id”:“http://example.org/entity/file" }, “prov:wasGeneratedBy”:{ “@id”:“http://example.org/activity/804c4e7efaa828e146b4ada1c805617ffbc79dc7" } }, “prov:wasAssociatedWith”:{ “@id”:“http://csarven.ca/#i", “@type”:“prov:Agent”, "http://xmlns.com/foaf/0.1/name": { “@language”:“hy”, “@value”:“ՍարվէնՉափատիշլի” } } }
“@context”:[{“prov”:“http://www.w3.org/ns/prov#"}],
“@id”:“http://example.org/activity/804c4e7efaa828e146b4ada1c805617ffbc79dc7",
“@type”:“prov:Activity”,
"http://www.w3.org/2000/01/rdf-schema#标签": {
“@value”:“顺其自然”
“prov:endedAtTime”:{
“@value”:“2016-06-14T20:57:39.000Z”
“prov:生成”:{
“@id”:“http://example.org/entity/804c4e7默认值828e146b4ada1c805617ffbc79dc7",
“@type”:“prov:Entity”,
“prov:specializationOf”:{“@id”:“http://example.org/entity/file" },
“prov:wasGeneratedBy”:{
“@id”:“http://example.org/activity/804c4e7efaa828e146b4ada1c805617ffbc79dc7"
“prov:wasAssociatedWith”:{
“@type”:“prov:Agent”,
"http://xmlns.com/foaf/0.1/name": {
“@language”:“hy”,
“@value”:“ՍարվէնՉափատիշլի”
本节不规范。安全和隐私的规范性要求在最适用的规范章节中列出。
收件箱URL可以宣布自己的限制(例如。,SHACL公司,Web注释协议)通过HTTP链接带有相对的值http://www.w3.org/ns/ldp#constrainedBy网站。发送方应遵守约束规范,否则接收方可能会拒绝其通知并返回适当的4倍错误代码。
http://www.w3.org/ns/ldp#constrainedBy网站
发布“收件箱”(目标)广告的资源的发布者应该在他们信任的服务器上发布。发布者必须知道,第三方对标题或内容的访问可能会导致通知被重定向。
本规范描述了消费者如何通过拉但是,消费者可能希望将传入的通知或对收件箱内容的更改推送给他们。同样,接收者可能希望请求特定发送者发出通知。这种订阅机制被排除在范围之外,但并不禁止发送方、接收方和消费者做出这种安排。希望启用订阅的实现可能希望使用现有机制,例如。,活动Pub,网站订阅,WebSocket协议,HTTP Web推送.
希望支持的接收器实现Activity Streams 2.0核心可以看到社交网络协议-收件箱互操作内容类型和词汇等效。
在联邦网络中建立国际用户基础非常重要。一些LDN交互可以返回自然语言文本的内容,例如HTML片段或摘要字段。提供每个项目的多种语言表示可能不可能在所有情况下都可行。鼓励实现提供发现可用语言和/或协商返回语言的方法,例如使用HTTP接受语言标头,用于协商并选择要为给定请求发送的最合适的语言表示。
接受语言
如果接收方希望发送方或使用者进行身份验证,则应在返回任何其他数据(包括其他错误代码)之前检查其凭据的有效性。例如,接收方应不首先检查收件箱是否存在并返回404未找到如果请求者尚未得到验证。
404未找到
涉及令牌传递的身份验证必须通过HTTPS完成。
这些问题概述了本规范的安全和隐私注意事项自我审查问卷:安全和隐私.
该规范发展到建议建议,每个功能至少有两个独立的、可互操作的实现。每个功能都由一组不同的产品实现。没有要求所有功能都需要由单个产品实现。
为了评估退出标准,以下每一项都被视为一项功能:
我们感谢并感谢以下人员对本规范的贡献:
REC-ldn-20170502←PR-ldn-20170321号←CR-ldn-20170223←CR-ldn-20161101号←WD-ldn-20161011号←WD-ldn-20160926号←WD-ldn-20160913号←WD-ldn-20160824号←WD-ldn-20160726号
↑