I am confused with the differences of the two. When do you use https:// and when do you use ssl://?

  • Is it a site that uses ssl://? – David Rickman Sep 8 '09 at 7:14
  • For SMTP authentication. But I'm not sure if that is its sole purpose. – Randell Sep 8 '09 at 7:19
  • based on your comment about smtp, I think Michael Stum's answer is the one you need – Antony Sep 8 '09 at 7:29
  • -1 for not giving any context (this is a php thing) – user1686 Dec 12 '09 at 21:41
  • I didn't that it was a PHP-only thing until I got the answers. – Randell Dec 13 '09 at 2:17

The https:// prefix is for secure web sites, with a default port of 443, and indicates that the browser or other user-agent should try and connect with SSL and then talk HTTP.

I've never seen an ssl:// URI - where did that come from?

The W3C has a list of common schemes; IANA has a list of the officially-defined schemes.

(Edit: apparently it's only used in PHP as a socket transport in the Internet domain)

  • 3
    i've spent 10 minutes trying to google something - I've never seen ssl:// before either but was too embaressed to admit it! – Antony Sep 8 '09 at 7:15

I only know ssl:// when used in PHP Scripts (fsockopen as a way to open a SSL connection to a given host/port, but that does not imply any protocol), so in 99.99% of all cases I would use https://

If you have compiled in OpenSSL support, you may prefix the hostname with either ssl:// or tls:// to use an SSL or TLS client connection over TCP/IP to connect to the remote host.


https://somewebsite tells the browser that you want to connect to somewebsite over a secure channel on the (usually default) port of 443 (as opposed to 80 for http).

SSL is the cryptographic protocol that provides this security, which combined with public key infrastructure and a trusted certificate authority (someone who tells your browser who to trust) is how https achieves a secure connection using the HTTP protocol.

So to answer your question, https is what you'd use in the browser URL, but SSL is part of the underlying story.


  • Yes, helpful. Still digesting. – Randell Sep 8 '09 at 7:41

Erm, I've never used ssl://. SSL is a transport option. It doesn't specify what protocol to talk or what port. My guess is that you'd only use it when you wanted to open a connection to a SSL port, much in the same way you'd open a telnet connection to a port. You'd have to specify the port in the URL. Any program connecting to that URL will have to make assumptions about the protocol it wanted to talk.

HTTPS:// is HTTP over SSL/TLS and implies that you'd connect to port 443 (although you can specify another port) and that the program should talk HTTP down the connection.


You never use ssl:// only https://. ssl:// is not valid.

HTTPS is a transport protocol. SSL is an encryption method.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.