HTTP ve HTTPS Nedir?

HTTP (Hyper-Text Transfer Protocol – Hiper-Metin Aktarım Protokolü), World Wide Web veya WWW’deki her işlemde kullanılan protokoldür.

HTTP Nedir?

HTTP Protokolü Nedir?

HTTP, istemciler ve sunucuları kullanarak, belgelerin biçimini dinamik olarak belirler ve veri alışverişi için standart olmayan veri biçimlerini kullanmalarına izin verir. Alıcının verileri görüntüleme veya bunlara erişme yolu yoksa, içeriği almanıza izin veren bir eklenti programı indirebilirsiniz.

Üstbilgileri, uygulamanın Web üzerinden aktardığı nesneler hakkında bilgi içerebilir. Üstbilgi bilgileriyle, İstemci-Sunucu uygulamaları nesneleri aktarmak için kullanabilecekleri biçimler üzerinde anlaşırlar. Üstbilgi bilgilerini tanımazlarsa, bunları yoksayarlar. Bu nedenle, HTTP’nin bütünlüğünden ödün vermeden yeni protokolleri Web üzerinde test edebilirsiniz. Ayrıca, protokol metin tabanlıdır, bu nedenle okunabilir ve kod çözme gerektirmez.

Tarihi

HTTP, 1999 yılında, en önemlisi RFC 2616 olan 1.1 sürümünü belirten bir dizi RFC’nin yayınlanmasıyla sonuçlanan bir işbirliği olan World Wide Web Consortium (World Wide Web Konsorsiyumu) ve Internet Engineering Task Force (İnternet Mühendisliği Görev Gücü) – IETF tarafından geliştirilmiştir. Ayrıca, web mimarisi yazılım öğelerinin (istemciler, sunucular, proxy’ler) iletişim kurmak için kullandığı sözdizimini ve semantiği tanımlar.

Bu işleme yönelik bir protokoldür ve bir istemci ile bir sunucu arasındaki talep-yanıt şemasını takip eder. İsteği yapan istemci (web tarayıcısı veya örümcek) “kullanıcı aracısı” olarak bilinir. İletilen bilgilere kaynak denir ve tekdüze bir kaynak bulucu (URL) tarafından tanımlanır. Kaynaklar dosyalar, bir programın yürütülmesinin sonucu, bir veritabanına sorgulama, bir belgenin otomatik çevirisi olabilir.

HTTP durum bilgisi olmayan bir protokoldür, yani önceki bağlantılar hakkında herhangi bir bilgi depolamaz. Web uygulaması geliştirmenin sık sık durumu koruması gerekir. Bunun için, bir sunucunun istemci sistemde depolayabileceği bilgiler olan çerezler kullanılır. Bu, web uygulamalarının “session/oturum” kavramını başlatmasına ve çerezlerin istemcide süresiz olarak saklanabilmesi nedeniyle kullanıcıların izlenmesine olanak tanır.

İşlemleri

P işlemi isteğe bağlı olarak boş bir satır ve bazı verilerden sonra gelen bir başlıktan oluşur. Üstbilgi, gerekli sunucu eylemi veya döndürülen veri türü veya durum kodu gibi şeyleri belirtir.

TP trans ile gönderilen başlık alanlarının kullanımı protokole büyük esneklik sağlar. Bu alanlar işlemde açıklayıcı bilgilerin gönderilmesine izin vererek kimlik doğrulama, şifreleme ve kullanıcı tanımlamasına izin verir.

Üstbilgi, bilginin kendisinden önce gelen bir veri bloğudur, bu nedenle veriler hakkında veri içerdiği için genellikle meta veri olarak adlandırılır.

Üstbilgi satırları istemciden alınırsa, sunucu bunları HTTP_ önekinin ardından başlık adının bulunduğu CGI ortam değişkenlerine yerleştirir. Üstbilgi adındaki tüm tire (-) karakterleri “_” karakterlerine dönüştürülür.

