# HTTP/HTTPS

HTTP (Hyper Text Transfer Protocol), internetin temel iletişim protokolüdür. Tim Berners-Lee tarafından 1989'da CERN'de geliştirilmeye başlandığında, amacı, bilgisayarlar arasında hipermetin belgelerini aktarmaktı. Bu, internetin ilk günlerinde sadece metin tabanlı sayfaların aktarılması anlamına geliyordu. Ancak, internetin gelişimiyle birlikte HTTP'nin rolü ve fonksiyonu sürekli evrim geçirdi.

HTTP'nin temel prensibi, istemci-sunucu modeline dayanır. İstemci (genellikle bir web tarayıcısı), sunucuya (web sitesi veya web uygulaması barındıran bir bilgisayar) bir istek gönderir ve sunucu da bu isteği işler ve istemciye yanıt verir. Bu süreç, HTTP'nin protokolünün temel alışveriş kurallarını oluşturur.

{% hint style="info" %}
İstek (Request): İstemci, sunucuya bir istek gönderir. Bu istek, bir kaynağa erişmek veya belirli bir işlemi gerçekleştirmek için yapılır.

Yanıt (Response): Sunucu, istemcinin gönderdiği isteği işler ve bir yanıt oluşturur. Bu yanıt, istemciye gönderilir ve isteğin başarıyla işlenip işlenmediğini belirtir.

Bağlantı Kurma (Connection Establishment): İstemci ve sunucu arasında bir bağlantı kurulur ve istekler ile yanıtlar bu bağlantı üzerinden iletilir.

Durumsuzluk (Statelessness): HTTP, durumsuz bir protokoldür. Bu, her isteğin bağımsız olduğu ve önceki isteklerle ilişkisinin olmadığı anlamına gelir. Her istek, kendine özgü bilgiler içerir ve sunucu bu isteği işledikten sonra bu bilgileri unutur.
{% endhint %}

## HTTP Versiyonları

<figure><img src="https://10693534-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpHJ8OuTO6xpfwqkn7vmg%2Fuploads%2Fgit-blob-a3be551452aa85cf04e332f0d81d28f4391f3f92%2Fhttp-versiyonlari.png?alt=media" alt=""><figcaption></figcaption></figure>

HTTP'nin ilk sürümü olan HTTP/0.9, sadece tek bir komutla sınırlıydı: GET. Bu, istemcinin sunucudan bir belgeyi istemesini sağlar. Ancak, webin ve internetin büyümesiyle birlikte, ihtiyaçlar da arttı ve HTTP'nin daha gelişmiş sürümleri ortaya çıktı.

HTTP/1.0, 1996'da tanıtıldı ve birden fazla belge alma, belge meta datalarını gönderme ve web sunucuları arasında çerezleri (cookies) kullanma gibi yeni özellikler getirdi. Ancak, HTTP/1.0'ın performansı zamanla yetersiz hale geldi ve büyük web siteleri için verimlilik sorunları ortaya çıktı.

Bu ihtiyaçlar doğrultusunda HTTP/1.1 geliştirildi. 1997'de tanıtılan HTTP/1.1, bağlantı yeniden kullanımını destekleyerek sunucu ve istemci arasındaki iletişimi hızlandırdı. Ancak, internet trafiğinin artmasıyla birlikte HTTP/1.1'in bazı sınırlamaları da ortaya çıktı. Özellikle, aynı anda birden fazla isteğin işlenmesini sağlamak için yeni teknikler gerekiyordu.

Bu ihtiyaçları karşılamak için HTTP/2 geliştirildi ve 2015'te tanıtıldı. HTTP/2, tek bir bağlantı üzerinden çoklu veri akışını destekleyerek, sayfa yükleme hızlarını artırırken aynı zamanda güvenliği de iyileştirdi. Bu sürüm, web'deki performansı ve kullanıcı deneyimini önemli ölçüde artırdı.

