Golang : How to check if a website is served via HTTPS
Just a short program to check if a website has redirect to HTTPS(SSL) or not. What this program does is to find the final URL of a given URL and then check to see if the final URL has https
or not.
It does not check if the connection is secured with a proper certificate or expired certificate.
Here you go!
package main
import (
"fmt"
"net/http"
"strings"
)
func main() {
// test websites
//originalURL := "//socketloop.com"
//originalURL := "http://geocities.com" -- no https
originalURL := "http://cowner.net" // -- no https
resp, err := http.Get(originalURL)
if err != nil {
fmt.Println(err)
}
// if there is any re-direction happening behind the scene
// the finalURL will be different
// in this case, there will be a re-direction to https (SSL) version
finalURL := resp.Request.URL.String()
fmt.Println("Original URL is : ", originalURL)
fmt.Println("Final URL is : ", finalURL)
// Check if served with https
fmt.Println("Is HTTPS ? : ", strings.HasPrefix(finalURL,"https"))
}
Hope this helps and happy coding!
See also : Golang : Get final or effective URL with Request.URL example
By Adam Ng(黃武俊)
IF you gain some knowledge or the information here solved your programming problem. Please consider donating to the less fortunate or some charities that you like. Apart from donation, planting trees, volunteering or reducing your carbon footprint will be great too.
Advertisement
Tutorials
+6.1k Golang : Get missing location after unmarshal binary and gob decode time.
+23.5k Golang : Read a file into an array or slice example
+21.9k Golang : Use TLS version 1.2 and enforce server security configuration over client
+19.4k Golang : Fix cannot download, $GOPATH not set error
+17.6k Golang : [json: cannot unmarshal object into Go value of type]
+23.1k Golang : Randomly pick an item from a slice/array example
+12.7k Golang : zlib compress file example
+12.4k Golang : Search and extract certain XML data example
+55.3k Golang : Unmarshal JSON from http response
+7k Golang : constant 20013 overflows byte error message
+12.8k Swift : Convert (cast) Int or int32 value to CGFloat
+14.6k Golang : Send email with attachment(RFC2822) using Gmail API example