How To Set Up An HTTP File Transfer
A Hypertext Transfer Protocol (HTTP) file transfer, which is also known as a web file transfer, is one of the most user-friendly methods of transferring files. For users to upload files or download files with an HTTP server, all they need is a web browser. Users can employ any web browser, such as Chrome, Firefox, Microsoft Edge or Safari for that purpose.
In this tutorial, we’ll walk you through the steps for setting up an HTTP file server. But before we do that, let’s discuss why you might want to use this type of file transfer server in the first place.
Why set up an HTTP file transfer?
As mentioned earlier, users just need a web browser to carry out a web file transfer. That browser functions as a web client. Since all major desktop operating systems, including Windows, Linux and macOS, have a web browser pre-installed by default, users don’t have to install additional software. Even mobile operating systems like iOS and Android have built-in web browsers.
And because practically all end users are familiar with web browsers, no additional training is required. This state of affairs surrounding HTTP file transfers is also beneficial for organizations, especially from an IT support standpoint. IT teams no longer have to spend time installing, configuring or troubleshooting specialized file transfer clients in order for their user base to conduct file transfers. As a result, your IT teams can reallocate the time saved to more strategic tasks.
Moreover, because HTTP is the same protocol used for web browsing and all web-related activities, an HTTP file transfer won’t require additional firewall configurations. In all likelihood, the required port, i.e., port 80, will already be open on your firewall.
If your organization’s file transfer and file sharing workflows are mostly user-initiated or person-to-server, and not automated server-to-server file transfers, HTTP file transfer should suffice. When configured correctly, an HTTP server can provide the same file transfer functionality as an FTP server or an SFTP server. If you’re not familiar with those acronyms, FTP stands for File Transfer Protocol, while SFTP stands for Secure File Transfer Protocol.
The next section is only meant for those who want to understand what goes on under the hood during a typical HTTP file transfer. If you just want to know how to configure an HTTP file transfer, you may skip this part.
How HTTP transfer file operations work
An HTTP file transfer’s front-end user interface is essentially a web page. So it usually involves Hypertext Markup Language (HTML) and JavaScript. The back-end, which handles tasks such as managing file uploads/downloads, interacting with storage systems and processing requests, can be implemented using practically any programming language, including Java, Python, Ruby, C, C++ and many others.
As for the HTTP file transfer itself, it mainly consists of file transfer downloads and file transfer uploads. Let’s dissect each of these processes.
HTTP file transfer download
When a user attempts to download a file from an HTTP server, the user’s web client sends out an HTTP GET request to the server. That request, which typically includes the file’s URL and the HTTP protocol version used, may look like this:
GET /files/document.pdf HTTP/1.1
Upon receiving the request, the web server checks if the file is available. If the file is indeed available and accessible, the server responds with a “200 OK” HTTP status code, some response headers and the requested file. Here’s an example of a typical HTTP response:
HTTP/1.1 200 OK
Content-Type: application/pdf
Content-Length: 102400
Content-Disposition: attachment; filename="document.pdf"
HTTP headers, such as those lines above that begin with Content-Type, Content-Length and Content-Disposition, contain metadata that describe the data being transferred and how it’s processed. This information helps the participating software applications take appropriate action.
HTTP file transfer upload
When a user attempts to upload a file to an HTTP server, the user’s web client sends out an HTTP POST or HTTP PUT request. That request typically includes the file data in the request body. Here’s a sample POST request:
POST /upload HTTP/1.1
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryxYz
Content-Length: 1048576
------WebKitFormBoundaryxYz
Content-Disposition: form-data; name="file"; filename="upload.txt"
Content-Type: text/plain
[File data here]
------WebKitFormBoundaryxYz--
Upon receiving the request, the HTTP server processes the request, extracts the uploaded file and then stores the file on the server. It then sends back a response to the client. The response typically includes a status code (e.g., “200 OK”) and, optionally, other relevant metadata.
Alright, now that you know how an HTTP file transfer works, let’s proceed with the tutorial. For this tutorial, we’ll be using JSCAPE MFT by Redwood. JSCAPE MFT is an advanced managed file transfer solution that allows you to set up an HTTP file transfer service in just a few steps.
I suggest you browse through the steps below first, just to see how easy and effortless the entire process can be. Then, if you decide to try it out yourself, you can request a free trial:
Or, if you want an expert to demo the set up process for you,
In the meantime, here are the three steps to setting up an HTTP file transfer using JSCAPE MFT:
1. Enable the HTTP service
Log in to your JSCAPE MFT administrative user interface and then click the Settings menu at the top of the screen.
Next, expand the MISCELLANEOUS drop-down menu found on the left sidebar, and then navigate to the Web > Web tab. Tick the “HTTP on host” checkbox to enable the HTTP web service. As soon as you do that, JSCAPE MFT should automatically select 0.0.0.0 for the IP address and 80 for the port number. A 0.0.0.0 IP address means your HTTP service will be listening for requests on all available network interfaces. 80 is the default HTTP port number.
The “HTTPS on host’ option is for Hypertext Transfer Protocol Secure (HTTPS), the secure version of HTTP. HTTPS file transfers are protected by the Secure Sockets Layer (SSL)/Transport Layer Security (TLS) cryptographic protocols. If you prefer to configure an HTTPS file transfer, you may read the tutorial “How To Set Up A HTTPS File Transfer”.
We’ll just be setting up a basic HTTP configuration, so you may leave all other settings such as the Private key, Theme, Session timeout (not shown on the screenshot) and others, as is for now.
Important!
Don’t forget to click the Apply button at the bottom-right corner of the screen to apply those changes.
At this point, you would have already enabled the HTTP service. However, you still need to specify the domain(s) where you want it served, as you may not want to enable it on all your JSCAPE MFT domains.
2. Add the HTTP service to a domain
When you’re ready to proceed, navigate to the Domains screen by clicking Domains > View domains.
Next, double-click the domain where you wish to add the HTTP service. In this example, we’re adding it to the ‘mftserver1’ domain.
Expand the SERVICES drop-down menu and then click the Listeners submenu. Click the Add button to add a service.
Expand the Protocol drop-down list and then select “HTTP/S”. Click OK to proceed.
On the next screen, you should see HTTPS selected by default. Since we just want to use HTTP for now, untick the checkbox beside HTTPS and then tick the one beside HTTP instead. Click OK to proceed.
With that, the HTTP service should be automatically added to your list of service listeners.
Since you’ll need a user account to test this, verify that you already have an existing user account by navigating to ACCOUNTS > USERS. In our example, we already have a user account with user ID “user1”.
We’re now ready to test our newly activated HTTP file transfer service.
3. Test the HTTP file transfer service using a web browser
Launch your favorite web browser. To minimize external issues, start by launching a web browser that’s installed on the same machine as your JSCAPE MFT Server instance and then enter localhost, your machine’s IP address or 0.0.0.0 on your web browser. If that works, you can then try connecting remotely from a separate machine later, after you’re done with this initial test.
You should see the following login screen. Enter the JSCAPE MFT Server domain where you added your HTTP service. Enter your user account’s username and its corresponding password as well. Click the LOGIN button to log in.
If everything goes well, you should see a graphical web user interface that resembles the one below. Notice that you can perform several tasks here. For instance, you can create a new directory, rename a file’s filename, delete a file, perform a zipped download, change a directory, view your account details and so on. To test a file upload, click the Upload button.
Select the local file you wish to upload and then click Open.
Barring any unforeseen circumstances, the file should upload successfully.
That’s it. Now you know how to set up an HTTP file transfer using JSCAPE MFT. Would you like to try this out?
Or, if you want an expert to demo the set up process for you,
FAQ
HTTP vs. FTP file transfer — Which is better?
Both HTTP and FTP operate on top of the Transmission Control Protocol (TCP). Thus, they both benefit from the reliability, ordered data delivery, flow control and congestion control properties of TCP. These properties make the two protocols suitable for file transfer processes. Both protocols can also transfer large files. And, unfortunately, both protocols transfer files unencrypted.
However, despite their similarities when used for file transfers, HTTP has one distinct advantage. As mentioned in the article above, user-initiated HTTP file transfers don’t require specialized client applications. Users can carry out HTTP file transfers with just a common web browser. FTP, on the other hand, usually requires an FTP client or a file transfer client that supports FTP.
Web browsers used to support FTP. However, for security reasons, recent versions of popular web browsers no longer do so.
SFTP vs. HTTP file transfer — Which is better?
Like FTP and HTTP, SFTP also runs on TCP. So, SFTP is similar to HTTP in that regard. However, SFTP, which also stands for SSH File Transfer Protocol, is substantially more secure than HTTP. SFTP runs on top of Secure Shell (SSH).
Thus, it inherits the security features of SSH, which include: data-in-transit encryption, two factor authentication and host authentication. None of these features are present in plain FTP. So, from a security standpoint, SFTP is better than HTTP. If you want a more secure version of HTTP, use HTTPS.
Download JSCAPE MFT Server TrialRelated Content
How To Set Up A HTTPS File Transfer: HTTPS File Sharing
How To Auto Upload Files To A Server From A Local Directory