HTTP Channel
The most commonly used channels are probably those based on the Hypertext Transfer Protocol. The HTTP protocol, which forms the basis for the world wide web, is one of the most used protocols on the internet, and provides a variety of benefits when used for communication within the Remoting SDK:
- because of the widespread use of HTTP, the protocol can be easily used even in restrictive network environments where firewalls or proxy servers are used to separate the client from the internet. If end-users have access to the internet via web browser, chances are high that HTTP based channels will work out-of-the-box, as well.
- Server addresses are identified by standard URLs, making it easy and intuitive for the end user to handle addressing.
- If desired, HTTP channels can provide human-readable information about the server and the published services when accessed from a standard web browser. In summary, HTTP is the best protocol to use if you have little control over the network infrastructure at the deployment site, and want your clients to easily work on a wide variety of networks.
Several implementations of the HTTP client and server channels are provided in both (Delphi and .NET) editions, and the decision over which ones to use is mostly a matter of preference. All of the HTTP clients are compatible with any of the HTTP servers, and vice versa.
It is worth noting that the WinINET based client channels for both Delphi and .NET will make use of networking options set up for Internet Explorer, including proxy settings and automatic dialup rules, while the Indy
and Internet Pack
channels use their own HTTP implementation on top of raw TCP.
Client Channel Components
- IpHttpClientChannel (.NET)
- WinInetHttpClientChannel (.NET)
- TROGrijjyHTTPChannel (Delphi)
- TROIndyHTTPChannel (Delphi)
- TRONetHttpClientChannel (Delphi)
- TROSynapseHTTPChannel (Delphi)
- TROWinInetHTTPChannel (Delphi)
- ROHTTPClientChannel (Cocoa)
- HttpClientChannel (Java)
- HTTPClientChannel (JavaScript)
Server Channel Components
- HttpSysServerChannel (.NET)
- IpHttpServerChannel (.NET)
- TROHTTPServer (Delphi)
- TROIndyHTTPServer (Delphi)
- TROSynapseHTTPServer (Delphi)
- TROWebBrokerServer (Delphi)
- TROWinHttpServer (Delphi)
Note: the HttpSysServerChannel uses Microsoft's HTTP kernel shared with IIS, which allows standalone servers to share a port with the IIS webserver.