One random thing that really annoys me is that the site http://shakespeare.mit.edu does not properly forward http requests to https although they have an https version of the site.
Funniest thing I've ever seen is the docs for Nginx do the same, no http to https redirection. I mean, you would hope that the maintainers for the biggest web server in the world would be able to manage that but somehow... No they don't.
HSTS + HTTPS redirect is the answer. It's industry standard for a reason: it's just as safe as pure HTTPS since you can't get anything other than a redirect over HTTP, and HSTS protects your users from future attempted MITM attacks. The MDN page for HSTS explains it all very clearly.
Any other implementation is an immediate audit fail in my experience.
There's no tangible security benefit to fully disabling port 80, and if anything depending on the service it may just drive users away to shadier alternatives.
So if this site has both HTTPS and HTTP versions, and it’s just Shakespeare, does it matter that much? I figure not which is why it’s not auto redirecting
SSL (or TLS nowadays) not only protects against surveillance but also guarantees the integrity of the data you send and receive. Without it, someone could spoof the response you receive. In practice this means injecting ads or malware or even worse: fake shakespeare!
It is brutal how few people know how to implement it and how apps all seem to have their own ways of doing it. I have to keep notes for the quirks of every damn app/OS I work with that uses SSL/TLS.
No, an .htaccess file is specific to Apache HTTP Server... although some other web servers have integrated the format. However, most browsers now automatically redirect when an HTTPS version exists.