**HTTP tünelleme**, kapsüllenmiş http protokolünü kullanan çeşitli ağ protokollerini çalıştırarak bağlantı gerçekleştiren bir tekniktir. Ağ protokolleri genelde TCP/IP ailesine ait olan protokollerdir. HTTP protokolü dolayısıyla, ağ protokolü tünnellenmiş olan kanal için kılıf (wrapper) olarak davranır.

Var olan uygulama yazılımı ile bütünleşen client-server http tünelleme uygulamalarını içeren http tünel yazılımı, bu uygulamaların, güvenlik duvarı ile çevrilmiş olan ağ bağlantıları gibi kısıtlı ağ durumlarında, proxy sunucuları arkasında kalan ağ durumlarında ve NATs durumlarında kullanımını sağlar.

Kullanım
--------

Bir http tüneli genelde daha çok kısıtlı bağlantı ile ağ konumu iletişimi anlamında kullanılır. Genelde NATs, güvenlik duvarları ya da proxy sunucuları arkalarında olan durumlar gibi. TCP/IP portlarının engellenmiş bir şekli biçiminde olan kısıtlı bağlantı, ağ dışı trafiğin başlamasını engeller ya da tüm ağ protokollerini (iç ve dış tehditlere karşı ağı korumak için ağ kapatmasını sağlayan birkaç protokol hariç) engeller.

Mekanizması
-----------

Uzaktan bir ana sunucuyla bağlantı kurmak isteyen uygulama, aracı sunucu için bir http bağlantısı açar. Uygulama daha sonra http isteklerini kullanarak aracı sunucu ile iletişime geçer. Aracı sunucunun, yeterli şekilde kısıtlanmamış bağlantı ile ağ konumunda yer alması gerekir.

Aracı sunucu söz konusu olan uzaktaki ana sunucuya iletmeden gerçek verileri açar. Simetrik olarak, uzaktaki sunucudan veri aldığında, sunucuya http-cevap paketinin bir kısmı olarak gönderilmeden önce http protokolü içerisinde paketler.

Bu durumda, uzaktaki sunucu iletişime geçilmek istenen sunucu rolü oynarken, uygulama ise tünelleme istemcisi olarak rol oynar.

Bağlantı ile HTTP tünelleme
---------------------------

HTTP proxy sunucu arkasında iken http tünellemesinin bir çeşidi, "bağlanma (connect) "http yöntemini kullanır.

Bu mekanizmada, istemci bir http proxy sunucusuna TCP bağlantısının belirlenen konuma iletimi için istekte bulunur. Sunucu tarafında bağlantı kurulduğunda proxy sunucusu proxy’ye doğru TCP akımına devam eder. Belirtmek gerekir ki ilk bağlantı isteği http’dir. Bundan sonra sunucu basitçe kurulmuş olan TCP bağlantısını proxy eder.

Bu mekanizma SSL kullanarak http proxy sunucusu arkasından nasıl web sayfalarına erişim yapıldığının bir örneğidir.

Bağlatı yapılmadan HTTP tünelleme
---------------------------------

Bazı ağlarda, bağlantı yöntemini kullanmak, bazı güvenilir web sayfaları için kısıtlıdır. Bu gibi durumlarda, bir http tüneli yine de, genel http yöntemlerinin (post, get ve delete gibi) kullanımı ile tamamlanmış olabilir.

Bu durumda, sunucu korunan ağ dışında çalışır ve özel http sunucusu olarak davranır. İstemci program ise korunan ağdaki bilgisayar üzerinde çalışır.

HTTP tünel istemcilerinin kullanım amaçları
-------------------------------------------

* Kısıtlı güvenlik duvarları ve proxy’ler arkasından uygulamaları kullanmak için
* Engellenmiş sitelere erişim için
* HTTP üzerinden güvenli şekilde bazı kaynak paylaşımları için

Kaynakça
--------

* 12 Haziran 2013 tarihinde Wayback Machine sitesinde arşivlendi.

Dış bağlantılar
---------------

* BarbaTunnel Project - Free open source implementation of HTTP-Tunnel and UDP-Tunnel on Windows8 Ocak 2012 tarihinde Wayback Machine sitesinde arşivlendi.