Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 7 Current »

This overview of the Simple Content Storage Protocol (SCSP) methods explains how they map to the corresponding HTTP methods.

SCSP as a subset of HTTP

The mechanism that applications use to communicate with Swarm is a text-based protocol based on HTTP. Known as the Simple Content Storage Protocol (SCSP), the methods and syntax are a proper subset of the HTTP/1.1 standard.

Although many of the optional parts of HTTP/1.1 are not implemented in SCSP (which is why the protocol is referred to as simple), all required protocol components are implemented, as well as several of the common methods.

Swarm assumes communication with an HTTP/1.1 compliant client application.

See Working with Large Objects.

See the /wiki/spaces/DOCS/pages/2443822872 for the API-level implementation of SCSP. The SDK helps developers write integrations to Swarm. The SDK includes sample code in Java, Python, C++, and C#.

Mapping SCSP to HTTP methods

The following table maps SCSP methods to complementary HTTP methods.

SCSP Method

HTTP Method

RFC 7231 Section

READ

GET

4.3.1

INFO

HEAD

4.3.2

WRITE

POST

4.3.3

UPDATE

PUT

4.3.4

DELETE

DELETE

4.3.5

n/a

CONNECT

4.3.6

n/a

OPTIONS

4.3.7

n/a

TRACE

4.3.8

APPEND



COPY



SCSP protocol

Most HTTP communication is initiated by a client application and consists of a request to be applied to an object on a Swarm server. This is performed using a single connection between the client application and the Swarm server. Being HTTP-based, SCSP protocol consists of HTTP requests and responses:

  • Requests are generated by a Swarm client (that is, any HTTP/1.1 client), with these components:

  • Responses are generated by one or more nodes in a storage cluster, with these components:

    • Status line, with the message's protocol version and a success or error code

    • MIME-like message, with server information, entity metadata, and possible entity-body content

See the  HTTP/1.1 specification for the semantics and nuances of HTTP.

  • No labels