Sunucu, Yetkilendirme, İçerik türü ve İçerik uzunluğu gibi önceden işlenmiş tüm başlıkları hariç tutabilir. Sunucu, dahil etme sistem ortamının bir sınırını aşarsa başlıkların bir kısmını veya tamamını hariç tutmayı seçebilir. Bunun örnekleri HTP_ACPT ve HTP_R_AEN değişkenleridir.

  • HT_AEP: Üstbilgileri verildiğinde istemcinin kabul edeceği MIME türleridir. Diğer protokollerin bu bilgiyi başka bir yerden alması gerekebilir. Spesifikasyonunda belirtildiği gibi bu listedeki öğeler virgülle ayrılmalıdır: type, type.
  • HTT_USR_AET: İstemcinin istekte bulunmak için kullandığı tarayıcı. Bu değişkenin genel biçimi yazılım/kütüphane sürümüdür.

Sunucu istemciye şunları gönderir:

  1. İsteğin başarılı olup olmadığını gösteren bir durum kodu. Tipik hata kodları, istenen dosyanın bulunamadığını, isteğin başarısız olduğunu veya dosyaya erişmek için kimlik doğrulamanın gerekli olduğunu gösterir.
  2. Her tür ve formattaki belgenin gönderilmesine izin verdiğinden, grafik, ses ve video gibi multimedya iletimi için idealdir. Bu özgürlük HTTP’nin en büyük avantajlarından biridir.
  3. İade edilen nesne hakkında bilgi.

Listenin başlık alanlarının tam bir listesi olmadığını ve bazılarının yalnızca bir yönde anlamlı olduğunu lütfen unutmayın.

Sürümler

Bu protokolün birçoğu geriye dönük uyumlu olan birden fazla sürümünü kullanmıştır. RFC-2145, sürüm numaralarının kullanımını açıklar. İstemci, istemin başlangıcında sunucuya kullandığı sürümü bildirir ve sunucu yanıtında aynı veya bir öncekini kullanır.

   0.9

Eski. Yalnızca bir komutu (GET) destekler ve ayrıca sürüm numarasını belirtmez. Üstbilgileri desteklemez. Bu sürüm POST’u desteklemediğinden, istemci sunucuya fazla bilgi gönderemez.

   HTTP/1.0 (Mayıs 1996)

Bu, iletişimdeki sürümünü belirten protokolün ilk revizyonudur ve özellikle proxy sunucularında hala yaygın olarak kullanılmaktadır.

   HTTP/1.1 (Haziran 1999)

Şimdiki versiyonu; kalıcı bağlantılar varsayılan olarak etkindir ve proxy’lerle iyi çalışır. Ayrıca, istemcinin aynı anda birden fazla istek göndermesine (pipelining/boru hattı) izin verir, bu da her istek için Gidiş-Dönüş gecikme süresini ortadan kaldırmayı mümkün kılar.

   HTTP/1.2 (Şubat 2000)

PEP belgesinin ilk 1995 taslakları için bir Genişletme Mekanizması (Protokol Genişletme Protokolü – PEP) World Wide Web Konsorsiyumu tarafından yapılmış ve IETF’ye gönderilmiştir. PEP’in başlangıçta HTTP/1.2’nin ayırt edici bir aralığı olması amaçlanmıştır. Ancak daha sonraki taslaklarda, HTTP/1.2’ye yapılan atıf kaldırıldı. Bu sürümde Uzantı Çerçevesi büyük ölçüde PEP içerir.

İletişim Örneği

HTTP için varsayılan bağlantı noktası olan bağlantı noktası 80 olan ana bilgisayar cisco.com’a bir bağlantı açılır ve aşağıdaki stilde bir mesaj gönderilir:

Sunucu yanıtı, bir web sayfası durumunda istenen kaynağın ardından gelen kaynaklardan oluşur:

Örnek İletim Durumu

Nasıl Çalışır?

