SMO: HTTP schema
Lo schema Service Message Object (SMO) contiene altri schemi, compreso quello che descrive l'intestazione HTTP.
Introduzione
Lo schema HTTP specifica la struttura generale dell'intestazione HTTP.
HTTP schema di intestazione
<schema xmlns="http://www.w3.org/2001/XMLSchema"
xmlns:httpsca="http://www.ibm.com/xmlns/prod/websphere/http/sca/6.1.0"
xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
ecore:package="com.ibm.websphere.http.headers"
ecore:nsPrefix="httpsca"
elementFormDefault="qualified"
targetNamespace="http://www.ibm.com/xmlns/prod/websphere/http/sca/6.1.0">
<element name="HTTPMessageHeader" type="httpsca:HTTPMessageParameters"/>
<complexType name="HTTPMessageParameters">
<sequence>
<element minOccurs="0" nillable="true" name="HTTPControl" type="httpsca:HTTPControl"/>
<element minOccurs="0" nillable="true" name="HTTPHeaders" type="httpsca:HTTPHeaders"/>
</sequence>
</complexType>
<complexType name="HTTPControl">
<sequence>
<element minOccurs="0" nillable="true" name="URL" type="anyURI"/>
<element minOccurs="0" nillable="true" name="Version" type="httpsca:HTTPVersion"/>
<element minOccurs="0" nillable="true" name="Method" type="string"/>
<element minOccurs="0" nillable="true" name="DynamicOverrideURL" type="anyURI"/>
<element minOccurs="0" nillable="true" name="DynamicOverrideVersion" type="httpsca:HTTPVersion"/>
<element minOccurs="0" nillable="true" name="DynamicOverrideMethod" type="string"/>
<element minOccurs="0" nillable="true" name="MediaType" type="string"/>
<element minOccurs="0" nillable="true" name="Charset" type="string"/>
<element minOccurs="0" nillable="true" name="TransferEncoding" type="string"/>
<element minOccurs="0" nillable="true" name="ContentEncoding" type="string"/>
<element minOccurs="0" name="StatusCode" type="int"/>
<element minOccurs="0" nillable="true" name="ReasonPhrase" type="string"/>
<element minOccurs="0" nillable="true" name="Authentication" type="httpsca:HTTPAuthentication"/>
<element minOccurs="0" nillable="true" name="SSLSettings" type="httpsca:HTTPSSLSettings"/>
<element minOccurs="0" maxOccurs="2" nillable="true" name="ProxySettings" type="httpsca:HTTPProxySettings"/>
</sequence>
</complexType>
<complexType name="HTTPHeader">
<sequence>
<element name="name" type="string"/>
<element name="value" type="string"/>
</sequence>
</complexType>
<complexType name="HTTPHeaders">
<sequence>
<element name="header" minOccurs="0" maxOccurs="unbounded" type="httpsca:HTTPHeader"/>
</sequence>
</complexType>
<!--SSL Settings -->
<complexType name="HTTPSSLSettings">
<sequence>
<element default="SSL" nillable="true" name="SSLVersion" type="string"/>
<element default="false" nillable="true" name="SSLDebug" type="boolean"/>
<element default="JKS" nillable="true" name="KeyStoreType" type="string"/>
<element default="JKS" nillable="true" name="TrustStoreType" type="string"/>
<element nillable="true" name="KeyStore" type="string"/>
<element nillable="true" name="KeyStoreAlias" type="string"/>
<element nillable="true" name="KeyStorePassword" type="string"/>
<element nillable="true" name="TrustStore" type="string"/>
<element nillable="true" name="TrustStorePassword" type="string"/>
<element default="false" nillable="true" name="UseClientAuth" type="boolean"/>
</sequence>
</complexType>
<!--Proxy Settings -->
<complexType name="HTTPProxySettings">
<sequence>
<element nillable="true" name="proxyHost" type="string"/>
<element nillable="true" name="proxyPort" type="int"/>
<element nillable="true" name="proxyType" type="httpsca:HTTPProxyType"/>
<element nillable="true" minOccurs="0" name="proxyCredentials" type="httpsca:HTTPCredentials"/>
<element nillable="true" minOccurs="0" maxOccurs="unbounded" name="nonProxyHost" type="string"/>
</sequence>
</complexType>
<!--HTTP Authentication -->
<complexType name="HTTPAuthentication">
<sequence>
<element nillable="true" name="credentials" type="httpsca:HTTPCredentials"/>
<element nillable="true" name="authenticationType" type="httpsca:HTTPAuthenticationType"/>
</sequence>
</complexType>
<!--HTTP Credentials -->
<complexType name="HTTPCredentials">
<sequence>
<element nillable="true" name="userId" type="string"/>
<element nillable="true" name="password" type="string"/>
</sequence>
</complexType>
<!-- Authentication Type. Supports: Basic Auth -->
<simpleType name="HTTPAuthenticationType">
<restriction base="string">
<enumeration value="Basic"/>
</restriction>
</simpleType>
<!-- Proxy protocol type. Supports: http and https -->
<simpleType name="HTTPProxyType">
<restriction base="string">
<enumeration value="http"/>
<enumeration value="https"/>
</restriction>
</simpleType>
<!-- HTTP Version type.-->
<simpleType name="HTTPVersion">
<restriction base="string">
<enumeration value="1.0"/>
<enumeration value="1.1"/>
</restriction>
</simpleType>
</schema>
Descrizioni dei campi dello schema
- Intestazione HTTP
- Modelli HTTP campi di intestazione.
- controllo
- Modella campi specifici dell'intestazione HTTP che sono ampiamente utilizzati nel contesto della mediazione dei servizi. La maggior parte di questi campi di intestazione sono definiti nella specifica HTTP 1.1.
- URL
- Quando una richiesta di servizio arriva all'enterprise service bus (ESB), attraverso un binding di esportazione HTTP, il campo URL contiene il URL del servizio HTTP che chiama l'ESB. Se l'ESB chiama un altro servizio HTTP, utilizzando un binding di importazione HTTP, il campo DynamicOverrideURL può essere utilizzato per impostare dinamicamente il servizio URL che l'ESB chiama. Il richiedente del servizio, (dal punto di vista ESB), può essere un provider del servizio: un cliente può richiamare un servizio Web che utilizza ESB per richiamare un altro servizio.Nota: se si utilizza un binding di servizio web che supporta il gateway di servizio, l'elemento URL contiene la richiesta URL ed eventuali parametri specificati nella richiesta URL. È possibile creare un gateway di servizio che instrada i messaggi utilizzando i parametri inclusi nella richiesta URL.
- Versione
- La versione HTTP ricevuta nella chiamata HTTP. Il valore del campo Version può essere: 1.1 o 1.0. Quando si invia una richiesta, il campo Version viene ignorato dal binding di importazione HTTP ; si deve invece utilizzare il campo DynamicOverrideVersion.
- Metodo
- Il metodo HTTP ricevuto nella chiamata HTTP. I metodi sono:
GET,POST,PUT,DELETE,TRACE,OPTIONSeHEAD. Quando si invia una richiesta, il campo Method viene ignorato dal binding di importazione HTTP ; si deve invece utilizzare il campo DynamicOverrideMethod. - DynamicOverrideURL
- Il URL utilizzato dal binding di importazione HTTP, quando si invia una richiesta.
- DynamicOverrideVersion
- La versione di HTTP utilizzata dal binding di importazione di HTTP, quando si invia una richiesta. Il valore del campo Version può essere: 1.1 o 1.0.
- DynamicOverrideMethod
- Il metodo HTTP utilizzato dal binding di importazione HTTP, quando si invia una richiesta. I metodi sono:
GET,POST,PUT,DELETE,TRACE,OPTIONSeHEAD. - MediaType
- Il tipo di supporto HTTP.
- Set di caratteri
- Il set di caratteri HTTP.
- TransferEncoding
- La codifica di trasferimento HTTP.
- ContentEncoding
- La codifica del contenuto di HTTP.
- StatusCode
- Il codice di stato HTTP, come numero intero.
- ReasonPhrase
- Il codice di stato HTTP, come spiegazione leggibile dall'uomo.
- Autenticazione
- Modella l'intestazione di autenticazione HTTP.
- credenziali
- Le credenziali di HTTP per l'autenticazione.
- userId
- L'ID utente.
- Password
- La password.
- authenticationType
- Il tipo di autenticazione HTTP. Attualmente, è supportata solo l'autenticazione di base.
- Impostazioni SSL
- Modella le impostazioni SSL di HTTP utilizzate per la chiamata a HTTP.
- Versione SSL
- La versione SSL.
- Debug SSL
- Un valore booleano che definisce se viene utilizzato SSLDebug .
- KeyStoreType
- Il tipo di keystore.
- KeyStore
- Il nome del keystore.
- KeyStoreAlias
- L'alias del keystore.
- KeyStorePassword
- La password del keystore.
- TrustStoreType
- Il tipo di truststore.
- TrustStore
- Il nome del truststore.
- TrustStorePassword
- La password del truststore.
- UseClientAuth
- Un valore booleano che definisce se viene utilizzata l'autenticazione client.
- ProxySettings
- Modella le impostazioni del proxy di HTTP utilizzate per la chiamata a HTTP.
- proxyHost
- Il nome host del proxy.
- proxyPort
- La porta proxy.
- proxyType
- Il tipo di proxy da utilizzare. Il valore del campo proxyType può essere: http o https.
- proxyCredentials
- Le credenziali per il proxy.
- userId
- L'ID utente.
- Password
- La password.
- nonProxyHost
- Un elenco di host non proxy.
- intestazione
- Modella qualsiasi altro campo dell'intestazione HTTP definito nella specifica HTTP 1.1.
- nome
- Il nome dell'intestazione.
- valore
- Il valore dell'intestazione.