Important
All commands include specific formats for named objects and for unnamed objects.
When to include domain and Host
The only time domain is required is for an SCSP method on a domain object itself. Neither domain nor Host is required for requests within the default cluster domain; otherwise, the domain name must be passed as the Host in the request. (A cluster should have one domain with the same name as the cluster, which sets up a default cluster domain.)
Client applications most often send the domain name as the Host in the request. When the Host header does not match the domain name, the client can supply the domain argument to explicitly override any value from the Host request header. A domain argument always has precedence over the Host header in the HTTP/1.1 request.
Calling named objects
The named object format is:
METHOD /bucketname/objectname[?query-arguments] HTTP/1.1
where
bucketname is a simple, URL-encoded identifier that cannot contain slash characters (or any other character not allowed in HTTP URLs)
objectname is any legitimate URL, which can contain slash characters
Calling unnamed objects
The unnamed object format is:
METHOD /[uuid][?query-arguments] HTTP/1.1
Specify the UUID with all SCSP methods except WRITE, in which case the cluster returns the UUID in the response if the write is successful.
Important
When writing unnamed objects, use a HOST header equivalent to the cluster name, the host IP address, or a domain=clusterName query argument on all requests even if not using domains for other purposes.
Caution
When writing unnamed objects, ensure the application is not passing a HOST header that is neither an IP address nor a domain that exists in the cluster (unless the host header matches the cluster name). Swarm attempts to look up the non-existent domain on every request and waits for multiple retries before the lookup times out, impacting performance.