A method for a remote desktop session between a web browser (312, 500) at a client device (202, 310) and a remote desktop server (322, 680) at a remote machine (204, 320, 690) through a transcoding server (208, 330, 400A, 400B), utilizing an adapter (350, 430, 600) at the transcoding server (208, 330, 400A, 400B), the method comprising: a. receiving (1402-A), at the adapter (350, 430, 600), an input request from the web browser (312, 500) utilizing a request-response protocol, wherein the request-response protocol is a pull protocol,; b. translating (1404-A), at the adapter (350, 430, 600), the input request into an input command compatible with a remote desktop display protocol to be utilized by a remote desktop client (352, 432, 640) at the transcoding server (208, 330, 400A, 400B) for communication with the remote desktop server (322, 680) at the remote machine (204, 320, 690), wherein the remote desktop display protocol is a push protocol; c. providing (1406-A) the input command to a remote desktop client (352, 432, 640) at the transcoding server (208, 330, 400A, 400B), to provide the input command to the remote desktop server (322, 680) utilizing the remote desktop display protocol; d. receiving (1408-A), at the adapter (350, 430, 600), a remote desktop drawing command from the remote desktop server (322, 680) in response to the input command, wherein the remote desktop drawing command is based on an image of a remote desktop of the remote machine (204, 320, 690); e. translating (1410-A), at the adapter (350, 430, 600), the remote desktop drawing command to allow the transcoding server (208, 330, 400A, 400B) to provide a web browser drawing update to the web browser (312, 500), wherein the web browser drawing update is compatible with the web browser (312, 500); f. receiving, via an HTTP handler (344, 422) of the transcoding server (208, 330, 400A, 400B), a connection request from the web browser (312, 500); and g. establishing, controlling or terminating the remote desktop session between the remote desktop client (352, 432, 640) and the remote desktop server (322, 680) in response to the connection request, wherein the establishing, controlling or terminating comprises: generating a session control command based on the connection request, wherein the session control command is compatible with the remote desktop display protocol; and transmitting the session control command to the remote desktop server (322, 680) via the remote desktop client (352, 432, 640) using the remote desktop display protocol. a. receiving (1402-A), at the adapter (350, 430, 600), an input request from the web browser (312, 500) utilizing a request-response protocol, wherein the request-response protocol is a pull protocol,; b. translating (1404-A), at the adapter (350, 430, 600), the input request into an input command compatible with a remote desktop display protocol to be utilized by a remote desktop client (352, 432, 640) at the transcoding server (208, 330, 400A, 400B) for communication with the remote desktop server (322, 680) at the remote machine (204, 320, 690), wherein the remote desktop display protocol is a push protocol; c. providing (1406-A) the input command to a remote desktop client (352, 432, 640) at the transcoding server (208, 330, 400A, 400B), to provide the input command to the remote desktop server (322, 680) utilizing the remote desktop display protocol; d. receiving (1408-A), at the adapter (350, 430, 600), a remote desktop drawing command from the remote desktop server (322, 680) in response to the input command, wherein the remote desktop drawing command is based on an image of a remote desktop of the remote machine (204, 320, 690); e. translating (1410-A), at the adapter (350, 430, 600), the remote desktop drawing command to allow the transcoding server (208, 330, 400A, 400B) to provide a web browser drawing update to the web browser (312, 500), wherein the web browser drawing update is compatible with the web browser (312, 500); f. receiving, via an HTTP handler (344, 422) of the transcoding server (208, 330, 400A, 400B), a connection request from the web browser (312, 500); and g. establishing, controlling or terminating the remote desktop session between the remote desktop client (352, 432, 640) and the remote desktop server (322, 680) in response to the connection request, wherein the establishing, controlling or terminating comprises: generating a session control command based on the connection request, wherein the session control command is compatible with the remote desktop display protocol; and transmitting the session control command to the remote desktop server (322, 680) via the remote desktop client (352, 432, 640) using the remote desktop display protocol. generating a session control command based on the connection request, wherein the session control command is compatible with the remote desktop display protocol; and transmitting the session control command to the remote desktop server (322, 680) via the remote desktop client (352, 432, 640) using the remote desktop display protocol.