Tanımlanan kaynakta gerçekleştirilmesini istediğiniz eylemi belirten 8 yöntem (bazen “fiiller” olarak adlandırılır) tanımlar. Bu kaynağın temsil ettiği, önceden varolan veriler veya dinamik olarak oluşturulan veriler, sunucu uygulamasına bağlıdır. Kaynak genellikle bir dosyaya veya sunucuda bulunan bir yürütülebilir dosyanın çıktısına karşılık gelir.

  1. HEAD: Yanıtın, bir GET isteğine karşılık gelenle aynı yanıtı, ancak yanıtın gövdesi olmadan sorar. Bu, tüm başlıkların taşınmasına gerek kalmadan yanıt başlıklarında yazılan meta bilgileri almak için kullanışlıdır.
  2. GET: Belirtilen kaynağın temsilini ister. Güvenlik için, URL’ye parametreler ekleyerek URI üzerinden bilgi ilettiği için, efekt oluşturan uygulamalar tarafından kullanılmamalıdır.’Örnek: GET /images/logo.png HTTP/1.1, logo.png adlı bir kaynak alır.
    Parametreli örnek: /index.php?page=main
  3. POST: Tanımlanan kaynak için işlenecek verileri gönderir. Veriler talebin gövdesine dahil edilecektir. Bu, yeni bir kaynak oluşturulmasına veya mevcut kaynaklarda veya her ikisinde güncellemelere neden olabilir.
  4. PUT: Belirtilen bir kaynaktan (dosya) karşıya yükleme, karşıya yükleme veya yükleme, dosyaları sunucuya yüklemenin en etkili yoludur, bunun nedeni POST’ta çok parçalı bir mesaj kullanılması ve mesajın sunucu tarafından çözülmesidir. Buna karşılık, PUT yöntemi, sunucuyla kurulan bir soket bağlantısına bir dosya yazmanıza olanak tanır. PUT yönteminin dezavantajı, paylaşılan barındırma sunucularının etkinleştirilmemesidir.Örnek: PUT /yol/dosyaadı.html HTTP/1.1
  5. DELETE: Belirtilen kaynağı siler.
  6. TRACE: Bu yöntem, sunucudan varlık gövdesi bölümünde bir yanıt iletisinde istek iletisinden aldığı tüm verileri geri göndermesini ister. Test ve teşhis amaçlı kullanılır.
  7. OPTIONS: Sunucunun belirli bir URL için desteklediği yöntemleri döndürür. Bu, belirli bir kaynak yerine istek üzerine bir web sunucusunun işlevselliğini denetlemek için kullanılabilir
  8. CONNECT

Durum Kodları

  • 1xx Messages
    100 111 Connection refused
  • 2xx Operation successful
    200 OK
    201-203 Unofficial information
    204 No Content
    205 Content to recharge
    206 Partial Content
  • 3xx Redirection
    301 permanently moved
    302 Found
    303 See others
    304 Not modified
    305 Use a proxy
    307 Temporary redirection
  • 4xx Customer error
    400 Incorrect request
    402 Payment required
    403 Prohibited
    404 Not found
    409 Conflict
    410 No longer available
    412 Precondition failed
  • 5xx server error
    500 Internal error
    501 Not implemented
    502 Incorrect gateway
    503 Service not available
    504 Gateway timeout expired
    505 Version not supported.

HTTPS Nedir?

HTTPS (Hypertext Transfer Protocol Secure), güvenli bir Hiper-Metin Aktarım Protokolüdür.

Şifreli iletişim sağlamak ve ağdaki bir web sunucusunun güvenli tanımlanmasını sağlamak için Köprü Metni Aktarım Protokolü’nün SSL/TLS protokolü ile birlikte kullanılması sağlanır ve genellikle World Wide Web’deki ödeme işlemleri ve kurumsal bilgi sistemlerindeki hassas işlemler için kullanılır.

Tarihi

