Salmon je protokol pro výměnu zpráv skrze HTTP navržený tak, že umožňuje decentralizované komentáře a oznámení k článkům z newsfeed jako jsou příspěvky na blogu. Umožňuje vznik jednoho společného diskusního vlákna, pro zprávu z původního zdroje a jakéhokoli agregátoru, který zprávy odebírá. Tedy, pokud se článek objevil na 3 stránkách A (zdroj), B a C (agregátory), tak uživatelé na všech 3 stránkách mohou číst a přispívat do jediného diskusního vlákna bez ohledu na to, z jaké stránky se dívají.
Příklad Zdroj poskytuje koncový bod protokolu Salmon – URL v metadatech RSS odběru. Agregující stránka si zaznamená tento koncový bod.
<link rel="salmon" href="http://example.org/salmon-endpoint"/>
Pokud uživatel agregátoru napíše komentář, agregátor vytvoří komentář v původním zdroji. <?xml version='1.0' encoding='UTF-8'?> <entry xmlns='http://www.w3.org/2005/Atom'> <id>tag:example.com,2009:cmt-0.44775718</id> <author><name>[email protected]</name><uri>[email protected]</uri></author> <thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' ref='tag:blogger.com,1999:blog-893591374313312737.post-3861663258538857954'> tag:blogger.com,1999:blog-893591374313312737.post-3861663258538857954 </thr:in-reply-to> <content>Salmon swim upstream!</content> <title>Salmon swim upstream!</title> <updated>2009-12-18T20:04:03Z</updated> </entry>
Komentář bude kódován pomocí Base64, digitálně podepsán, a odeslán pomocí POST na koncový bod původního zdroje.
POST /salmon-endpoint HTTP/1.1 Host: example.org Content-Type: application/atom+xml
<?xml version='1.0' encoding='UTF-8'?> <me:env xmlns:me="http://salmon-protocol.org/ns/magic-env"> <me:data type='application/atom+xml'> PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxlbnRyeSB4bWxucz0naHR0 cDovL3d3dy53My5vcmcvMjAwNS9BdG9tJz4NCiAgPGlkPnRhZzpleGFtcGxlLmNvbSwyMDA5OmNt dC0wLjQ0Nzc1NzE4PC9pZD4NCiAgPGF1dGhvcj48bmFtZT50ZXN0QGV4YW1wbGUuY29tPC9uYW1l Pjx1cmk+Ym9iQGV4YW1wbGUuY29tPC91cmk+PC9hdXRob3I+DQogIDx0aHI6aW4tcmVwbHktdG8g eG1sbnM6dGhyPSdodHRwOi8vcHVybC5vcmcvc3luZGljYXRpb24vdGhyZWFkLzEuMCcNCiAgICBy ZWY9J3RhZzpibG9nZ2VyLmNvbSwxOTk5OmJsb2ctODkzNTkxMzc0MzEzMzEyNzM3LnBvc3QtMzg2 MTY2MzI1ODUzODg1Nzk1NCc+DQogICAgdGFnOmJsb2dnZXIuY29tLDE5OTk6YmxvZy04OTM1OTEz NzQzMTMzMTI3MzcucG9zdC0zODYxNjYzMjU4NTM4ODU3OTU0DQogIDwvdGhyOmluLXJlcGx5LXRv Pg0KICA8Y29udGVudD5TYWxtb24gc3dpbSB1cHN0cmVhbSE8L2NvbnRlbnQ+DQogIDx0aXRsZT5T YWxtb24gc3dpbSB1cHN0cmVhbSE8L3RpdGxlPg0KICA8dXBkYXRlZD4yMDA5LTEyLTE4VDIwOjA0 OjAzWjwvdXBkYXRlZD4NCjwvZW50cnk+ </me:data> <me:encoding>base64url</me:encoding> <me:alg>RSA-SHA256</me:alg> <me:sig> EvGSD2vi8qYcveHnb-rrlok07qnCXjn8YSeCDDXlbhILSabgvNsPpbe76up8w63i2f WHvLKJzeGLKfyHg8ZomQ </me:sig> </me:env>
Komentář je poté zveřejněn původním zdrojem, takže odběratelé mohou aktualizovat stav konverzace. Protokol je zabezpečen tak, že každý agregátor a odběratel je jednoznačně identifikován, takže zdroj může použít filtry nebo ban na nepřátelské servery nebo uživatele dle svého uvážení.
Použití Distribuované sociální sítě jako GNU social a Diaspora používají Salmon tak, jak je definováno ve specifikaci OStatus ke koordinaci diskuse mezi uživateli na různých serverech. Člen jednoho serveru může publikovat příspěvek, který je šířen ostatním uživatelům v síti pomocí protokolu Salmon, kteří na příspěvek mohou obdobným způsobem reagovat.
Související články RSS Atom (standard) Publish Subscribe OStatus
Reference
Externí odkazy Salmon Protocol – Domovská stránka a technické informace k protokolu
Kategorie:HTTP