User talk:Pfrcks

Proxy support in Kiwix
To increase the productivity of Kiwix by adding support for proxy server i.e accessing and downloading from the Kiwix internal library when behind a proxy server.
 * Goal:

The current UI of Kiwix has a number of options in Menu.Amongst them is Tools. In the drop down menu of Tool there are a couple of items.We can provide additional option titled Proxy to provide details for proxy support.
 * Design:
 * This should be provided in the "preferences/options" panel (edit > preferences) Kelson (talk) 12:09, 20 December 2013 (UTC)
 * Okay Pfrcks (talk) 12:14, 20 December 2013 (UTC)

Upon clicking the Proxy option in Tools drop down menu,a dialogue box appears containing a few options,viz, Type of Proxy,Proxy Hostname,Proxy Port,Username and Password for Authentication(if applicable).
 * OK Kelson (talk) 12:09, 20 December 2013 (UTC)

Types of Proxy: Mostly there are four types of proxy in use : HTTP,HTTPS,SOCKS4,SOCKS5. SOCKS: A SOCKS server is a general purpose proxy server that establishes a TCP connection to another server on behalf of a client, then routes all the traffic back and forth between the client and the server. It works for any kind of network protocol on any port. SOCKS Version 5 adds additional support for security and UDP. The SOCKS server does not interpret the network traffic between client and server in any way, and is often used because clients are behind a firewall and are not permitted to establish TCP connections to servers outside the firewall unless they do it through the SOCKS server.

whereas HTTP: An HTTP proxy is similar, and may be used for the same purpose when clients are behind a firewall and are prevented from making outgoing TCP connections to servers outside the firewall. However, unlike the SOCKS server, an HTTP proxy does understand and interpret the network traffic that passes between the client and downstream server, namely the HTTP protocol. Because of this the HTTP proxy can ONLY be used to handle HTTP traffic, but it can be very smart about how it does it. In particular, it can recognize often repeated requests and cache the replies to improve performance.

Hence depending upon the user the proxy server can be HTTP/SOCKS so both methodologies have to be implemented.

If the proxy server asks for authentication then the Username and Password have also to be given by the user.
 * Where will be the code able to deal with the proxies (does xulrunner has support for all types of them)? What about standart environnement variables? What about proxy autodetection? Kelson (talk) 12:09, 20 December 2013 (UTC)


 * xulrunner will first have to check for system env vars to check for already present proxy settings.if so it will import them and try to work according to them.xulrunner should have support for all of them as different scenarios have different types of proxy servers,so to reach to maximum amount of people we will have to incorporate all of them. Pfrcks (talk) 12:14, 20 December 2013 (UTC)

Pfrcks (talk) 08:57, 20 December 2013 (UTC) Working: The main difference between direct connection and connection via a proxy server is that now all the outgoing connections should have destination ip as the proxy server ip rather than the server we want to reach.The proxy server then reaches the server and transmits data to and fro.


 * End of sentence ???? Kelson (talk) 12:09, 20 December 2013 (UTC)