Internet Engineering Task Force NP. Doty, Ed. Internet-Draft UC Berkeley Intended status: Experimental A. Badr Expires: April 28, 2015 October 25, 2014 Protocol for Open Opt-in Online/Offline Friendship (PO4F) draft-doty-friendship-00 Abstract This document defines a mechanism for discovering endpoints for making friends (friendpoints); an HTTP-based, application-layer method for creating friendships; and requirements for friends. These elements constitute the Protocol for Open Opt-in Online/Offline Friendship (POOOOF, or PO4F). Status of This Memo This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet- Drafts is at http://datatracker.ietf.org/drafts/current/. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." This Internet-Draft will expire on April 28, 2015. Copyright Notice Copyright (c) 2014 IETF Trust and the persons identified as the document authors. All rights reserved. This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of Doty & Badr Expires April 28, 2015 [Page 1] Internet-Draft New Friends Protocol October 2014 the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License. Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 1.1. Requirements Language . . . . . . . . . . . . . . . . . . 2 2. Friendpoint Discovery . . . . . . . . . . . . . . . . . . . . 2 3. Making a Friend . . . . . . . . . . . . . . . . . . . . . . . 3 3.1. Example . . . . . . . . . . . . . . . . . . . . . . . . . 3 4. Friendship . . . . . . . . . . . . . . . . . . . . . . . . . 3 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 4 6. Security Considerations . . . . . . . . . . . . . . . . . . . 4 7. Normative References . . . . . . . . . . . . . . . . . . . . 4 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 4 1. Introduction Friendship has gotten pretty complicated in this day and age. Making new friends is lamentably difficult. We, the authors, are sad and lonely people. What with Facebook and all, and are we networking or flirting or what? To address this problem, we document the following open protocol for making new friends. Users of the Web can discover friendpoints while browsing the Web and direct their user agents to create a new friendship through the method described in the "Making a Friend" section below. 1.1. Requirements Language The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 [RFC2119]. 2. Friendpoint Discovery A server MAY indicate a new friends endpoint (hereafter "friendpoint") with text of a web page describing the results of the action. The following text is RECOMMENDED for English-language servers: + Add me as a friend Italics are OPTIONAL. An exclamation point MAY be added, to indicate an imploring, desperate tone through feigned excitement. The text SHOULD use the imperative mode for the human-readable description. Doty & Badr Expires April 28, 2015 [Page 2] Internet-Draft New Friends Protocol October 2014 No machine-readable means for friendpoint discovery is provided, because machines cannot have friends, cannot experience love and cannot pick you up from the airport. We MUST NOT be friends with robots. 3. Making a Friend To create a friendship with the operator of the server, a user MUST submit an HTTP POST request to the friendpoint. The body of the request SHOULD be empty and servers SHOULD ignore the body of the request, except for any tokens for preventing cross-site request forgery. (See Security Considerations, below.) A server SHOULD respond to the HTTP request with a status code to indicate the success or failure of creating a new friendship between the user and the operator of the server. For success, the server MUST respond with a status code in the 200 series. The following text is RECOMMENDED for the body of the response: We are now friends! 3.1. Example Nick browses to andrewbadr.com with his user agent and sees a link to "+ Add me as a friend". He clicks on the link to submit an HTML form and his user agent sends an HTTP POST request to the friendpoint: POST /friend/ HTTP/1.1 Host: andrewbadr.com And a successful response from the server indicates that Andrew and Nick are now friends: HTTP/1.1 200 OK Date: Wed, 20 August 2008 04:42:29 GMT We are now friends! 4. Friendship In all future interactions after the POST request is completed successfully, the user MUST treat the operator of the server as a friend and the operator of the server MUST treat the user as a friend. A friend MUST say hello and smile when passing you on the street and MUST tell you when there's something stuck to your shirt. A friend SHOULD invite you to social events, stick up for you in arguments with strangers, and visit you if you're in the hospital in the same town. Doty & Badr Expires April 28, 2015 [Page 3] Internet-Draft New Friends Protocol October 2014 A friend also MAY pick you up from the airport, listen to you complain about your significant other, and help you move apartments when you were too cheap to hire someone. A friend MAY drive you out to the edge of town, just anywhere, just to get away, when you feel like you've had enough. A friend MAY commit perjury on the witness stand to protect you. A true friend MAY remember your birthday without Facebook or the use of other friendship protocols. 5. IANA Considerations This document includes no request to IANA. 6. Security Considerations Friendship necessarily involves vulnerability. 7. Normative References [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. Authors' Addresses Nick Doty (editor) UC Berkeley Oakland, California Email: npdoty@ischool.berkeley.edu URI: https://npdoty.name Andrew Badr San Francisco, California Email: andrewbadr@gmail.com URI: andrewbadr.com Doty & Badr Expires April 28, 2015 [Page 4]