HTTP/3 ise daha yeni bir gelişmedir. TCP yerine UDP (User Datagram Protocol) kullanarak iletişimi sağlar. Bu, paket kaybı ve gecikme gibi TCP'nin bazı dezavantajlarını hafifletir. HTTP/3'ün amacı, daha hızlı ve daha güvenli bir web deneyimi sunmaktır.

Gelecekte, HTTP'nin daha da geliştirilmesi beklenmektedir. Özellikle, mobil cihazların ve nesnelerin internetinin (IoT) yaygınlaşmasıyla birlikte, daha hızlı, daha güvenli ve daha verimli iletişim protokolleri gerekecektir. Bu nedenle, HTTP'nin evrimi ve gelişimi, internetin geleceğinde önemli bir rol oynamaya devam edecektir.

## HTTPS Nedir?

<figure><img src="https://10693534-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpHJ8OuTO6xpfwqkn7vmg%2Fuploads%2Fgit-blob-ef111e0eee0a4f503fafc81e12d9f02d2b3d2175%2Fhttps-nedir.jpg?alt=media" alt=""><figcaption></figcaption></figure>

HTTPS, günümüzde internet üzerindeki iletişimin güvenliğini sağlamak için yaygın olarak kullanılan bir iletişim protokolüdür. Bu protokol, internet kullanıcılarının günlük hayatlarında sık sık etkileşimde bulunduğu web siteleriyle olan iletişimlerini korurken, aynı zamanda hassas bilgilerin güvenliğini sağlar. HTTP'nin (Hypertext Transfer Protocol) güvenli versiyonu olarak bilinen HTTPS, temel olarak aynı işlevi görse de, güvenlik açısından daha katı önlemler içermesiyle ayrılır.

HTTPS'in en önemli özelliği, veri aktarımı sırasında iletilen bilgilerin şifrelenmesidir. Bu, kullanıcıların kişisel bilgileri, finansal verileri ve diğer hassas bilgileri paylaşırken, bu bilgilerin üçüncü taraflar tarafından erişilmesini veya izlenmesini engeller. Özellikle, banka işlemleri yapmak, e-posta hesaplarına erişmek veya sağlık bilgilerini paylaşmak gibi durumlarda, HTTPS'in sağladığı güvenlik hayati önem taşır.

HTTPS'in kullanılması, web siteleri arasında güvenilir iletişimi sağlamak için kimlik doğrulamasını da içerir. Bu, web tarayıcıları ve sunucular arasındaki iletişimin güvenilir olduğunu doğrulayan dijital sertifikalar aracılığıyla gerçekleşir. Bu sayede, kullanıcılar web sitelerine güvenle erişebilir ve iletişim kurabilirler, çünkü güvenli bir bağlantıya sahip olduklarını bilirler.

Ayrıca, HTTPS'in kullanılması, ortadaki adam saldırılarına karşı koruma sağlar. Bu tür saldırılar, iletişimin alıcısı ve göndericisi arasında müdahale edilerek bilgilerin izlenmesi veya değiştirilmesi anlamına gelir. HTTPS, iletişimin her iki tarafı arasında şifreleme sağlayarak, bu tür saldırıları engeller ve verilerin güvenliğini sağlar.

{% hint style="info" %}
HTTPS internet üzerindeki iletişimin güvenliğini sağlamak için kritik bir araçtır. Web siteleri tarafından kullanılması, kullanıcıların çevrimiçi güvenliklerini artırır ve kişisel bilgilerinin güvenliğini korur. Bu nedenle, hem web siteleri hem de internet kullanıcıları için önemli bir husustur ve güvenli bir internet deneyimi için vazgeçilmezdir.
{% endhint %}

## SSL Sertifikası Nedir?

<figure><img src="https://10693534-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpHJ8OuTO6xpfwqkn7vmg%2Fuploads%2Fgit-blob-c6836b87e98fe623364fa1555023f815ff69cf29%2FSSL-Sertifikasi-Nedir.jpg?alt=media" alt=""><figcaption></figcaption></figure>

