The Internet Communication Framework (ICF) is an environment for handling Web requests in ABAP work processes of an SAP system (in its role as a Web server and a Web client) The ICF is the bridge between the kernel of the SAP system and the application program written in ABAP. The ICF consists of ABAP classes and interfaces, the objects and methods of which can be accessed in a Web Dynpro ABAP application, for example.
ICF provides a way for different systems to communicate with each other over the internet/intranet using standard protocols (such as HTTP and SMTP). As of AS ABAP 7.40, no additional programming libraries (for AS ABAP) are required from SAP. However, for the HTTPS protocol, certain configuration steps need to be performed (see SAP Note 510007 – Additional considerations for setting up SSL on Application Server ABAP). Your system platform only must be configured to be internet capable. This scenario allows for the most flexible setup of the overall communication requirements.
The ICF allows a response to a request to be generated using an application. An HTTP request is sent from a client (such as a Web browser) to the server. It is then forwarded to an application by the ICF. Here, data is collected and sent back to the client as a response by the ICF. The response data is then displayed in the browser.
Note
The following provides more information about using the SAP system as a Web server (HTTP(S) server). For information about the Web client role of the SAP system, see the online documentation.
The application logic that is to be called by an HTTP request from the intranet or internet is implemented by the HTTP request handler in each case. An HTTP request handler is a program (or, more precisely, an ABAP class) that is identified using a URL, and which receives HTTP requests that use this URL. The task of the HTTP request handler is to receive the data that is sent by a request (for example, coded into the URL as "query string" information), to perform a number of handler-specific processes, and to generate a response to this HTTP request. Customers can also create these HTTP request handlers themselves, although SAP does provide some. An example for an SAP HTTP request handler is the handler CL_HTTP_EXT_BSP for the Business Server Pages (BSP) which can be used to develop simple Web applications.
If an HTTP request is received by the ICM that is to be processed in a work process, the task handler of the work process takes control. It then starts the ICF controller (see the following figure).

An HTTP(S) request is processed in the following steps (this example uses an ABAP application that must be processed by a dialog work process):
The request is sent from the user’s Web browser to the ICM using the HTTP(S) protocol.
The ICM stores the data received in a memory pipe (in the shared memory) and informs the ABAP dispatcher.
The ABAP dispatcher adds the ICM request to the dispatcher queue, creates a new context (if there is no context that is processed statefully), and selects a dialog work process for processing.
The task handler in the work process reads the data from the memory pipe and transfers it to the ICF controller, which is implemented using function module HTTP_DISPATCH_REQUEST.
The ICF controller transfers the request to the ICF manager, which is implemented by the ABAP class CL_HTTP_SERVER. The ICF controller creates a server control block and fills it with the HTTP request data that it requested from the ICM.
The client is then authenticated, whereby several logon options are available.
The HTTP request handler determined previously is called (this can process the request data, call further applications, access the response object, and so on). Once the HTTP request handler has performed all tasks, it returns control to the ICF controller.
The task handler writes the response back to the memory pipe (response serialization) and signals to the ICM that it has finished processing the request.
The ICM returns the response to the Web Browser.
For a detailed explanations of the individual steps, see the online documentation for SAP S/4HANA (Product Assistance), area Enterprise Technology → ABAP Platform → Application Server ABAP - Infrastructure → Connectivity → Components of SAP Communication Technology → Communication Between ABAP and Non-ABAP Technologies → Internet Communication Framework → Architecture → Server Architecture.
From a technical point of view, there is an ABAP class behind an HTTP request handler. This class implements the interface IF_HTTP_EXTENSION and the method HANDLE_REQUEST. SAP delivers classes of this type; customers can, of course, also create their own classes with the Class Builder (transaction SE24, integrated into the Object Navigator, transaction SE80).