To understand this, you need to know that – in the mainframe world – you don’t have multiple computers with one keyboard and monitor each. You have one central computer (the mainframe), which controls multiple keyboards and monitors (terminals) individually.
A CICS transaction is when the mainframe sends or receives data to or from one of the terminals.
Windows programs for example communicate with the Windows operating system via „window-messages„. They tell it to put new windows, buttons, text etc. on the screen or remove them from there. The Windows operating system also sends informations back to the programs. It tells them when the mouse has been moved or a key was pressed on the keyboard. The programs can then react by changing the text in a textbox on the screen for example.
Now CICS terminals don’t tell the underlying COBOL programs about every key that has been pressed. They store the data locally and only send them back when certain keys (AIDs, attention identifiers) are pressed.
So CICS transactions aren’t exactly the same as window-messages. Especially because CICS terminates the underlying program while the terminal is displaying the data and waiting for local edits and attention-keys.
Only when an attention key is pressed, the terminal sends the (edited) data back to the mainframe and then the mainframe starts another program that handles the pressed key and the edited data. This is called „pseudo conversational programming„.
CICS transactions are more like Web Requests. When you navigate to a website, your Webbrowser sends a GET request to the webserver. The server responds by sending an HTML page (possibly generated by a PHP script) and then closes the connection.
Your Webbrowser displays the page and allows you to locally edit things, for example in textboxes. When you submit your edits – for example via a submit button – then your browser sends the data in a POST request to the webserver. The server then processes the data with the script that is defined in the „action“ attribute on the page.