İnternet protokolleri, İnternet ağlarında bilgi alışverişi için en önemli ve yaygın olarak kullanılan standartlar olarak bilinir. HTTP protokolü veya Köprü Metin Aktarım Protokolü, İnternet ağları için tanımlanan yaygın olarak kullanılan standartlardan biridir; Bu protokol, ilk sitelerin inşasından bir süre sonra oluşturuldu ve kademeli olarak geliştirildi. World Wide Web Konsorsiyumu (W3C) bu protokolü geliştirme ve denetleme görevini üstlendi.
Bu yazımızda sizlere HTTP protokolünün ne olduğu ve nasıl çalıştığı anlatılacak, ardından HTTPs protokolü tanıtılacak ve son olarak http ile https arasındaki fark incelenecektir.
HTTP Protokolü Nedir?
Köprü Metni Aktarım Protokolü (HTTP), World Wide Web’in temelidir ve hiper metin bağlantılarını kullanarak web sayfalarını yüklemek için kullanılır. Bu protokol, bir bilgisayar ağındaki sunucu ile istemci arasındaki iletişimden sorumludur. Başka bir deyişle, bu protokol web sunucuları ve istemciler arasındaki iletişimden sorumludur.
Geçmişte, internette bilgi alışverişi için standart bir yöntem yoktu. Bu nedenle Tim Berners-Lee, 1991 yılında internette bilgi alışverişi için bir standart uygulamak amacıyla Http protokolünü oluşturdu. Berners-Lee, bu protokolü HTML’nin temel yapısıyla birlikte basit bir web sunucusunda ve metin tabanlı bir tarayıcıda sundu.
HTTP, metin, resim, ses, video ve diğer multimedya dosyaları gibi dosyaları bir web portalı aracılığıyla aktarmak için bir dizi kuraldır.
Bir kullanıcı web tarayıcısını açar açmaz dolaylı olarak HTTP kullanıyordur. HTTP, İnternet’in temelini oluşturan TCP/IP protokol paketinin üzerinde çalışan bir uygulama protokolüdür.
HTTP’nin en son sürümü, Mayıs 2015’te piyasaya sürülen HTTP/2 protokolüdür. Bu sürüm, hala geçerliliğini yitirmemiş olan önceki sürümü olan HTTP 1.1’in yerini almaktadır.
Hipermetin (Köprü metni) İle Kastedilen Nedir?
Size sorulabilir, Hipermetin kelimesiyle ne kastedilmektedir? Köprü metni, HTML ile yazılmış büyük ve uzun metinler anlamına gelir. HTML hakkında daha fazla bilgi edinmek için HTML nedir makalesini okuyun.
Elbette yazılan kodlar sadece yazısal olmasının aksine, kullanıcının tarayıcısı tarafından işlendikten sonra sadece yazısal kalmayacaktır. Bir HTML belgesi resimler, videolar, tablolar, bağlantılar vb. içerebilir.
Örneğin, Mavihost’un bu sayfasında gördüğünüz şey, resimler, metin, çerçeveleme vb. dahil olmak üzere farklı bileşenlere sahip bir sayfadır. Ancak bu web sayfasının perde arkasını görmek istiyorsanız, tarayıcınızda (örneğin, Chrome tarayıcı) sayfaya sağ tıklayın ve İncele (Inspect) seçeneğine tıklayın. Şu anda gördüğünüz şey bir hipermetin.
HTTP Protokolü Nasıl Çalışır?
Http protokolü, bilgi göndermek ve almak için Handshaking protokolü veya el sıkışmayı kullanır. Bu yöntemde, bilgi alışverişi işlemini başlatmak ve bitirmek için sunucu ve istemci arasında birkaç istek ve yanıt alışverişi yapılır.
İstemcinin (tarayıcının), bir site hakkında bilgi almak isteyen bir kişi olduğunu hayal edin. İlk başta, o sitenin sunucusuna bir istek göndermesi gerekir. Ardından sunucudan isteğine bir yanıt almak için beklemesi gerekir. İstenen bilgiler sunucuda mevcutsa, bilgileri göndermeyi kabul eden kişiye yanıt gönderilir.
Ardından, istemciden sunucuya bilgi verisi isteyen bir mesaj gönderilir. Bu aşamada sunucu mesajı alır ve istenen veriyi daha küçük veri paketlerine böler. Son olarak bu paketler Handshaking protokolü ile sırayla kişiye gönderilir.
Bu süreçte güvenliği artırmak ve veri iletimini garanti altına almak için TCP/IP protokollerinin kullanıldığına dikkat edilmelidir. Bu protokolde istemci ve sunucu arasındaki iletişim genellikle 80 numaralı bağlantı noktası üzerinden yapılır. Ayrıca, bu süreçte iki istemci ile sunucu arasında değiş tokuş edilen bilgi kümesine oturum (session) adı verilir
HTTP’nin Temel Özellikleri Nelerdir?
HTTP’yi basit ama güçlü bir protokol yapan üç temel özellik vardır:
- HTTP bağlantısızdır: HTTP istemcisi, yani bir tarayıcı, bir HTTP isteği başlatır ve bir istek yapıldıktan sonra, istemci yanıtı bekler. Sunucu isteği işler ve bir yanıt gönderir, ardından istemci bağlantıyı keser. Bu nedenle, istemci ve sunucu yalnızca mevcut istek ve yanıt sırasında birbirleriyle bağlantı kurar.
- HTTP ortamdan bağımsızdır: Bu, hem istemci hem de sunucu veri içeriğini nasıl işleyeceğini bildiği sürece, her türlü verinin HTTP ile gönderilebileceği anlamına gelir. Sunucunun yanı sıra istemcinin de içerik türünü, uygun MIME türünü kullanarak, belirtmesi gerekir.
- HTTP durum bilgisizdir: Yukarıda bahsedildiği gibi, HTTP bağlantısızdır ve HTTP’nin durum bilgisiz bir protokol olmasının doğrudan bir sonucudur. Sunucu ve istemci, yalnızca geçerli bir istek sırasında birbirlerinden haberdardır. Daha sonra ikisi de birbirini unutur. Protokolün bu doğası gereği, ne istemci ne de tarayıcı, web sayfalarındaki farklı istekler arasında bilgi tutamaz.
HTTP’nin Temel Mimari
Aşağıdaki şema, bir web uygulamasının çok temel bir mimarisini gösterir ve HTTP’nin nerede oturduğunu gösterir:
HTTP protokolü, web tarayıcılarının, robotların ve arama motorlarının vb. HTTP istemcileri gibi davrandığı ve Web sunucusunun bir sunucu gibi davrandığı, istemci/sunucu tabanlı mimariye dayalı bir istek/yanıt protokolüdür.
Istemci
HTTP istemcisi sunucuya bir URI, istek yöntemi ve protokol sürümü biçiminde bir istek gönderir ve bunu bir TCP/IP bağlantısı üzerinden istek değiştiricileri, istemci bilgileri ve olası gövde içeriğini içeren MIME benzeri bir mesaj izler.
sunucu
HTTP sunucusu, mesajın protokol sürümünü ve başarı veya hata kodunu içeren bir durum satırı ve ardından sunucu bilgilerini, varlık meta bilgilerini ve olası varlık gövdesi içeriğini içeren MIME benzeri bir mesajla yanıt verir.
HTTP Protokolünde İstek Yöntemleri
HTTP protokolü, web üzerinde bilgi istemek için farklı yöntemler tanımlamıştır. Bu yöntemlerin her biri web sunucularında belirli bir amaçla kullanılmaktadır. Bu protokolün ilk sürümü (sürüm 1) yalnızca GET, POST ve HEAD istek yöntemlerini destekler.
Ancak 1.1 sürümünde OPTIONS, PUT, DELETE, TRACE ve CONNECT başlıkları altında beş yeni yöntem eklenmiştir. Bu yöntemlerin her birinin çalışması tarayıcılar için tamamen tanımlanmıştır. Bu nedenle, tüm tarayıcılar ve sunucular bu yöntemleri kolayca uygulayabilir. Şimdi bu yöntemlerin her birini ayrıntılı olarak açıklayacağız:
GET: Bu yöntemle gönderilen mesajlar sadece bir URL içerir. Bu mesajlarda, URL’nin sonuna bir dizi isteğe bağlı parametre eklenebilir. Bu mesajlardaki isteğe bağlı parametreler, gönderilen URL’de kolayca görülebilir. Bu tür mesajlar gönderildikten sonra sunucu tarafından işlenir ve sonuç olarak istek sahibine veya aynı tarayıcıya döndürülür.
POST: Bu tip mesajlarda eklenen opsiyonel parametreler görülmez. Çünkü bu yöntemde parametreleri URL’nin sonuna eklemek yerine, istenen mesajın içine yerleştiriliyor.
HEAD: Bu istekler GET mesajlarına benzer. Bu iki istek arasındaki fark, Head mesajlarında URL içeriği ile ilgili yanıtlar göndermek yerine sadece site başlığı ile ilgili verileri göndermeleridir. Bu veriler, bir html belgesinin <head> bölümündeki bilgilerin aynısıdır.
PUT: Bu yöntemde veriler istek mesajı ile birlikte sunucuya gönderilir. Sunucudan daha sonra bu verileri belirtilen adreste saklaması istenir. İstenen konumda başka veriler zaten depolanmışsa, yeni veriler değiştirilecektir.
TRACE: Bu yöntemde sunucu, gönderilen verileri istemciye veya istek sahibine aynen döndürür.
OPTIONS: Bu yöntem, bir adres için mevcut bilgi isteme yöntemlerini elde etmek istediklerinde kullanılır. Bu yöntem, sunucudan gönderilen adres için mevcut istek yöntemlerini bildirmesini ister.
DELETE: Bu metod sunucudaki bir adresi silmek için kullanılır.
CONNECT: Bu yöntem, http protokolündeki bilgi ve verileri bir TCP/IP tüneline dönüştürür. Bu eylem genellikle güvenli olmayan bir proxy sunucusu üzerinden güvenli bir bağlantı (HTTPS) oluşturmak için kullanılır.
PATCH: Bu yöntem, 2010 yılında http protokolüne eklenmiştir. Bu yöntem sunucu üzerinde istenilen veriler üzerinde küçük değişiklikler yapmak için kullanılır.
HTTP’de Yanıtların ve İsteklerin Yapısı
HTTP protokolündeki istek ve yanıt mesajlarının biçimi benzerdir. Her iki mesaj da aşağıdaki bileşenleri içerir:
Başlangıç çizgisi: Başlangıç çizgisi boşluklarla(Space) ayrılmış 3 bölümden oluşur. İlk bölüm, kullanımda olan HTTP sürümünü (Version) gösterir. Başlatıcı satırın ikinci ve üçüncü kısmı, istek veya yanıt gönderme durumuyla ilgili kodu ve mesajı gösterir.
Başlık satırları: Başlık satırları, istek veya yanıt için gerekli bilgileri hazırlar. Her Başlık ayrı bir satırda tanımlanır ve yapısı KEY:VALUE şeklindedir. Bu bölümde server adı, body hakkında bilgi vb. bilgilerden bahsedilmektedir.
Boş bir satır: Başlık satırlarından sonra boş bir satır yerleştirilir.
Gövde: Bir HTTP mesajı, başlık satırlarından sonra bir gövde içerebilir. Bu bölümde kullanıcı tarafından girilen veriler, bir formun sonuçları vb. bilgiler kaydedilerek sunucuya gönderilir.
HTTP’deki Proxy’ler
Proxy’ler veya proxy sunucuları, istemci cihaz ile sunucu arasında giden uygulama katmanı sunucuları, bilgisayarlar veya diğer makinelerdir. Proxy’ler, istemci ile sunucu arasında HTTP isteklerini ve yanıtlarını iletir. Tipik olarak, her istemci-sunucu etkileşimi için bir veya daha fazla proxy vardır.
Proxy’ler şeffaf olabilir veya şeffaf olmayabilir. Şeffaf proxy’ler, istemcinin isteğini değiştirmez, bunun yerine orijinal biçiminde sunucuya gönderir. Şeffaf olmayan proxy’ler, müşterinin isteğini bir ölçüde değiştirecektir. Şeffaf olmayan proxy’ler, genellikle sunucunun alma hızını artırmak için ek hizmetler için kullanılabilir.
Web geliştiricileri proxy’leri aşağıdaki amaçlar için kullanabilir:
Kaydetmek: Önbellek sunucuları, içeriği daha hızlı alabilmeleri ve sitenin bant genişliği talebini azaltabilmeleri için web sayfalarını veya diğer İnternet içeriğini yerel olarak depolayabilir.
kimlik doğrulama: Programlara ve çevrimiçi bilgilere erişim ayrıcalıklarını kontrol edebilir.
Giriş yapmak: Sunucuya istek gönderen istemcilerin IP adresleri gibi geçmiş verileri depolamak.
Web filtreleme: güvenliği tehlikeye atabilecek veya uygunsuz içerik barındırabilecek web sayfalarına erişimi kontrol edebilir.
Yük dengeleme: Sunucuya yapılan istemci istekleri, bir sunucu yerine birden çok sunucu tarafından işlenebilir.
HTTP Bağlantı Noktası Nedir?
İnterneti kullandığınızda, cihazlarınızın her birinin benzersiz bir IP adresi vardır. Örneğin, internete bağlanmak için bir dizüstü bilgisayar veya akıllı telefon kullanabilirsiniz. Bu durumda, dizüstü bilgisayarınızın veya cep telefonunuzun, İnternette tanınabilen benzersiz bir IP adresi vardır. Daha iyi anlamak için, cihazınızı bir evle ve IP’sini de posta koduyla karşılaştırabilirsiniz.
Ancak cihaza erişmek için bağlantı noktasına da sahip olmanız gerekir. Bağlantı noktası evin kapısına veya penceresine benzetebilirsiniz. Yani bir cihazın IP adresine ve Port’una sahip olarak o cihaza girebilirsiniz.
İnternette, her birinin belirli bir kullanımı olan birçok farklı bağlantı noktası vardır. Örnek olarak, bu portların en ünlülerinden biri, HTTP protokolünü kullanarak bilgi aktarmak için kullanılan 80 numaralı porttur. Ayrıca, FTP protokolünü kullanarak bilgi aktarmayı düşünüyorsanız, 40 numaralı bağlantı noktasını kullanmalısınız.
DDoS saldırıları HTTP Üzerinden Başlatılabilir mi?
HTTP’nin “durumsuz” bir protokol olduğunu, yani her komutun diğer komutlardan bağımsız çalıştığını unutmayın. Orijinal spesifikasyonda, HTTP isteklerinin her biri bir TCP bağlantısı oluşturmuş ve kapatmıştır. HTTP protokolünün daha yeni sürümlerinde (HTTP 1.1 ve üstü), kalıcı bağlantı, birden çok HTTP isteğinin kalıcı bir TCP bağlantısı üzerinden geçmesine izin vererek kaynak tüketimini artırır. DoS veya DDoS saldırıları bağlamında, büyük miktarlardaki HTTP istekleri, bir hedef cihaza saldırı düzenlemek için kullanılabilir ve uygulama katmanı saldırılarının veya katman 7 saldırılarının bir parçası olarak kabul edilir.
DDoS nedir makalesinde DDoS saldırıları hakkında bilgi edinin.
HTTP vs HTTPS
Şimdi HTTPS ile HTTP arasındaki fark nedir ve neden tüm tarayıcılar kullanıcıları HTTPS kullanmaya teşvik eder sorusuna cevap verelim.
HTTPS, normal HTTP uygulama katmanı altında bir alt katman olarak Güvenli Yuva Katmanı (SSL) veya Aktarım Katmanı Güvenliğinin (TLS) kullanılmasıdır. HTTPS, kullanıcı HTTP sayfası isteklerini ve web sunucusu tarafından döndürülen sayfaları şifreler ve şifrelerini çözer. HTTPS ayrıca gizli dinleme ve ortadaki adam (MitM) saldırılarına karşı koruma sağlar. HTTPS, Netscape tarafından geliştirilmiştir. HTTP’den HTTPS’ye geçiş, ek bir güvenlik ve güven katmanı sunduğu için faydalı kabul edilir.
HTTP | HTTPS |
Güvenli bir köprü metni aktarım protokolü değildir.
Yüksek güvenliğe sahiptir değildir ve içindeki bilgiler korunmaz. |
Güvenli bir köprü metni aktarım protokolü.
Yüksek güvenliğe sahiptir ve içindeki bilgiler korunur. |
80 numaralı bağlantı noktasını kullanır. | 443 numaralı bağlantı noktasını kullanır. |
TCP/IP düzeyinde çalışır. | Ayrı bir güvenli portalı yoktur. TLS/SLT tüneli kullanılarak bir HTTP bağlantısından şifrelenir. |
Arama sıralamasında herhangi bir etkisi yoktur. | Arama sıralamasını yükseltir. |
Bilgisayar korsanlarına karşı savunmasız. | Çok güvenlidir.Veriler ağda görülmeden önce şifrelenir. |
Daha fazla bilgi için Transport Layer Security nedir makalesini okuyun.
HTTPS Protokolünün Kullanımı Nedir?
HTTPS protokolünün sağladığı güvenlik nedeniyle bu protokol birçok yerde kullanılmaktadır. Bu protokolün en önemli kullanımları arasında şunlar yer alır:
- Bankalarda
- Hesap oluşturmak için
- Portallara giriş yaparken
- Online alışverişte ve online mağazalarda
- Gizli ve önemli bilgiler içeren sayfalara girerken
HTTPS Kurulumu HTTP’den Daha mı Pahalı?
HTTP ve HTTPS arasındaki fark şudur: Https’de ek bir ssl şifreleme katmanı vardır ve katlanmanız gereken ekstra maliyet, ssl sertifikası için harcadığınız maliyettir.
HTTP mi Yoksa HTTPS mi?
HTTPS, şifreleme ve doğrulama içeren HTTP’dir. İki protokol arasındaki tek fark, HTTPS’nin normal HTTP isteklerini ve yanıtlarını şifrelemek ve bu istek ve yanıtları dijital olarak imzalamak için TLS (SSL) kullanmasıdır. Sonuç olarak HTTPS, HTTP’den çok daha güvenlidir.
Şu 5 Adım İle Web Sitenizi HTTP’den HTTPS’ye Dönüşturun
Sitenizi HTTP’den HTTPS’ye dönüştürmeyi planlıyorsanız:
- Bir SSL sertifikası ve özel bir IP satın alın. Mavihost gibi bazı barındırma hizmeti sağlayıcılarının, barındırma planları ile ücretsiz olarak SSL sertifikaları verdiklerini belirtmek gerekir. Daha fazla bilgi için Mavihost’un Linux web hosting planlarına bakmanızı tavsiye ederiz.
- İkinci adım, ssl sertifikasını yüklemek ve yapılandırmaktır.
- Üçüncü adım, mevcut web sitesinin bir yedek kopyasını oluşturmaktır.
- Dördüncü adım, http’den https’ye tüm bağlantıları sıfırlamaktır.
- Son olarak, bir CDN kullanıyorsanız, SSL ayarlarını tekrar kontrol etmelisiniz.
Son Söz
Basit bir ifadeyle HTTP, tarayıcı ile sunucu arasında uygun iletişimin kurulmasına yardımcı olan bir protokoldür. Kullanıcı istediği site adresini girdiğinde ilk HTTP isteği gönderilir. Her fotoğraf, css, javascript dosyası vb. için istek gönderilir ve doğru cevap alındıktan sonra sayfa yüklenir. SEO ve Google sonuçlarında sıralamada etkili olan web sayfalarında hız yüklemenin ilkelerinden biri daha az HTTP kullanmaktır. Bunun nedeni bu port anahtarının güvenliğinin HTTPS’ye göre daha düşük olmasıdır.
Bu yazıda HTTP nedir sorusuna cevap aranmıştır. Ayrıca, kullanımı ve bu protokol ile HTTPS arasındaki fark hakkında tam açıklamalar yapılmıştır.
Umarız bu makale sizin için yararlı olmuştur. Yorum ve önerilerinizi bekliyoruz.
Sıkça Sorulan Sorular
En sık sorulan sorulardan bazılarının yanıtları:
HTTP Nedir ve Neden Kullanılır?
Köprü Metni Aktarım Protokolü (HTTP), bir istemci (web tarayıcısı gibi) ile bir web sunucusu arasında bilgilerin kodlanması ve taşınması için bir yöntemdir. HTTP, İnternet üzerinden bilgi aktarımı için birincil protokoldür.
HTML ve HTTP Arasındaki Fark Nedir?
HTML (Köprü Metni İşaretleme Dili) ve HTTP (Köprü Metni Aktarım Protokolü) tamamen farklı iki teknolojidir. HTTP, bilgilerin World Wide Web’de nasıl dolaştığını yöneten bir uygulama protokolüdür, oysa HTML, Web sayfalarının nasıl biçimlendirildiğini ve görüntülendiğini yönetir.
HTTP, HTML Kullanıyor mu?
Köprü Metni Aktarım Protokolü (HTTP), HTML gibi hiper ortam belgelerini iletmek için bir uygulama katmanı protokolüdür. Web tarayıcıları ve web sunucuları arasındaki iletişim için tasarlanmıştır, ancak başka amaçlar için de kullanılabilir.
HTTP Neden TCP Kullanıyor?
TCP, verileri sunucu ve istemci arasında güvenli iletimi sağlayacak şekilde düzenlemek için kullanılır. Ağ üzerinden gönderilen verilerin miktarı ne olursa olsun bütünlüğünü garanti eder.
HTTP Protokolü İle HTTPS Protokolü Arasındaki Fark Nedir?
HTTPS protokolü, HTTP protokolünün güvenli bir sürümüdür. HTTP protokolündeki bilgiler şifrelenmez ve vurguncular ve bilgisayar korsanları tarafından kolayca erişilebilir. Bilgisayar korsanları, bilgi alışverişi yoluna erişerek gönderilen bilgileri görüntüleyebilir. Buna karşılık HTTPS, HTTP’ye alternatif olarak kullanılabilir. Bu protokolde, sunucu ile istemci arasındaki bilgiler şifrelenir ve HTTP protokolünden farklı olarak, yalnızca şifreyi çözecek anahtara sahip olan biri tarafından erişilebilir, böylece gizli bilgilerin çalınması önlenir.