Netscape Communications, 1994 yılında Netscape Navigator tarayıcısı için HTTPS oluşturdu. Başlangıçta sadece SSL şifrelemesi için kullanıldı, ancak bu TLS altında kullanılmadı. HTTPS, Mayıs 2000’de RFC 2818’in yayımlanması ile bir web standardı olarak kabul edildi.

Teknik Özellikler

HTTP protokolünden daha hassas bilgi trafiği için daha uygun olan şifreli bir kanal oluşturmak için SSL/TLS tabanlı şifreleme kullanır (şifreleme düzeyi uzak sunucuya ve istemci tarafından kullanılan tarayıcıya bağlıdır).

Bu, hassas bilgilerin (normalde kullanıcı ve şifreler) bağlantının veri aktarımını başarılı bir şekilde engelleyen bir saldırgan tarafından kullanılamamasını sağlar, çünkü elde edilecek tek şey deşifre edilemeyeceği şifreli bir veri akışı olacaktır.

Bu protokol için standart bağlantı noktası 443’tür.

Tarayıcı ile Entegrasyon

HTTPS protokolünün kullanılması HTTP’nin kullanılmasını engellemez.

HTTPS protokolleri, diğerleri arasında Safari, Internet Explorer, Mozilla Firefox, Opera ve Google Chrome gibi tarayıcılar tarafından kullanılır.

Bazı tarayıcılar, güvenli bir iletişim protokolünün varlığını belirtmek için adres çubuğunun sağ tarafında bir simge (genellikle bir asma kilit) kullanır ve hatta tanımlamak için adres çubuğunun arka plan rengini mavi (Firefox) veya yeşil (Internet Explorer) olarak değiştirir güvenli web sayfaları. Geçersiz bir sertifikaya sahip bir siteye bağlanırken, çoğu modern tarayıcı tüm pencerede bir uyarı görüntüler.

Daha yeni tarayıcılar da adres çubuğunda site hakkında çok daha fazla güvenlik bilgisi görüntüler. Çoğu tarayıcı, kullanıcı şifrelenmiş ve şifrelenmemiş içerik karışımı içeren bir siteyi ziyaret ettiğinde de bir uyarı görüntüler. Ziyaret edilen bir web sayfasının https protokolünü kullanıp kullanmadığını ve bu nedenle, kopyalanan verilerin iletimi açısından güvenli olup olmadığını bilmek için, başlangıçta tarayıcının adres çubuğunda HTTP yerine HTTPS’nin etkin olduğu dikkat edilmelidir.

HTTP ile HTTPS Protokolü Arasındaki Farklar

HTTP protokolünde URL’ler “http://” ile başlar ve varsayılan olarak 80 numaralı bağlantı noktasını kullanır. HTTPS URL’leri “https://” ile başlar ve varsayılan olarak 443 numaralı bağlantı noktasını kullanır.

HTTP güvenli değildir ve saldırganın web sitesi hesaplarına ve gizli bilgilere erişmesine izin verebilecek man-in-the-middle (ortadaki adam) ve eavesdropping attacks (gizli dinleme) saldırılarına açıktır. HTTPS bu saldırılara karşı koymak ve güvende olmak için tasarlanmıştır.

Ağ Katmanları

HTTP protokolü, OSI Modelinin, Uygulama Katmanı’nın en üst katmanında çalışır; ancak güvenlik protokolü alt bir alt katmanda çalışır, iletimden önce bir HTTP mesajını şifreler ve bir mesajın alınmasından sonra şifresini çözer. Kesin olarak, HTTPS ayrı bir protokol değildir, ancak şifreli bir Güvenli Yuva Katmanı (SSL) Katmanı veya Aktarım Katmanı Güvenliği (TLS) ile bağlantı üzerinden sıradan HTTP kullanımını ifade eder.

Sunucu Yapılandırması