SSL sertifikası, günümüz dijital dünyasında bilgi güvenliğinin temel taşlarından biridir. Web siteleri arasındaki iletişimi şifreleyerek bilgi güvenliğini sağlayan bu dijital sertifika, çevrimiçi işlemlerin güvenliğini ve gizliliğini korumak için kritik bir rol oynar.

SSL, "Secure Sockets Layer" teriminin kısaltmasıdır ve bir web sunucusu ile kullanıcı arasında güvenli bir iletişim kanalı kurar. Bu protokol, web sitelerinin kimliklerini doğrular ve verilerin şifrelenerek güvenli bir şekilde iletilmesini sağlar. Bu, kullanıcıların hassas bilgilerini (örneğin kredi kartı numaraları, şifreler vb.) aktardıklarında bu bilgilerin kötü niyetli kişilerin eline geçmesini engeller.

SSL sertifikası, bir web sitesinin güvenilirliğini sağlayan önemli bir unsurdur. Bir web sitesi SSL sertifikasına sahip olduğunda, tarayıcılar ziyaret edenlere güvenli bir bağlantı olduğunu belirten bir kilit simgesi gösterir. Bu, kullanıcıların web sitesine güvenle erişebileceklerini ve kişisel bilgilerini paylaşabileceklerini gösterir.

SSL sertifikaları, genellikle bir web sunucusu ve web tarayıcısı arasında güvenli iletişim için bir çift anahtar kullanır: biri özel anahtar (private key) ve diğeri ise genel anahtar (public key). Bu anahtarlar, verilerin şifrelenmesi ve çözülmesi işlemlerinde kullanılır. Özel anahtar, sadece sunucuda saklanır ve genel anahtar, ziyaretçilere gönderilir. Bu sayede, sadece doğru alıcı tarafından okunabilir ve anlaşılabilir veriler iletilir.

SSL sertifikası almak için çeşitli sağlayıcılar bulunmaktadır. Sertifika türleri, sitenin ihtiyaçlarına göre değişiklik gösterebilir. Örneğin, bireysel bir web sitesi için standart SSL sertifikası yeterli olabilirken, bir e-ticaret sitesi için daha kapsamlı bir sertifika gerekebilir. Bu noktada, doğru sertifikayı seçmek önemlidir, çünkü uygun olmayan bir sertifika sitenin güvenliği açısından risk oluşturabilir.

Sonuç olarak, SSL sertifikaları, internet üzerinde güvenli ve güvenilir bir iletişim sağlamak için kritik bir role sahiptir. Bu sertifikalar, web sitelerinin güvenilirliğini artırır, kullanıcıların güvenliğini korur ve çevrimiçi işlemleri daha güvenli hale getirir. Bu nedenle, herhangi bir web sitesi sahibi için SSL sertifikası edinmek önemli bir adımdır.

## HTTP ve HTTPS Farkları Nelerdir?

<figure><img src="https://10693534-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpHJ8OuTO6xpfwqkn7vmg%2Fuploads%2Fgit-blob-b1ac2d27a45ac8b265e9d798e05c1cef2003e7af%2Fhttp-https-arasindaki-farklar.jpg?alt=media" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
HTTP (Hypertext Transfer Protocol) ve HTTPS (Hypertext Transfer Protocol Secure), internet üzerinde bilgi alışverişi için kullanılan temel protokollerdir. Her iki protokol de web tarayıcıları ile sunucular arasında iletişim kurmada kullanılır.
{% endhint %}

### HTTP'nin Özellikleri

HTTP, web tarayıcıları ile sunucular arasında metin, görüntü, ses ve video gibi çeşitli veri türlerinin iletilmesini sağlayan bir iletişim protokolüdür. Temel amacı, bir web sayfasının tarayıcıya gönderilmesini ve görüntülenmesini sağlamaktır. Ancak, HTTP ile iletilen veriler açık metin formatında gönderilir, yani şifrelenmez. Bu da, verilerin istenmeyen kişiler tarafından izlenmesine ve çalınmasına olanak tanır.

