HTTP/1.1 ile HTTP/2 arasındaki fark nedir?
Kısa cevap
HTTP/1.1 metin tabanlıdır ve bir bağlantı üzerinde istekleri sırayla işler; çok sayıda eşzamanlı istek için tarayıcı birden fazla bağlantı açar. HTTP/2 aynı anlamı (metotlar, header'lar, status code'lar) binary frame'lerle taşır: multiplexing ile tek bağlantı üzerinde birden çok isteği eşzamanlı stream'ler olarak iletir ve header'ları sıkıştırır; tarayıcılar HTTP/2'yi yalnızca TLS üzerinden kullanır ve sürüm TLS handshake'inde ALPN ile seçilir. TR7'de istemci tarafı HTTP vService Frontend satırının Protocol seçicisinde belirlenir: Encrypted (HTTPS) grubundaki HTTP/2 istemciye HTTP/2 ve HTTP/1.1 sunar, HTTP/1.1 yalnızca HTTP/1.1 sunar. Kurum Servisi tarafı bağımsızdır: SSL Service açık bir Kurum Servisinde ALPN alanı HTTP 2.0 enabled yapılırsa önce HTTP/2 denenir, desteklenmezse HTTP/1.1'e düşülür; SSL Service kapalı bir Kurum Servisinde Cleartext HTTP/2 (h2c) işaretlenirse TR7 sunucuya TLS olmadan doğrudan HTTP/2 ile bağlanır. Varsayılan olarak ikisi de kapalıdır (HTTP 2.0 disabled) ve TR7 Kurum Servisine HTTP/1.1 ile bağlanır.
TR7'de Nerede Kullanılır
| Nerede | Alan / etiket | Ne için |
|---|---|---|
| Load Balancer → Load Balancer vService List → HTTP vService formu → Frontend | Protocol → Encrypted (HTTPS) → HTTP/1.1 ya da HTTP/2 | İstemci tarafında sunulan sürüm |
| Load Balancer → Backend Services → Kurum Servisi formu → SSL Service | ALPN: HTTP 2.0 disabled (varsayılan) / HTTP 2.0 enabled | Kurum Servisi tarafında kullanılan sürüm |
| Load Balancer → Backend Services → Kurum Servisi formu | Cleartext HTTP/2 (h2c): kapalı (varsayılan) / işaretli | SSL Service kapalıyken Kurum Servisine TLS olmadan HTTP/2 |
| Load Balancer → Profiles (L4-L7 Behavior Sets) → Health Checks → HTTP / HTTPS profili | HTTP Version: HTTP/1.1 (varsayılan) / HTTP/2 | Health check isteğinin sürümü |
| Load Balancer → Actions (Policy Actions) | Keep Header Names | Bağlandığı vService'te HTTP/2 ve HTTP/3'ü kapatır; bağlantılar HTTP/1.1 ile yapılır |
Karşılaştırma
| HTTP/1.1 | HTTP/2 | |
|---|---|---|
| Biçim | Metin | Binary frame |
| Eşzamanlılık | Bağlantı başına sıralı | Tek bağlantıda çoklu stream |
| Header compression | Yok | Var (HPACK) |
| TLS | İsteğe bağlı | Tarayıcılarda zorunlu |
| Tanım | RFC 9112 | RFC 9113 |
Sık Karıştırılan Noktalar
- "Frontend HTTP/2 ise Kurum Servisine de HTTP/2 gider." İki taraf bağımsızdır; Kurum Servisi tarafı ALPN alanıyla (şifresiz bağlantıda Cleartext HTTP/2 (h2c) ayarıyla) belirlenir ve varsayılan HTTP/1.1'dir.
- "Frontend'de HTTP/2 seçilince HTTP/1.1 istemcileri bağlanamaz." HTTP/2 seçeneği ALPN'de HTTP/1.1'i de sunar; HTTP/2 desteklemeyen istemci HTTP/1.1 ile bağlanır.
- "HTTP/2 uygulamada değişiklik gerektirir." Metotlar, header'lar ve status code'lar aynıdır; değişen taşıma biçimidir.
Dokümantasyonda nasıl yapılır
İlgili sorular
