Skip to content
Smarter by Design.Simpler for Business

Keep Header Names ​

Keep Header Names Aksiyonu Nedir? ​

Keep Header Names aksiyonu, HTTP başlık isimlerinin orijinal büyük/küçük harf yapısını koruyarak Kurum Servislerine iletilmesini sağlar.

Başlık isimleri normal işleyişte küçük harfe indirgenir. Bazı eski veya özel uygulamalar ise başlık isimlerinin orijinal büyük/küçük harf yapısını bekler; bu aksiyon o yapının korunmasını sağlar.

Bu aksiyon HTTP/2 ve HTTP/3'ü kapatır

Başlık isimlerinin büyük/küçük hali yalnızca HTTP/1.1 üzerinde korunabilir. Bu nedenle aksiyon etkinleştirildiğinde ilgili vService'te:

  • İstemci tarafında HTTP/2 devre dışı kalır (protokol anlaşmasından çıkarılır),
  • HTTP/3 (QUIC) dinleyicisi hiç açılmaz,
  • Kurum Servisine giden şifreli bağlantılarda da HTTP/2 kullanılmaz.

Tüm istemciler HTTP/1.1'e döner. Bunun bedeli çoklama (multiplexing), başlık sıkıştırma ve QUIC kazanımlarının kaybıdır: bağlantı sayısı ve el sıkışma maliyeti artar. Aksiyon yalnızca başlık yazımına gerçekten bağımlı bir Kurum Servisi varsa ve tercihen o servise özel bir vService üzerinde kullanılmalıdır.

Değişiklik uygulandığında vService durumunda hangi protokollerin kapatıldığını bildiren bir bilgi satırı görüntülenir; bu bir hata değil, bilgilendirmedir.

Orijinal başlık: X-Custom-Header: value
Aksiyon olmadanx-custom-header: value (küçük harfe dönüştürülür)
Aksiyon ileX-Custom-Header: value (orijinal hali korunur)

Keep Header Names Aksiyonunun Önemi ​

Modern HTTP protokolleri başlık isimlerini küçük harfe indirger. Bazı sistemler bu dönüşümü tolere edemez ve uyumluluk sorunları yaşanır; bu aksiyon, protokolü HTTP/1.1'e sabitleyerek orijinal yazımın korunmasını sağlar.

Keep Header Names aksiyonu;

  • Kurum Servisi başlık isimlerinde büyük/küçük harf duyarlılığı beklediğinde uyumluluk sağlar,
  • Eski sistemlerle (legacy) entegrasyon sorunlarını çözer,
  • Özel protokoller veya API'lerle iletişimi mümkün kılar,
  • Başlık yazımına bağımlı eski servislerin, uygulama tarafında değişiklik yapılmadan çalışmasını sağlar.

Bu nedenle Keep Header Names aksiyonu, protokol geçişlerinde ve legacy sistem entegrasyonlarında kritik bir uyumluluk aracıdır.

Kullanılabildiği vService Tipleri ​

HTTP
L7 TCP
Network

Çalışma Anı ​

İstek Anı (On Request)
Cevap Anı (On Response)

Nasıl Eklenir? ​

Yeni bir Keep Header Names Aksiyonu, TR7 web yönetim arayüzü üzerinden aşağıdaki adımlar izlenerek eklenebilir:

  1. Sol altta bulunan TR7 logosuna tıklanarak Configuration Menu açılır.
  2. Load Balancer → Actions → Add adımları takip edilir.
  3. Aksiyon için benzersiz ve açıklayıcı bir isim girilir.
  4. Action Type olarak Keep Header Names seçilir.
  5. Aksiyona ait ilgili konfigürasyonlar yapılandırılır.
  6. Add butonuna tıklanarak aksiyon eklenir.

Keep Header Names Aksiyonu Ekleme Formu ​

Keep Header Names Aksiyonu Ekleme FormuKeep Header Names Aksiyonu Ekleme Formu

INFO

Action Name ​

Oluşturulacak olan aksiyona benzersiz ve açıklayıcı bir isim girilir.

INFO

Action Type ​

Aksiyon tipi olarak Keep header names seçilir.

Aksiyon tipi kaydedildikten sonra değiştirilemez. Aksiyonun aksiyona özgü hiçbir yapılandırma alanı yoktur; Execution Level, Rule Protocol, Conditions, Hit Counter ve Set Variable on Hit alanları da bulunmaz.

Çekirdek motor desteği gerekir

Bu özellik yalnızca güncel çekirdek motor sürümlerinde çalışır. Desteklemeyen bir sürümde aksiyon hiçbir etki yapmaz (HTTP/2 de kapatılmaz) ve arayüzde "Seçili çekirdek motor şu özellikleri desteklemiyor" bildirimi görüntülenir.

INFO

Form Butonları ​

Add ​

Add butonuna tıklanarak aksiyon ekleme işlemi tamamlanır.

Add & Repeat ​

Add & Repeat butonu ile aksiyon ekleme işlemi tamamlanır ve farklı konfigürasyonlarla ilgili pencereden çıkılmadan yeni bir aksiyon daha eklenebilir.

Aksiyon EklendiAksiyon Eklendi

WARNING

Keep Header Names aksiyonu koşul gerektirmez ve tanımlandığı vService üzerinde koşulsuz (Always) olarak uygulanır.

Koşulsuz çalışan aksiyonlar, trafik içeriğine bağlı değerlendirme yapmadan, ilgili vService üzerindeki tüm trafiği veya davranışı doğrudan etkiler.

