About a decade ago, the majority of websites operated on the HTTP protocol, with only a few financial and banking-related sites utilizing HTTPS. However, starting around 2018, having a non-HTTPS website began to be considered unsafe for visitors, and it would trigger a notification popup.
Regrettably, there are still some older devices that may struggle with HTTPS due to expired server certificates or outdated operating systems that lack support for HTTPS.
I personally encountered this issue with my “Nook Simple Touch” device, which I’ve been using as a Quote Frame. This device retrieves data from an API, but since it can’t access APIs or websites using HTTPS, I embarked on a quest to find a straightforward solution to host a HTTP-only URL. After some searching, I discovered that locating a hosting service supporting HTTP was challenging. Eventually, I settled on using the free version of Pipedream to craft a custom script in Node.js. This script fetches data from the original source and returns the response. An advantage of this platform is that it assigns a unique random URL to each script, which functions seamlessly in both HTTP and HTTPS environments.
scriptname : code_1
// To use any npm package on Pipedream, just import it
import axios from "axios"
export default defineComponent({
async run({ steps, $ }) {
const { data } = await axios({
method: "GET",
url: "https://nook-frame.vercel.app",
})
return data
},
})
export default defineComponent({
async run({ steps, $ }) {
await $.respond({
status: 200,
headers: {"Content-Type":"text/html"},
body: steps.code_1.$return_value,
})
},
})
With this setup i can access the site in both protocols
- https://<random>.m.pipedream.net
- http://<random>.m.pipedream.net
Note, I don’t see they support this http officially in the documentation. I inadvertently attempted it, and it worked well.