HTTP'nin bu açık metin iletişimi, bilgi güvenliği açısından ciddi bir risk oluşturabilir. Özellikle, kullanıcıların kişisel bilgileri gibi hassas verilerin bu şekilde iletilmesi, bilgi hırsızlığı ve veri sızıntısı gibi sorunlara yol açabilir.

### HTTPS'in Özellikleri

HTTPS, HTTP'nin güvenli bir sürümüdür ve iletişimin şifrelenmesini sağlar. Bu şifreleme, SSL (Secure Sockets Layer) veya TLS (Transport Layer Security) protokolleri kullanılarak gerçekleştirilir. HTTPS kullanan bir web sitesi, tarayıcı ile sunucu arasında güvenli bir bağlantı kurar ve böylece kullanıcıların bilgilerinin gizliliğini korur.

HTTPS'nin kullanılması, veri güvenliğini artırır ve kullanıcıların çevrimiçi etkileşimlerini daha güvenli hale getirir. Özellikle, e-ticaret siteleri, banka web siteleri ve diğer hassas bilgilerin aktarıldığı platformlar için HTTPS kullanımı zorunludur. Bu, kullanıcıların kişisel bilgilerinin ve finansal verilerinin güvenliğini sağlamak için önemli bir adımdır.

#### HTTP ve HTTPS Arasındaki Temel Farklar

* **Veri Şifreleme:** HTTP'de herhangi bir şifreleme yoktur, bu nedenle veriler açık metin halinde iletilirken, HTTPS tüm verilerin şifrelenerek iletilmesini sağlar.
* **URL Formatı:** HTTP kullanan bir site, URL'sinin başında "http://" ile başlar; HTTPS kullanan bir site ise "https://" ile başlar.
* **Güvenlik Değeri:** HTTP güvenli bir protokol olarak kabul edilmezken, HTTPS güvenli bir protokol olarak kabul edilir.
* **Alan Doğrulaması:** HTTPS, etki alanlarının doğrulanmasını ve yasal işlem gerektiren sertifikaların varlığını zorunlu kılar, ancak HTTP bunu yapmaz.
* **Sertifika Doğrulaması:** HTTPS kullanımı için SSL sertifikasının yetkilendirilmiş birimler tarafından doğrulanması gerekirken, HTTP'de bu bir zorunluluk değildir.

{% hint style="info" %}
HTTP ve HTTPS arasındaki bu farklar, internet üzerindeki güvenlik ve gizlilik standartlarını belirler. HTTPS'nin kullanımı, kullanıcıların çevrimiçi etkileşimlerini daha güvenli hale getirirken, HTTP'nin kullanımı güvenlik risklerini beraberinde getirebilir. Bu nedenle, web sitelerinin güvenliği ve kullanıcı gizliliği için HTTPS'nin tercih edilmesi önemlidir.
{% endhint %}

## HTTPS Nasıl Çalışır?

<figure><img src="https://10693534-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpHJ8OuTO6xpfwqkn7vmg%2Fuploads%2Fgit-blob-fe136a278c7a3c1e946e89ce98d2a144dd8f81f4%2Fhttps-nasil-calisir.jpg?alt=media" alt=""><figcaption></figcaption></figure>

### HTTPS: Güvenli İnternet Protokolü

İnternet kullanımı günümüzde hayatımızın vazgeçilmez bir parçası haline gelmiştir. Ancak, bu dijital çağda bilgi paylaşımının artması, güvenlik endişelerini de beraberinde getirmiştir. İşte bu noktada, HTTP ve HTTPS gibi kavramlar karşımıza çıkar. HTTPS, HTTP'nin geliştirilmiş ve güvenli hale getirilmiş bir versiyonudur ve bilgi alışverişini şifreleyerek gizliliği sağlar. Bu metinde, HTTPS'in çalışma prensipleri, önemi ve kullanım alanlarına detaylı bir şekilde değineceğiz.

### HTTPS'in Çalışma Prensibi

