Where it all begins
When researching proxies, you’ll often come across two different types: HTTP and SOCKS proxy servers. Spending a few minutes to learn about the differences can save you a lot of time further down the line.
The distinction between the two all comes down to the protocols that they use.
Internet Protocols 101
Just like any other structure, the internet has rules to follow for everything runs smoothly. Contrary to how you might imagine, the internet is many different communication methods, called ‘protocols’. Just as the real world has many languages, so does the digital world.
The protocols determine how computers communicate with each other—from the initial contact, transferring data between the client (who makes the initial request), the server that holds the information and closing the connection at the end.
The set of protocols which define the management of internet traffic is called the ‘Internet Protocol Suite’. Though it’s also known as TCP/IP (Transmission Control Protocol/Internet Protocol), within this suite are HTTP and SOCKS proxy server protocols, and proxy servers use either one or the other.
You can think of SOCKS servers as all-purpose servers. Any type of web traffic is allowed through them. And if you’re wondering, SOCKS is short for ‘SOCKetS’
The SOCKS protocol creates and controls a TCP connection between you and the server. Data flows after the link is made. One important distinction is that the SOCKS protocol has nothing to do with the actual data that’s passed through; it purely handles the connection between you and the server.
As the actual traffic is irrelevant, this makes them suitable for almost all software applications, such as email clients, FTP, etc. They’re also useful to get around any firewalls. SOCKS servers are also relatively secure as the servers don’t see the actual traffic that flows through them.
SOCKS4 vs SOCKS5 Proxies
The most common servers you’ll come across are SOCKS4. However, there is another iteration called SOCKS5.
SOCKS5 servers operate in just the same way as SOCKS4 servers. However, SOCKS5 servers use different authentication protocols which enables a higher level of security, both for the TCP connection and the data stream.
Be warned that there’s no built-in encryption in place with SOCKS4 servers. So if you’re passing any sensitive data then use SOCKS5 at a minimum and also take any other steps relevant to secure your data.
HTTP and HTTPS Proxies
Servers that use HTTP (‘HyperText Transfer Protocol’) are the oldest and most popular type of server.
The most significant difference between HTTP and SOCKS servers is that others can view traffic through HTTP. With SOCKS, the protocol has no involvement with traffic so can’t be seen.
Being able to view traffic can be an advantage over SOCKS servers when you’re scraping data using HTTP proxies. As you can see the web traffic, you can extract only the information you need, such as the price on an Amazon listing. This visibility can make your scraping much faster and also reduce the amount of bandwidth or other resources consumed, potentially saving you not only time but a lot of money.
Just as SOCKS servers have two iterations, so do HTTP servers. The higher level here is HTTPS (‘Hypertext Transfer Protocol Secure’). As you can imagine from the name, HTTPS offers more security than HTTP.
It’s imperative to note that HTTP proxies themselves offer no encryption. Anyone in the stream can access traffic flowing through the proxy servers. If you’re planning to use HTTP servers to access publicly available information, then that will be fine because no authentication details or other data that might be damaging if in the wrong hands will be passed. However, if you’re using a proxy to access your social media, email, bank accounts etc. then always use an HTTPS server.
One further point is an app or program usually sets the proxy server connections. Unless set at an operating system level, they aren’t computer-wide and only set for use with a specific application. However, a proxy server’s configuration is such that only one or a small number of ports are open. This restriction is fine if one program connects through the proxy using the open port, but it isn’t good if you want all your traffic to run through the server. In this case, it may be better to use a VPN instead.
Ports with HTTP and SOCKS Proxy Servers
An important final note regarding HTTP and SOCKS servers is that it’s necessary to understand what ports are and how they interact with proxy servers.
A computer port acts as a door that internet traffic can flow through. A number defines each port, and web traffic needs to be sent to an open port, or the web traffic to that port will be rejected.
This restriction isn’t a bad thing as it helps provide organisation and structure and assists the software running the traffic and connections.
Typically HTTP servers use port 80, and HTTPS servers use port 443. SOCKS servers aren’t set up to deal with specific traffic, so they tend to have the most open ports.