{"action":"closed","issue":{"url":"https://api.github.com/repos/w3c/web-annotation/issues/51","labels_url":"https://api.github.com/repos/w3c/web-annotation/issues/51/labels{/name}","comments_url":"https://api.github.com/repos/w3c/web-annotation/issues/51/comments","events_url":"https://api.github.com/repos/w3c/web-annotation/issues/51/events","html_url":"https://github.com/w3c/web-annotation/issues/51","id":93612661,"number":51,"title":"avoid constraining HTTP","user":{"login":"dret","id":1848612,"avatar_url":"https://avatars.githubusercontent.com/u/1848612?v=3","gravatar_id":"","url":"https://api.github.com/users/dret","html_url":"https://github.com/dret","followers_url":"https://api.github.com/users/dret/followers","following_url":"https://api.github.com/users/dret/following{/other_user}","gists_url":"https://api.github.com/users/dret/gists{/gist_id}","starred_url":"https://api.github.com/users/dret/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dret/subscriptions","organizations_url":"https://api.github.com/users/dret/orgs","repos_url":"https://api.github.com/users/dret/repos","events_url":"https://api.github.com/users/dret/events{/privacy}","received_events_url":"https://api.github.com/users/dret/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/w3c/web-annotation/labels/protocol","name":"protocol","color":"0052cc"},{"url":"https://api.github.com/repos/w3c/web-annotation/labels/question","name":"question","color":"c040c0"}],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":29,"created_at":"2015-07-07T19:45:19Z","updated_at":"2015-09-09T18:16:58Z","closed_at":"2015-09-09T18:16:58Z","body":"http://www.w3.org/TR/2015/WD-annotation-protocol-20150702/#http-requirements has MUSTs in there that try to constrain HTTP servers. this is not something that HTTP servers reasonably can be required to do. more specifically, clients should have no knowledge of \"specific servers\" anyway; they simply follow links and interact via HTTP to accomplish application goals. they may interact with one or various \"specific servers\" along the way, and the web thrives because clients are *not* tightly coupled to specific servers. clients send self-contained HTTP requests and then have to handle requests individually. no assumptions should be made that go beyond the single request/response scope.\r\nfor example, the WD says \"All supported methods for interacting with the Annotation Container MUST be advertised in the Allow header of all responses from the container.\" this constrains HTTP which defines a MAY (http://tools.ietf.org/html/rfc7231#section-7.4.1), and it does not accomplish anything because in the end, clients can try any method and servers can change their minds between request/response interactions. so in the end maybe \"Allow\" can be a helpful hint, but it's optional, not reliable, and clients still have to deal with servers responding with 405s (which per HTTP spec then MUST have \"Allow\")."}}