Canlı ortamlarda, bu tür aksiyonların devreye alınması öncesinde hedef servis davranışlarının ve olası etkilerin dikkatle değerlendirilmesi önerilir. Aksi durumda, beklenmeyen servis davranışları veya operasyonel sorunlar oluşabilir.

Operasyonel ve Güvenli Kullanım Önerileri ​

  • Gerçekten Gerekli Olduğunda Kullanın. Bu aksiyon, yalnızca Kurum Servisleri başlık isimlerinde büyük/küçük harf duyarlılığı beklediğinde kullanılmalıdır. Standart HTTP uygulamalarında genellikle gerekli değildir.
  • Test Ortamında Doğrulayın. Canlı ortama almadan önce, Kurum Servisinin bu değişikliğe nasıl tepki verdiğini test ortamında doğrulayın.
  • vService Başına Tek Kullanım. Bu aksiyon vService başına yalnızca bir kez eklenebilir.

Canlı Ortamlarda Yaygın Kullanım Senaryoları ​

Aşağıdaki örnekler, ilgili aksiyonun gerçek sistemlerde en sık karşılaşılan kullanım senaryolarında nasıl uygulandığını göstermektedir. Bu senaryolar, canlı ortamlarda yaygın olarak tercih edilen ve sahada edinilmiş deneyimlere dayanan pratikleri temel alır.

Senaryo 1: Legacy Java Servlet Başlık Büyük/Küçük Harf Duyarlılığı ​

Problem: Eski Java servlet uygulaması (Tomcat 5.x) HTTP başlık isimlerini büyük/küçük harf duyarlı şekilde okuyor. TR7 başlıkları küçük harfe çeviriyor (X-Custom-ID → x-custom-id) ve uygulama bu başlığı bulamayarak hata veriyor.

Çözüm: Keep Header Names aksiyonu etkinleştirilerek başlık isimlerinin orijinal büyük/küçük harf yapısı korunur.

Konfigürasyon: Bu aksiyonun konfigürasyon alanı yoktur, sadece vService'e eklenerek aktif edilir.

Sonuç:

  • ✅ Başlık formatı → X-Custom-ID orijinal haliyle Kurum Servisine iletilir.
  • ✅ Java servlet → Başlığı doğru şekilde okur, hata vermez.
  • ✅ Uyumluluk → Başlık yazımı korunduğu için eski Java uygulaması başlığı bulur.
  • ❌ Protokol → vService HTTP/1.1'e sabitlenir; HTTP/2 ve HTTP/3 kullanılamaz.

Senaryo 2: Özel Middleware API Gateway Başlık Gereksinimleri ​

Problem: Şirket içi geliştirilen API gateway middleware'i X-API-Key ve X-Request-ID başlıklarını tam olarak bu formatta bekliyor. Küçük harfli versiyonlarını (x-api-key) tanımıyor ve istekleri reddediyor.

Çözüm: Keep Header Names aksiyonu kullanılarak özel başlıkların orijinal biçimi korunur.

Konfigürasyon: Bu aksiyonun konfigürasyon alanı yoktur, sadece vService'e eklenerek aktif edilir.

Sonuç:

  • ✅ Özel başlıklar → X-API-Key, X-Request-ID orijinal formatında iletilir.
  • ✅ Middleware → Başlıkları tanır, istekleri kabul eder.
  • ✅ API gateway → Custom logic ve güvenlik kontrolleri doğru çalışır.
  • ❌ Protokol → vService HTTP/1.1'e sabitlenir; özel sistem gereksinimi karşılanır ancak HTTP/2 kazanımları kaybedilir.

Senaryo 3: ASP.NET Framework 4.5 Uyumluluk Sorunu ​

Problem: Eski ASP.NET Framework 4.5 uygulaması HttpContext.Request.Headers["X-Custom-Header"] ile başlık okumaya çalışıyor. TR7 başlıkları küçük harfe çevirince (x-custom-header) ASP.NET bu başlığı bulamıyor.

Çözüm: Keep Header Names aksiyonu etkinleştirilerek ASP.NET'in beklediği başlık biçimi korunur.

Konfigürasyon: Bu aksiyonun konfigürasyon alanı yoktur, sadece vService'e eklenerek aktif edilir.

Sonuç:

  • ✅ ASP.NET başlık okuma → X-Custom-Header orijinal formatında okunur.
  • ✅ HttpContext → Request.Headers collection doğru çalışır.
  • ✅ Custom HttpModule → Başlıkları doğru işler, hata vermez.
  • ❌ Protokol → vService HTTP/1.1'e sabitlenir; ASP.NET uyumluluğu sağlanır ancak HTTP/2 kullanılamaz.

Senaryo 4: SOAP Web Service Başlık Formatı ​

Problem: SOAP web servisi SOAPAction başlığını tam olarak bu formatta bekliyor (büyük/küçük harf duyarlı). TR7 bu başlığı soapaction olarak Kurum Servisine iletiyor ve SOAP parser hatası veriyor.

Çözüm: Keep Header Names aksiyonu kullanılarak SOAP protokolünün başlık biçimi korunur.

Konfigürasyon: Bu aksiyonun konfigürasyon alanı yoktur, sadece vService'e eklenerek aktif edilir.

Sonuç:

  • ✅ SOAP başlıkları → SOAPAction, Content-Type orijinal formatında iletilir.
  • ✅ SOAP parser → Başlıkları tanır, mesajları doğru işler.
  • ✅ Web service → WSDL gereksinimleri karşılanır, hata vermez.
  • ❌ Protokol → vService HTTP/1.1'e sabitlenir; SOAP uyumluluğu korunur ancak HTTP/2 kullanılamaz.