Loading docs/libcurl-the-guide +43 −11 Original line number Original line Diff line number Diff line Loading @@ -238,9 +238,9 @@ When It Doesn't Work compiler name and version etc. compiler name and version etc. Getting some in-depth knowledge about the protocols involved is never wrong, Getting some in-depth knowledge about the protocols involved is never wrong, and if you're trying to funny things, you might very well understand libcurl and if you're trying to do funny things, you might very well understand and how to use it better if you study the appropriate RFC documents at least libcurl and how to use it better if you study the appropriate RFC documents briefly. at least briefly. Upload Data to a Remote Site Upload Data to a Remote Site Loading Loading @@ -558,22 +558,24 @@ Proxies SSL and Proxies SSL and Proxies SSL is for secure point-to-point connections. This envolves strong SSL is for secure point-to-point connections. This involves strong encryption and similar things, which effectivly makes it impossible for a encryption and similar things, which effectivly makes it impossible for a proxy to operate as a "man in between" which the proxy's task is as proxy to operate as a "man in between" which the proxy's task is, as previously discussed. Instead, the only way to have SSL work over a HTTP previously discussed. Instead, the only way to have SSL work over a HTTP proxy is to ask the proxy to tunnel trough everything without being able proxy is to ask the proxy to tunnel trough everything without being able to check the traffic. to check or fiddle with the traffic. Opening an SSL connection over a HTTP proxy is therefor a matter of asking Opening an SSL connection over a HTTP proxy is therefor a matter of asking the proxy for a straight connection to the target host on a specified the proxy for a straight connection to the target host on a specified port. This is made with the HTTP request CONNECT. port. This is made with the HTTP request CONNECT. ("please mr proxy, connect me to that remote host"). Because of the nature of this operation, where the proxy has no idea what Because of the nature of this operation, where the proxy has no idea what kind of data that is passed in and out through this tunnel, this kind of data that is passed in and out through this tunnel, this breaks effectively breaks some of the pros a proxy might offer, such as caching. some of the very few advantages that come from using a proxy, such as Many organizations prevent this kind of tunneling to other destination caching. Many organizations prevent this kind of tunneling to other port numbers than 443 (which is the default HTTPS port number). destination port numbers than 443 (which is the default HTTPS port number). Tunneling Through Proxy Tunneling Through Proxy Loading @@ -595,6 +597,11 @@ Proxies curl_easy_setopt(easyhandle, CURLOPT_HTTPPROXYTUNNEL, TRUE); curl_easy_setopt(easyhandle, CURLOPT_HTTPPROXYTUNNEL, TRUE); In fact, there might even be times when you want to do plain HTTP operations using a tunnel like this, as it then enables you to operate on the remote server instead of asking the proxy to do so. libcurl will not stand in the way for such innovative actions either! Proxy Auto-Config Proxy Auto-Config Netscape first came up with this. It is basicly a web page (usually using Netscape first came up with this. It is basicly a web page (usually using Loading @@ -621,6 +628,28 @@ Proxies - Ask your admins to stop this, for a static proxy setup or similar. - Ask your admins to stop this, for a static proxy setup or similar. Persistancy Is The Way to Happiness [ re-use connections, options that control/disable this, the effect on protocols such as FTP, why this is Good For You ] Customizing Operations [ custom requests, custom headers, replacing headers, custom FTP commands before transfer, after transfer and without transfer ] Headers Equal Fun [ use the header callback for HTTP, FTP etc ] Post Transfer Information [ curl_easy_getinfo ] Security Considerations Security Considerations [ ps output, netrc plain text, plain text protocols / base64 ] [ ps output, netrc plain text, plain text protocols / base64 ] Loading @@ -628,9 +657,12 @@ Security Considerations SSL, Certificates and Other Tricks SSL, Certificates and Other Tricks [ seeding, passwords, keys, certificates, ENGINE, ca certs ] Future Future [ multi interface, sharing between handles, mutexes, pipelining ] ----- ----- Loading Loading
docs/libcurl-the-guide +43 −11 Original line number Original line Diff line number Diff line Loading @@ -238,9 +238,9 @@ When It Doesn't Work compiler name and version etc. compiler name and version etc. Getting some in-depth knowledge about the protocols involved is never wrong, Getting some in-depth knowledge about the protocols involved is never wrong, and if you're trying to funny things, you might very well understand libcurl and if you're trying to do funny things, you might very well understand and how to use it better if you study the appropriate RFC documents at least libcurl and how to use it better if you study the appropriate RFC documents briefly. at least briefly. Upload Data to a Remote Site Upload Data to a Remote Site Loading Loading @@ -558,22 +558,24 @@ Proxies SSL and Proxies SSL and Proxies SSL is for secure point-to-point connections. This envolves strong SSL is for secure point-to-point connections. This involves strong encryption and similar things, which effectivly makes it impossible for a encryption and similar things, which effectivly makes it impossible for a proxy to operate as a "man in between" which the proxy's task is as proxy to operate as a "man in between" which the proxy's task is, as previously discussed. Instead, the only way to have SSL work over a HTTP previously discussed. Instead, the only way to have SSL work over a HTTP proxy is to ask the proxy to tunnel trough everything without being able proxy is to ask the proxy to tunnel trough everything without being able to check the traffic. to check or fiddle with the traffic. Opening an SSL connection over a HTTP proxy is therefor a matter of asking Opening an SSL connection over a HTTP proxy is therefor a matter of asking the proxy for a straight connection to the target host on a specified the proxy for a straight connection to the target host on a specified port. This is made with the HTTP request CONNECT. port. This is made with the HTTP request CONNECT. ("please mr proxy, connect me to that remote host"). Because of the nature of this operation, where the proxy has no idea what Because of the nature of this operation, where the proxy has no idea what kind of data that is passed in and out through this tunnel, this kind of data that is passed in and out through this tunnel, this breaks effectively breaks some of the pros a proxy might offer, such as caching. some of the very few advantages that come from using a proxy, such as Many organizations prevent this kind of tunneling to other destination caching. Many organizations prevent this kind of tunneling to other port numbers than 443 (which is the default HTTPS port number). destination port numbers than 443 (which is the default HTTPS port number). Tunneling Through Proxy Tunneling Through Proxy Loading @@ -595,6 +597,11 @@ Proxies curl_easy_setopt(easyhandle, CURLOPT_HTTPPROXYTUNNEL, TRUE); curl_easy_setopt(easyhandle, CURLOPT_HTTPPROXYTUNNEL, TRUE); In fact, there might even be times when you want to do plain HTTP operations using a tunnel like this, as it then enables you to operate on the remote server instead of asking the proxy to do so. libcurl will not stand in the way for such innovative actions either! Proxy Auto-Config Proxy Auto-Config Netscape first came up with this. It is basicly a web page (usually using Netscape first came up with this. It is basicly a web page (usually using Loading @@ -621,6 +628,28 @@ Proxies - Ask your admins to stop this, for a static proxy setup or similar. - Ask your admins to stop this, for a static proxy setup or similar. Persistancy Is The Way to Happiness [ re-use connections, options that control/disable this, the effect on protocols such as FTP, why this is Good For You ] Customizing Operations [ custom requests, custom headers, replacing headers, custom FTP commands before transfer, after transfer and without transfer ] Headers Equal Fun [ use the header callback for HTTP, FTP etc ] Post Transfer Information [ curl_easy_getinfo ] Security Considerations Security Considerations [ ps output, netrc plain text, plain text protocols / base64 ] [ ps output, netrc plain text, plain text protocols / base64 ] Loading @@ -628,9 +657,12 @@ Security Considerations SSL, Certificates and Other Tricks SSL, Certificates and Other Tricks [ seeding, passwords, keys, certificates, ENGINE, ca certs ] Future Future [ multi interface, sharing between handles, mutexes, pipelining ] ----- ----- Loading