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 back-end 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.

    The KeepaliveTimeout protocol option has also been added to support this feature. See KeepaliveTimeout (KTO) protocol option.

  • 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 Accessing connection property values.

  • 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 [SOAP web service] and ALTER SERVICE statement [SOAP web service].

  • sa_set_soap_header system procedure   Use the sa_set_soap_header system procedure to set the response headers for SOAP services. See sa_set_soap_header system procedure.

  • SOAP_HEADER and NEXT_SOAP_HEADER functions   Use the SOAP_HEADER function to get request headers for SOAP services. See SOAP_HEADER function [SOAP].

    Use the NEXT_SOAP_HEADER function to get the next header entry in a SOAP header. See NEXT_SOAP_HEADER function [SOAP].

  • 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.

    See CREATE PROCEDURE statement [Web service], CREATE FUNCTION statement [Web service], and Accessing client-supplied HTTP variables and headers.

  • 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.

    See CREATE PROCEDURE statement [Web service], CREATE FUNCTION statement [Web service], and Tutorial: Using SQL Anywhere to access a SOAP/DISH service.