- Konu sahibi
- #1
HTTP port, web tarayıcısı ile web sunucusunun HTTP bağlantısı kurduğu numaralı iletişim kapısıdır. HTTP için varsayılan port 80’dir. Bu nedenle
Port, HTTP’nin kendisi değildir. HTTP; istemci ile sunucunun istek ve yanıt biçimini belirleyen protokoldür. Port ise bu iletişimin sunucuda hangi ağ kapısından kabul edileceğini belirtir. Aynı sunucuda web sitesi, SSH, e-posta veya veritabanı gibi farklı hizmetler farklı portlarda çalışabilir.
Bir kullanıcı tarayıcıya adres yazdığında genel akış şöyledir:
Bu örnekte istek 80 yerine 8080 numaralı porta gönderilir. Sunucuda uygulama 8080’i dinlemiyorsa, güvenlik duvarı bağlantıyı engelliyorsa veya yönlendiricide doğru NAT/port yönlendirmesi yoksa site açılmaz.
Aşağıdaki ayrım, sunucu yapılandırmasında en sık kullanılan temel eşleştirmedir:
HTTPS kullanıldığında HTTP ortadan kalkmaz. HTTP/1.1 ve HTTP/2 yaygın olarak TLS korumalı TCP bağlantısında, HTTP/3 ise QUIC üzerinden UDP ile çalışır; HTTPS için varsayılan hedef port yine 443’tür. Bu nedenle 80 ve 443 portlarının görevleri aynı değildir: 80 genellikle HTTP trafiği, 443 ise HTTPS trafiği için yapılandırılır.
Bir Linux sunucuda yerel olarak hangi servislerin dinleme yaptığını görmek için şu komutu çalıştırabilirsiniz:
Komut TCP dinleyicilerini listeler;
HTTP yanıtını test etmek için:
HTTP/3 kullanıyorsanız TCP listesi tek başına yeterli değildir;
Apache’de
Sık yapılan hatalar şunlardır:
http://example.com adresi yazıldığında tarayıcı genellikle bağlantıyı otomatik olarak 80 numaralı porta gönderir. HTTPS ise HTTP’nin güvenli iletişim biçimidir ve varsayılan olarak 443 numaralı portu kullanır.Port, HTTP’nin kendisi değildir. HTTP; istemci ile sunucunun istek ve yanıt biçimini belirleyen protokoldür. Port ise bu iletişimin sunucuda hangi ağ kapısından kabul edileceğini belirtir. Aynı sunucuda web sitesi, SSH, e-posta veya veritabanı gibi farklı hizmetler farklı portlarda çalışabilir.
HTTP portu nasıl çalışır?
Bir kullanıcı tarayıcıya adres yazdığında genel akış şöyledir:
- Alan adı bir IP adresine çözümlenir.
- Tarayıcı, belirtilen protokolün varsayılan portuna veya URL’de açıkça yazılan porta bağlantı kurar.
- Web sunucusu o portu dinliyorsa HTTP isteğini kabul eder.
- Sunucu isteğe durum kodu ve içerik ile yanıt verir.
Kod:
http://example.com:8080
Bu örnekte istek 80 yerine 8080 numaralı porta gönderilir. Sunucuda uygulama 8080’i dinlemiyorsa, güvenlik duvarı bağlantıyı engelliyorsa veya yönlendiricide doğru NAT/port yönlendirmesi yoksa site açılmaz.
HTTP ve HTTPS portlarının farkı
Aşağıdaki ayrım, sunucu yapılandırmasında en sık kullanılan temel eşleştirmedir:
| Protokol | Varsayılan port | URL örneği | Temel özellik |
|---|---|---|---|
| HTTP | 80 | http://example.com | Şifresiz HTTP bağlantısı |
| HTTPS | 443 | https://example.com | TLS ile korunan HTTP bağlantısı |
| Özel HTTP | 8080 gibi | http://example.com:8080 | Port URL’de açıkça belirtilir |
Sunucuda HTTP portunu kontrol etme
Bir Linux sunucuda yerel olarak hangi servislerin dinleme yaptığını görmek için şu komutu çalıştırabilirsiniz:
Kod:
ss -ltnp
Komut TCP dinleyicilerini listeler;
LISTEN satırlarında 80, 443 veya kullandığınız özel portu arayın. -p işlem bilgisinin tamamı için yönetici yetkisi gerekebilir. Örneğin 80 için satır görülmesi, makinede bir işlemin bu portu dinlediğini gösterir; tek başına internetten erişilebildiğini kanıtlamaz. Dış erişim için güvenlik duvarı, bulut güvenlik kuralı, NAT ve DNS de ayrıca doğru olmalıdır.HTTP yanıtını test etmek için:
Kod:
curl -I http://example.com
HTTP/1.1 200 OK veya benzeri bir HTTP yanıtı alınması, hedefe HTTP isteği ulaştığını gösterir. Connection refused sonucu genellikle hedef portta dinleyen servis olmadığını; zaman aşımı ise ağ yolu veya güvenlik duvarı engeli olabileceğini düşündürür. Yanıt kodu 301 ya da 302 ise sunucu isteği başka bir adrese yönlendiriyor olabilir; bu, portun çalışmadığı anlamına gelmez.HTTP/3 kullanıyorsanız TCP listesi tek başına yeterli değildir;
ss -lunp ile UDP soketlerini de inceleyin. Bir portun numarasını 443 yapmak tek başına şifreleme sağlamaz; hizmetin uygun TLS/QUIC yapılandırması gerekir.Sunucu yapılandırmasında dikkat edilecekler
Apache’de
Listen 80 benzeri bir tanım HTTP sunucusunun 80 numaralı portu dinlemesini sağlar. Nginx’te benzer görev listen 80; tanımıyla yapılır. Uygun bir paylaşım yapılandırması olmadan iki bağımsız servisi aynı TCP IP/port birleşiminde dinletmeye çalışmak, bağlama hatasına yol açabilir. Aynı makinede farklı IP veya farklı port kullanımı ise ayrı değerlendirilir.Sık yapılan hatalar şunlardır:
- 80 açıkken HTTPS’nin de otomatik olarak çalışacağını sanmak. HTTPS için 443 dinlenmeli ve TLS yapılandırması yapılmalıdır.
- URL’ye
:80veya:8080eklemenin sunucuyu o porta taşıdığını düşünmek. URL yalnızca istemcinin hangi porta bağlanacağını belirtir. - Servisin yerel olarak port dinlemesini, internetten erişilebilir olmakla karıştırmak.
- Güvenlik duvarında portu açıp web sunucusunu ilgili portta yapılandırmamak.
- Aynı portu Apache, Nginx veya başka bir uygulamaya aynı anda atamaya çalışmak.