Standards and specifications

HTTP 451 Detection Framework

IETF99 451hackathon

Observation reporting JSON format

Specified to support reports from both probe devices and browser plugins:


        {
          date: 2017-07-14T02:26:46.681Z,
          creator: [tool name, string],
          version: [tool version, string],
          reporter [opt]: [uuid, generated and persisted by crawler instance],
          url: 'https://example.com',
          status: 451,
          statusText: 'Unavailable For Legal Reasons',
          blockedBy: 'https://example.com',
          clientIP [opt]: '192.0.2.4',
          clientLocation [opt]: {FIXME:locality/state/country?},
          originIP [opt]: '192.0.2.207'
        }



        who are the parties involved?
         * origin -- server that returns 451
         * observer -- HTTP client that receives 451
         * submitter -- party submitting observation to the collector(may be the same party as the observer, may be some mixing proxy, etc)
         * collector -- aggregator/republisher of observations
      

HTTP 451 Transparency Self-reporting Submission Format

Specified for e.g. WordPress HTTP 451 plugin:

          Format for DECLARING RESTRICTIONS (Wordpress CMS etc. self-reporting):

          { date: 2017-07-14T02:26:46.681Z,
            creator: [tool name, string],
            version: [tool version, string],
          reporter: ,
          property: 'https://example.com',
          resources: [resource-array],
        }

        Resource:

            {
        url: "",
        status: 451 OR 200,
        startDate:,
        endDate:[opt? meaningful?],
        description: "free-form text description of scope, eg. country, region, authority, until policy group decides on structured fields for this"
        }