Want to know how a request is processed by multiple servers maintaining the same user session.

For example: We log-in to IRCTC and try to book a ticket. 
During payment IRCTC lists out multiple bank options with radio buttons for online transaction. Assuming that I decide to do transaction using CITI bank, when I click on CITI Bank radio button I am redirected to CITI Bank website transaction page i.e you will see URL is switched from IRCTC Website to CITI Bank URL. It means I am completely out of IRCTC and switched to CITI BANK website. Now when my payment transaction is completed, I am switched back to IRCTC website from CITI Bank website **WITHOUT ENDING THE USER SESSION** i.e when I am switched back from CITI bank URL to IRCTC after completing transaction the user session is maintained in logged-in state. 

I would like to know how this works.

1. How a request is sent from IRCTC to CITI Bank website
2. How CITI Bank server receives details from IRCTC
3. How the same request comes back from CITI Bank to IRCTC
i.e how servers are switched (from CITI bank to IRCTC)
4. How same user session is maintained between two different servers during communication i.e IRCTC will show user as logged-in user when request comes back from CITI Bank to IRCTC after payment transaction is complete. **How does same user session maintained while switching between two servers ?**

I am using Struts frame work. Kindly help me in this regard and implementing the same with some examples. 

Assuming IRCTC using struts (Jsp/Servlets), which struts component takes the resposibility to send the details of IRCTC to Citi bank and recieve back detials form CITI bank to IRCTC. Is it possible using Requestdispacter.sendRedirect() OR somthing else ?

Thanks,

* Anand