HTTPS, HTTP'nin iletim (Transport) katmanını güvenli hale getirerek bilgi alışverişinde gizliliği sağlar. Bunun temelinde, önceki flood'larımızda anlatılan dijital sertifikalarla istemcinin sunucunun kimliğini doğrulaması (Authenticity) yatar. Bu protokol, iletim katmanını (TCP) şifreleyerek gizliliği sağlar ve HTTP ile HTTPS arasında protokol seviyesinde (GET, PUT, POST, vb.) herhangi bir farklılık olmadığını belirtmek önemlidir.

### SSL/TSL Handshake Mekanizması

SSL/TLS Handshake, HTTPS'in temelini oluşturan bir mekanizmadır. Bu mekanizma, istemci ve sunucu arasında güvenli bir iletişim kurulmasını sağlar. İstemci ve sunucu, iletim katmanının şifrelenmesi için gerekli olan kripto parametrelerini belirlemek için bu akışı başlatır. Özellikle, simetrik ve asimetrik şifreleme yöntemleri bu süreçte kullanılır.

### Simetrik ve Asimetrik Şifreleme

HTTPS'in ilk dönemlerinde, simetrik ve asimetrik şifreleme birlikte kullanılmıştır. Asimetrik şifreleme ile, simetrik şifrelemede kullanılacak olan ortak anahtar belirlenir ve iletişimin devamı bu anahtarla sağlanır. Ancak, bu yöntem güvenli değildir ve geçmişte yapılan konuşmaların deşifre edilmesi riski taşır.

{% hint style="info" %}
Simetrik ve Asimetrik şifreleme neden deşifre edilme riski taşır?

**TLS (Transport Layer Security):** Bir bilgisayar ağı üzerinden iletişimi güvenli hale getirmek için kullanılan bir protokoldür. Temel olarak bir istemci (web tarayıcısı gibi) ve sunucu (web sitesi gibi) olmak üzere iki taraf arasında şifreli bir bağlantı kurarak güvenli iletişim sağlar.

TLS, açık anahtarlı şifreleme ve simetrik anahtarlı şifrelemenin bir kombinasyonunu kullanarak çalışır. İstemci bir sunucuyla bağlantı kurduğunda, sunucu istemciye, istemcinin sunucunun kimliğini doğrulamak için kullandığı ortak anahtarını gönderir. İstemci daha sonra sunucunun genel anahtarı kullanılarak şifrelenen ve sunucuya geri gönderilen benzersiz bir oturum anahtarı oluşturur. Sunucu, oturum anahtarının şifresini çözmek ve şifreli bir bağlantı kurmak için kendi özel anahtarını kullanır.

**TLS, artık kullanımdan kaldırılan Secure Sockets Layer (SSL) protokolünün gelişmiş halidir. Bununla birlikte, “SSL” terimi hala yaygın olarak TLS’ye atıfta bulunmak için kullanılır.**
{% endhint %}

### Güvenlik ve Doğrulama

HTTPS'in temel amacı, iletilen verilerin güvenliğini sağlamaktır. SSL/TLS protokolü, bir web sitesinin kimliğini doğrulamak için sunulan sertifikalar aracılığıyla kimlik doğrulama sağlar. Bu sertifikalar, web sitelerinin, bireylerin ve şirketlerin kimliklerinin şifrelenmesini sağlar.

{% hint style="danger" %}
HTTPS, internet kullanıcıları için güvenli bir çevrimiçi deneyim sağlar. Web sitelerinin güvenliğini artırır ve bilgi alışverişini şifreleyerek kullanıcıların gizliliğini korur. Kullanıcılar, bir web sitesinin HTTPS protokolünü içerip içermediğini URL çubuğundaki "https://" ibaresine bakarak anlayabilirler. HTTPS, HTTP'den daha güvenlidir ve internet üzerindeki bilgi alışverişini daha güvenli hale getirir.
{% endhint %}

{% embed url="https://github.com/Yunusedemirci" %}
Bu yazı Yunusemre Demirci tarafından hazırlanmıştır.
{% endembed %}