HTTPS bağlantılarını kabul eden bir web sunucusu hazırlamak için yöneticinin web sunucusu için bir Public Key Certificate (Ortak Anahtar Sertifikası) oluşturması gerekir. Web tarayıcısının kabul etmesi için bu sertifikanın bir Sertifika Yetkilisi tarafından imzalanmış olması gerekir. Yetkili, sertifika sahibinin söylediği kişi olduğunu onaylar. Web tarayıcıları genellikle, çoğu Sertifika Yetkilisi tarafından imzalanan kök sertifikalarla dağıtılır, böylece onlar tarafından imzalanan sertifikaları doğrulayabilirler.

Sertifika Alma

Sertifika almak ücretsiz olabilir (genellikle yalnızca diğer hizmetler için ödeme yaparsanız).

Kuruluşlar, özellikle kendi sitelerinde (örneğin bir intranet şirketindeki siteler veya büyük üniversiteler) tarayıcılara erişim sağlamaktan sorumluysa, kendi sertifika yetkilileri de olabilir. Tarayıcı ile dağıtılan güvenilir sertifikalara kendi imzalı sertifikalarının kopyalarını kolayca ekleyebilirler.

Ayrıca eşler arası sertifika yetkilileri de vardır.

Erişim Denetimi Kullanma

Sistem, bir web sunucusuna erişimi yetkili kullanıcılarla sınırlamak için istemci kimlik doğrulaması için de kullanılabilir. Bunu yapmak için, site yöneticisi genellikle her kullanıcı için bir sertifika, tarayıcılarına kaydedilen bir sertifika oluşturur. Normalde, bu, yetkili kullanıcının adını ve e-posta adresini içerir ve kullanıcının kimliğini doğrulamak için her bağlantıda otomatik olarak kontrol edilir ve her seferinde bir şifre girmek zorunda kalmaz.

Tehlikeli Özel Anahtarlar Durumunda

Bir sertifikanın süresi dolmuşsa, örneğin özel anahtarın sırrı tehlikeye düştüğünde iptal edilebilir. Windows 7’de Mozilla Firefox, Opera ve Internet Explorer gibi daha yeni tarayıcılar, durumun böyle olmadığını doğrulamak için Online Certificate Status Protocol (Çevrimiçi Sertifika Durum Protokolü’nü) – (OCSP) uygular. Tarayıcı sertifikanın seri numarasını sertifika yetkilisine gönderir veya OCSP aracılığıyla yetkilendirilir ve yetkili yanıt verir ve tarayıcıya sertifikayı geçerli olarak kabul edip etmeyeceğini bildirir.

Sınırlamalar

Koruma düzeyi, web tarayıcısının, sunucu yazılımının ve şu anda desteklenen şifreleme algoritmalarının uygulanmasının doğruluğuna bağlıdır.

Ayrıca, mevcut statik yayın içeriğine uygulandığında HTTPS savunmasızdır. Tüm site bir Web Örümceği kullanılarak dizine eklenebilir ve şifrelenmiş kaynağın URI’sı yalnızca isteğin/yanıtın boyutunu bilerek tahmin edilebilir. Bu, bir saldırganın Düz Metin’e (yayın için statik içerik) ve Şifreli Metin’e (statik içeriğin şifrelenmiş sürümü) erişmesine olanak tanır ve kripto saldırısına izin verir.

SSL HTTP altında çalıştığı ve daha üst düzey protokollerin farkında olmadığından, SSL sunucuları yalnızca belirli bir bağlantı noktası/IP birleşimi için bir sertifika sunabilir. Bu, çoğu durumda HTTPS ile sanal ad tabanlı barındırma kullanılması önerilmez. Bağlantı şifrelenmeden önce sunucu adını sunucuya gönderen Server Name Indication (Sunucu Adı Göstergesi) – (SNI) adlı bir çözüm var, ancak daha eski tarayıcıların çoğu bu uzantıyı desteklemiyor. SNI desteği, Windows Vista’daki Firefox 2, Opera 8 ve Internet Explorer 7’den edinilebilir.

   İlgili Yazılar


WAN Nedir?
TCP Nedir?
IP Nedir?
TCP/IP
VoIP Nedir?

Add a Comment

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

You cannot copy content of this page