Web services

Web server is HTTP 1.1 compliant
For HTTP 1.1 compliance, the web server now accepts the following items:

pipelining of HTTP requests, enabling multiple HTTP requests such as GET and HEAD to be processed simultaneously

absolute URIs (previously only relative URIs were supported)

100-continue request-header field, enabling a client to determine if the server would accept a request (based on the request
headers) before the client sends the entire request body.

quality values in the Accept-Charset request-header field (these values were previously ignored)

HTTP client is HTTP 1.1 compliant
The following HTTP-related enhancements are now implemented:

Support for HTTP string memory pooling
HTTP strings are no longer stored in contiguous memory. The cache is used as backend storage.

Client chunk mode
An HTTP client can now send a POST request using HTTP chunked mode.

HTTP sessions
HTTP connections can create an HTTP session to maintain state between HTTP requests.

HTTP server supports keep-alive
The database server now supports the keep-alive option when requested by HTTP clients. Instead of closing a connection
after each request, an HTTP connection can be kept open after each request and response, so that multiple requests can be
executed on the same connection.

New HttpServiceName connection property
A new connection property, HttpServiceName, has been added to enable a web application to determine its service name
origin. The property is useful for error reporting and control flow. See Connection properties.

sa_set_http_option enhancements
You can now use the sa_set_http_option system procedure to control the character set used in the HTTP response based
on the request Accept-Charset request-header field. See sa_set_http_option system procedure.

Support for data typing for SOAP services
The CREATE SERVICE and ALTER SERVICE statements have been extended to support a new DATATYPE clause. This clause is
for use with SOAP services only, and controls whether data typing is supported for input parameters and output responses.
See CREATE SERVICE statement and ALTER SERVICE statement.

HEADER clause in CREATE PROCEDURE, ALTER PROCEDURE, CREATE FUNCTION, and ALTER FUNCTION statements
A new HEADER clause has been added to these statements, for use when creating HTTP web service client procedures and
functions. This clause allows you to add or modify HTTP request header entries.

SOAPHEADER clause in CREATE PROCEDURE, ALTER PROCEDURE, CREATE FUNCTION, and ALTER FUNCTION statements
A new SOAPHEADER clause has been added to these statements, for use when creating SOAP web service client procedures
and functions. This clause allows you to specify the SOAP header entries sent, and the SOAP header data received, using IN
(IN/OUT) substitution parameters.