The HTTP Artifact Binding uses the Artifact Resolution Protocol and the SAML SOAP Binding (over HTTP) to resolve a SAML message by reference. Consider the following specific example. Suppose a service provider wants to send a codice_17 message to an identity provider. Initially, the service provider transmits an artifact to the identity provider via an HTTP redirect:  Next the identity provider sends a codice_19 request (such as the ArtifactResolveRequest shown earlier) directly to the service provider via a back channel. Finally, the service provider returns a codice_37 element containing the referenced codice_17 message:  Of course the flow can go in the other direction as well, that is, the identity provider may issue an artifact, and in fact this is more common. See, for example, the "double artifact" profile example later in this topic. In general, a SAML 2.0 "artifact" is defined as follows (SAMLBind):  Thus a SAML 2.0 artifact consists of three components: a two-byte codice_39, a two-byte codice_40, and an arbitrary sequence of bytes called the codice_41. These three pieces of information are concatenated and base64-encoded to yield the complete artifact. The codice_39 uniquely identifies the artifact format. SAML 2.0 predefines just one such artifact, of type 0x0004. The codice_40 is a reference to a particular artifact resolution endpoint managed by the artifact issuer (which may be either the IdP or the SP, as mentioned earlier). The codice_41, which is determined by the type definition, is the "meat" of the artifact. The format of a "type 0x0004 artifact" is further defined as follows:  Thus a type 0x0004 artifact is of size 44 bytes (unencoded). The codice_45 is an arbitrary sequence of bytes, although in practice, the codice_45 is the SHA-1 hash of the issuer's entityID. The codice_47 is a random sequence of bytes that references a SAML message that the artifact issuer is willing to produce on-demand. For example, consider this hex-encoded type 0x0004 artifact:  If you look closely, you can see the codice_39 (0x0004) and the codice_40 (0x0000) at the front of the artifact.