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