What is the difference between HTTP and HTTPS?
Short answer
HTTP (Hypertext Transfer Protocol) is the request-response protocol between the browser and the web server; the request and the response are carried over the network as plain text. HTTPS is the TLS-encrypted form of the same protocol: the content cannot be read or modified on the way, and the client verifies the identity of the server with a certificate. In TR7, this distinction is made in the Protocol selector in the Frontend row of the HTTP vService: HTTP in the Unencrypted group receives traffic unencrypted; HTTP/1.1 and HTTP/2 in the Encrypted (HTTPS) group terminate TLS on TR7, and the certificate is selected in the Certificate field; HTTP → HTTPS in the Redirect group redirects the unencrypted request to the HTTPS address with code 301. Encryption between TR7 and the Backend Service is enabled separately with the SSL Service option in the Backend Service.
Where It Is Used in TR7
| Where | Field / label | What for |
|---|---|---|
| Load Balancer → Load Balancer vService List → HTTP vService form → Frontend | Protocol → Unencrypted → HTTP | Listening for unencrypted HTTP |
| Same row | Protocol → Encrypted (HTTPS) → HTTP/1.1, HTTP/2 (and their variants with the HTTP/3 badge) | Listening for HTTPS by terminating TLS on TR7 |
| Same row | Protocol → Redirect → HTTP → HTTPS | Redirecting the unencrypted request to the HTTPS address with 301 |
| HTTP vService form | Certificate, SSL Security | The certificate and TLS settings of the HTTPS frontend; visible only while a protocol from the Encrypted (HTTPS) group is selected |
| Load Balancer → Backend Services → Backend Service form | SSL Service | Also encrypting the connection between TR7 and the Backend Service with TLS |
Comparison
| HTTP | HTTPS | |
|---|---|---|
| Transport | Plain text | Encrypted with TLS |
| Server identity | Not verified | Verified with a certificate |
| Default port | 80 | 443 |
| TR7 Frontend protocol | Unencrypted → HTTP | Encrypted (HTTPS) → HTTP/1.1 or HTTP/2 + certificate |
Terminating HTTPS on TR7 allows content inspections such as WAF to see the traffic in its decrypted form; details: What is SSL offloading (termination), and how is it set up?. The ways of redirecting from HTTP to HTTPS: How do I redirect HTTP to HTTPS?
Common Misconceptions
- "HTTPS requires a separate vService type." HTTPS is a Frontend protocol of the HTTP vService; HTTP, HTTPS and HTTP → HTTPS rows can exist together on the same vService.
- "When HTTPS is selected, the traffic going to the Backend Service is also encrypted." HTTPS in the Frontend encrypts only the connection between the client and TR7; for the connection between TR7 and the Backend Service, SSL Service is enabled in the Backend Service.
- "The HTTP → HTTPS option requires a certificate." The Redirect row responds only to the unencrypted request; the certificate is used in the HTTPS row to which the request is redirected.
How it is done in the documentation
