Peki web siteleri nasıl çalışır?
Şimdi bütün bir web geliştirme kursum var, bu yüzden bu bir python kursu olduğu için, bu konuya süper,
süper derinlemesine girmeyeceğiz.
Bunun yerine, işin Python tarafına odaklanacağız.
Ancak ne inşa ettiğimizi ve her şeyin nasıl çalıştığını anlamanıza yardımcı olmak istiyorum, çünkü umarım bu kursun
sonunda portföyünüzü gerçekten değiştirebilir, portföyünüzü kendi beğeninize göre güncelleyebilir
ve kurs boyunca oluşturduğumuz projeleri sergileyebilirsiniz.
Burada sizin için bir web sitesi var.
Küçük, komik bir çizgi roman sitesi olan xkcd var.
Burayı yenile'ye tıklarsam veya bu URL'yi girersem, bu web sitesine yönlendiriliyorum.
Peki bu gerçekte nasıl işliyor?
Tarayıcım, bu durumda Google Chrome, bu web sayfasını benim için nasıl görüntüleyebiliyor?
İnternete bağlı olmam gerekiyor, değil mi?
Yani bunu görebilmem için aktarılan bir tür veri var.
Şimdi bunun nasıl çalıştığını inceleyelim.
Ve şuna bak.
Sizin için küçük bir diyagram oluşturdum.
Ve bu diyagramda, size tam olarak nasıl çalıştığını anlatmaya çalışacağım.
Oldukça basit.
Burada tarayıcımız var, bu Google Chrome olabilir, Safari olabilir, Firefox olabilir,
fark etmez.
Bu tarayıcıya bir web sitesi yazabilir veya Google'da bir web sitesi arayabilir ve ardından bir web sitesine tıklayabiliriz.
Bir web sitesine tıkladığımızda, internet aracılığıyla tarayıcı başka bir makineye kadar bir
istekte bulunur.
Ve sunucu dediğimiz bu makine dünyanın herhangi bir yerinde bulunuyor.
Bu gerçekten önemli değil çünkü İnternet ağımız aracılığıyla tarayıcı şunu söyleyecektir: Hey,
bu web sitesi, bu web sitesinin sahibi kim?
Ya da hangi makine bana bu web sitesinin dosyalarını sunabilir?
Ve bazı karmaşık mantıklar kullanarak, günün sonunda sadece bir bilgisayar olan bu sunucuyu bulacak ve
aslında size kendi sunucumuzu gösterip dağıtacağız.
Basitçe diyor ki, hey, bana biraz veri ver, çünkü veri olmadan bir Web sayfasında hiçbir şey görüntüleyemiyorum.
Ve sunucu.
Her şeyden önce, tarayıcı ve sunucu iki farklı makine olduğu için HTTP ve https adı verilen bir şey
üzerinden iletişim kurarlar.
Doğru.
Tarayıcı şu anda dizüstü bilgisayarımda.
Ve bir sunucu olan makine.
Dünyanın herhangi bir yerinde olabilir.
Bir şekilde iletişim kurmaları gerekiyor.
Ve tüm bu makinelerin hiçbir kural olmadan birbirleriyle konuşmasını istemediğimizi söyleyecek bir kurala
ihtiyacımız var.
Örneğin, sizinle benim aramda iletişim kurduğumuzda, benim de aynı şekilde İngilizce konuşacağım konusunda
anlaşabiliriz.
İletişimin güvenli ve şifreli bir versiyonu olan HTTP ve https, "Hey, bana verileri ve sunucuyu anlayacak şekilde
verebilir misin?" dememi sağlar.
Oh.
Bu web sitesinin veya bu tarayıcının sahip olduğum verilere ihtiyacı var.
Eğer bu web sitesine geri dönersem.
HTTPS kullandığımı görüyorsunuz ve HTTPS protokolünü kullanmak istediğimi söylüyor.
Bu, iletişim kurmak için kullanılan dildir.
Bu web sitesine gitmek istiyorum.
Enter tuşuna bastığım anda, bu istek bir yerdeki sunucuya kadar gidecek ve
sunucu bu verilerle yanıt verecek.
Diyagramımızla devam edelim.
Yani talep daha yeni yapıldı.
Bu sunucuda ihtiyacımız olan üç dosya var.
Biri HTML dosyasıdır ve bu dosya web sitesinin metni veya içeriğidir.
Diğeri CSS dosyasıdır ve bu web sitesinin tüm stilini içerir.
Yani renkler, belki bazı yazı tipleri, belki öğelerin konumu, stil ile ilgili her şey.
Böylece sıkıcı bir metin parçası gibi görünmez.
Ve sonra bir JavaScript'imiz var.
JavaScript, web sitelerine davranış kazandıran şeydir.
Facebook'ta oturum açtığımda ya da Twitter'da bir tweet attığımda, JavaScript bu eylemleri
gerçekleştirmemi sağlıyor çünkü sadece HTML ve CSS ile elimizde sadece metin ve güzel bir stil var.
JavaScript ile eylemler gerçekleştirebiliyoruz, ancak buna çok fazla odaklanmamız gerekmiyor.
Bilmemiz gereken tek şey sunucunun, dosyaları üzerinde bir bilgisayar olduğu için, bizim için bu üç dosyaya sahip olduğudur.
Ve bu üç dosya tarayıcıya gönderildi çünkü tarayıcı gerçekten çok nazikti ve "Hey, bana veri verebilir
misin?" diye sordu.
Sunucu da "Elbette, işte burada" diyor ve bize bu üç dosyayı gönderiyor.
Geri gönderildiklerinde tarayıcı bunları anlar.
Ve onları anladığı için, bize anlamsız gibi görünse de, o web sitesini bizim için
görüntüleyebiliyor.
Ama size bir soru sormama izin verin.
Şimdiye kadar Python hakkında pek konuşmadım.
Bunun bir Python kursu olduğunu sanıyordum.
Andre, umurumda olmayan bu şeyleri bana nereden söylüyorsun?
Çünkü burada aslında Python ile yazılabilecek bir parça var.
Bunun ne olduğunu tahmin edebilir misin?
Eğer sunucuyu tahmin ettiyseniz.
Tebrik ederim.
5000 puan alırsın.
Gördüğünüz gibi tarayıcı, bilgisayarımıza indirdiğimiz bir uygulamadır.
Doğru.
Ancak şimdiye kadar sunucu bir tür gizemli kutuydu, bir makineydi, bir yerlerde bir bilgisayardı.
Ancak Python programcıları aslında sunucuların üzerinde hareket edebileceği mantığı ve kuralları yazabilirler.
Yani tüm bu "Hey, bana veri verebilir misin?" iletişimi Python'da yorumlanabilir ve ardından bu veriler Python
kullanılarak tarayıcıya gönderilebilir.
Önümüzdeki birkaç videoda kendi sunucumuzu oluşturacağız, ancak aynı zamanda bu HTML, CSS ve JavaScript dosyalarına
da değineceğiz, böylece aslında bir web sitesi gibi bir şey görüntüleyebileceğiz.
Şimdi bu videoyu bir soruyla bitirmek istiyorum.
Bu sunucunun Python'da yazılması gerektiğini düşünüyor musunuz?
Sen ne düşünüyorsun?
Hayır, öyle değil.
Değil mi?
Tarayıcı bu makinenin nasıl olduğunu umursamıyor.
Tek önemsediği bu üç dosya.
Ve bu http https protokolünde konuştuğumuz için.
Tarayıcı diyor ki, Hey, hangi dili konuştuğun umurumda değil, hiçbir şey umurumda değil.
Size sadece bu https aracılığıyla söyleyeceğim, sadece bana istediğim verileri verin ve burada istediğimiz mantığı
yapabiliriz.
İstersem buradan e-posta gönderebilirim.
Kısa mesaj gönderebiliyorum, matematik işlemleri yapabiliyorum.
İstersem bu bilgisayarda oyun oynayabilirim.
Bu dosyaları tarayıcıya geri gönderebildiğim sürece gerçekten önemli değil.
Yani bunu Python ile yapabiliriz.
Ancak bunu Node gibi, PHP gibi, Java gibi diğer dillerle de yapabiliriz, yani her türlü dilde bir sunucu
yazabiliriz.
Gerçekten yapabileceğimiz tek şey tarayıcı tarafında.
Tarayıcı tarafında, bu üç dosyayı kullanmak zorundayız çünkü en azından genel anlamda, yalnızca
başka bir programlama dili olan JavaScript'i anlayabilir.
Pekala, bir sonraki videoda bu konuyu biraz daha inceleyelim.