♪ (müzik) ♪
İnternet: HTTP ve HTML
İsmim Jasmine Lawrence.
Xbox One mühendislik ekibinde
program yöneticisiyim.
En büyük niteliklerimizden biri Xbox Live.
Dünyanın her yerinden oyuncuların
birbirleriyle iletişime geçmesini sağlayan
çevrimiçi bir hizmet
ve biz bunu gerçekleştirmek için
internete bel bağlıyoruz.
Kolay bir iş değil
ve arka planda pek çok şey gerçekleşiyor.
İnternet, insanların iletişime
ve etkileşime geçme biçimlerini
kökten değiştiriyor.
Peki nasıl çalışıyor?
Dünyanın dört bir yanındaki bilgisayarlar
birbirleriyle nasıl iletişim kuruyorlar?
Web'de gezinmeye bir bakalım.
Önce bir "web tarayıcısı" açarsınız,
web sayfalarına erişmek için kullandığınız
uygulamadır. Sonra ziyaret etmek
istediğiniz web adresini veya
URL yani Birörnek Kaynak Konumlayıcıyı
girersiniz, tumblr.com gibi.
Merhaba, ben David Karp.
Tumblr'ın kurucusuyum.
Bugün burada her gün kullandığımız
web tarayıcılarının nasıl çalıştıklarını
konuşmak için bulunuyoruz.
Web tarayıcınıza bir adres yazıp
enter'a bastığınızda ne olduğunu
merak etmişsinizdir.
Gerçekte, tahmin edebileceğinizden
daha çılgınca.
Bilgisayarınız
bir diğer bilgisayarla konuşurken
sunucu adı verilen bu bilgisayar
aslında kilometrelerce uzaktadır.
Milisaniyeler içinde bilgisayarınız
o sunucuya bir web sitesini sorar
ve sunucu bilgisayarınızla
HTTP denen bir dilde konuşmaya başlar.
HTTP'nin açılımı
Bağlantılı Metin Aktarım Protokolü'dür.
Bir bilgisayarın diğerinden
bir belge talep etmek için kullandığı
dil olarak düşünebilirsiniz.
Ve aslına bakılırsa oldukça anlaşılırdır.
Bilgisayarınızla internet üzerindeki
bir web sunucusu arasındaki konuşmaya
girmek isterseniz
"GET taleplerinden" oluşur.
"GET" kelimesini ve istediğiniz belgenin
adını yazmak kadar basittir.
Tumblr'a giriş yapmak için
giriş sayfamızı yüklüyorsanız
yaptığınız şey aslında Tumblr sunucusuna
"GET/login" yazan
bir GET talebi göndermek.
Böylece Tumblr sunucusuna
Tumblr giriş sayfasının
tüm HTML kodlarını istediğinizi
söylemiş olursunuz.
HTML'nin açılımı
Bağlantılı Metin İşaretleme Dili'dir.
Bir web tarayıcısına bir sayfanın
nasıl görüneceğini söylediğiniz
bir dil olarak düşünebilirsiniz.
Wikipedia gibi bir şeyi düşünürseniz
temelde büyük, basit bir belgedir.
HTML ise başlığı büyütüp kalınlaştırmak,
yazı tipini ayarlamak, belli metinleri
belli sayfalara köprülemek, bazı metinleri
kalın bazılarını italik yapmak,
sayfanın ortasına görsel yerleştirmek,
görseli sağa yaslamak,
görseli sola yaslamak için
kullandığınız dildir.
Bir web sayfasının metni doğrudan HTML'de
yer alır ama görseller veya videolar
kendilerine ait, talep edilmesi gereken
URL'lere sahip ayrı dosyalardır.
Tarayıcı her biri için ayrı HTTP talepleri
gönderir, ulaştıklarında da gösterir.
Bir web sayfasında
birçok farklı görsel varsa her biri
ayrı HTTP talepleri gerektirir
ve sayfa yavaş yüklenir.
Bazen web'de dolaşırken yalnızca
GET talepleri ile sayfa talep etmezsiniz.
Form doldurduğunuzda veya arama sorgusu
girdiğinizde bilgi gönderirsiniz.
Tarayıcınız bu bilgiyi web sunucusuna düz
metin olarak HTTP/POST talebiyle gönderir.
Diyelim ki Tumblr'a giriş yapıyorsunuz.
İlk yaptığınız, POST talebi oluşturmaktır.
Bu da Tumblr'ın giriş sayfasında verilerin
ekli olduğu bir gönderi oluşturmaktır.
Mail adresiniz vardır ve parolanız vardır.
Bu veri Tumblr sunucusuna gider.
Tumblr sunucusu,
"Tamam, sen David'sin." der.
Bir web sayfasını tarayıcınıza gönderir:
"Başarılı! David olarak giriş yaptın."
Fakat bu web sayfasıyla
tarayıcınızın anladığı
ve kaydetmesi gerektiğini bildiği
görünmeyen "çerez" verileri de gönderir.
Gerçekten önemlidir, bir web sitesinin
sizi hatırlayabilmesinin tek yoludur.
Tüm bu çerez verileri
Tumblr için bir kimlik kartı gibidir.
Sizi David olarak tanımlayan bir sayıdır,
tarayıcınız bu sayıyı saklar ve Tumblr'ı
yenilediğinizde, bir sonraki giriş
yaptığınızda web tarayıcınız o numarayı
Tumblr sunucularına gönderdiği talebe
otomatik olarak eklemeyi öğrenmiş olur.
Artık Tumblr sunucuları tarayıcınızdan
gelen talebi ve kimlik numarasını görür.
"Tamam, bu talep David'den geliyor." der.
Artık, internet tamamen açık.
Tüm bağlantıları paylaşımlı
ve bilgi düz metin olarak gönderiliyor.
Bu da bilgisayar korsanlarının
internet üzerinden gönderdiğiniz
tüm kişisel bilgileri
gözetleyebilmesine olanak tanıyor.
Fakat güvenli internet siteleri
bunun önüne geçiyor.
Tarayıcınızdan Güvenli Yuva Katmanı
ve halefi Taşıma Katmanı Güvenliği'ni
kullanıp güvenli bir kanalda
iletişim kurmasını istiyor.
SSL ve TLS'yi, iletişiminizin
gözetlenmesini veya kurcalanmasını
önlemek için etrafına sarılan bir güvenlik
katmanı olarak düşünebilirsiniz.
SSL ve TLS, şu küçük kilidi
tarayıcınızın adres çubuğunda HTTPS'nin
tam yanında gördüğünüzde aktiftir.
HTTPS protokolleri, HTTP taleplerinizin
güvenli olduğundan
ve korunduğundan emin olur.
Bir web sitesi tarayıcınızın güvenli
bir bağlantıya geçmesini istediğinde
öncelikle bir "dijital sertifika" sunar.
İddia ettiği web sitesi olduğunu
kanıtlayan resmi bir kimlik kartı gibidir.
Dijital sertifikalar, sertifika
otoriterileri tarafından yayınlanır.
Bunlar, web sitelerinin kimliğini
doğrular ve sertifika verir.
Tıpkı bir devletin kimlik
veya pasaport basabildiği gibi.
Geçerli bir dijital sertifikaya
sahip olmayan bir web sitesi
güvenli bir bağlantıya geçmeye
çalıştığında tarayıcınız sizi uyarır.
Web'de gezinmenin temeli bu kadar!
İnternetin her gün gördüğümüz kısmı.
Özetlemek gerekirse HTTP ile DNS;
HTML, medya dosyaları
ve web üzerindeki herhangi bir şeyin
gönderilmesini ve alınmasını yönetir.
Aslında bunu mümkün kılan, bilgiyi
parçalara ayırıp minik paketlerde taşıyan
TCP/IP ve yönlendirme bağlantılarıdır.
Bu paketler, ikili kodlardır.
1 ve 0 dizilimlerinin fiziksel olarak
elektrik telleri, fiber optik kablolar
ve kablosuz ağlarla gönderimidir.
Neyse ki internetin nasıl çalıştığına dair
bir katmanı öğrendiğinizde
tüm detayları hatırlamanız gerekmeden
internete güvenebilirsiniz.
Tüm bu katmanların bilgiyi sırasıyla
belli bir ölçekte ve güvenilir olarak
başarıyla teslim etmek için
birlikte çalışacaklarına güvenebiliriz.
♪ (hareketli müzik) ♪