♪ (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) ♪