HTTP/1.1 compliance for CICS as an HTTP server

CICS® web support is conditionally compliant with the HTTP/1.1 specification.

The HTTP/1.1 specification is described in the Internet Society and IETF (Internet Engineering Task Force) Request for Comments document RFC 2616, Hypertext Transfer Protocol - HTTP/1.1.

Conditional compliance with the HTTP/1.1 specification means that CICS satisfies all the "MUST" level requirements, but not all the "SHOULD" level requirements, that are detailed in the HTTP/1.1 specification, where these requirements are relevant to the functions provided by CICS itself. An implementation that satisfies all the MUST or REQUIRED level and all the SHOULD level requirements for its protocols is said to be unconditionally compliant. An implementation is not compliant if it fails to satisfy one or more of the MUST or REQUIRED level requirements for the protocols it implements.

There are three aspects to CICS web support compliance with the HTTP/1.1 specification.
  • CICS web support performs actions that are required from an HTTP server. For example, CICS web support receives inbound requests, maintains persistent connections, writes certain HTTP headers, and transmits responses. The behavior of CICS web support during these actions is conditionally compliant with the HTTP/1.1 specification. Where necessary, this represents a change in behavior from earlier releases of CICS. CICS web support behavior in compliance with HTTP/1.1 describes how the behavior of CICS web support complies with HTTP/1.1, and where this differs from releases of CICS before CICS Transaction Server for z/OS®, Version 3 Release 1.
  • Some parts of the HTTP/1.1 specification are not relevant to CICS web support. For example, CICS web support does not act as a proxy server or provide a caching facility. HTTP functions not supported by CICS web support notes these areas, so that you know the areas in which HTTP/1.1 compliance is not a concern for CICS web support and for your user application program.
  • Web-aware user application programs in CICS can be used to create application-generated HTTP responses and instruct CICS web support how to serve the responses. If you want your CICS web support implementation to be compliant with the HTTP protocol specifications, in particular HTTP/1.1, your user application programs share the responsibility for compliance in the actions that they perform. Some basic guidance information is provided in this documentation, but it is important to check the HTTP specification to which you are working for more detailed information. Developing HTTP applications describes the process for writing a user application program for CICS web support.
    In practical terms, the different levels of requirement in the HTTP/1.1 specification (MUST, SHOULD, or MAY) should be handled by your application program as follows:
    • MUST level requirements must be implemented to maintain compliance. CICS web support is designed to handle, or to assist you to comply with, all the MUST level requirements that apply to straightforward activities. Some additional MUST level requirements might apply if you choose to fulfil an optional requirement that CICS web support does not already handle. Also, some MUST level requirements relate to actions that your application must not perform in certain circumstances.
    • SHOULD level requirements are not necessary for conditional compliance with the HTTP specifications. CICS does not comply with all the SHOULD level requirements in the HTTP/1.1 specification. However, if your application can comply with a SHOULD level requirement without inconvenience, it is advisable to do so.
    • MAY actions are optional for any HTTP implementation, whatever its level of compliance. They should be treated as suggestions or recommendations.