BİL206U-WEB SUNUCU PROGRAMLAMA
Ünite 1: Web 2.0 Teknolojisinin Doğuşu
Web Teknolojileri
Web’in Doğuşu
Geçmişi 1980’li yıllara dayanan ve “World Wide Web” olarak son halini 1989 yılında tamamlayan “WWW” protokolünün ilk prototipi Tim Berners-Lee tarafından bilgi paylaşımını sağlamak amacıyla ortaya atılmıştır. HTML’in (Hiper Metin İşaretleme Dili) gelişmesi ile birlikte; günümüz internetin kökenleri olan “WWW” dünyanın gelişimi üzerinde oldukça önemli bir role sahiptir. “Web”, “WWW” veya “W3” şeklinde farklı isimlendirmelere sahip küresel olan bu bağlantı protokolü günlük hayatta “internet” kavramı ile sıklıkla karıştırılmaktadır. Buna göre, “WWW” protokolü ile internet kavramının birbirinden farklı olduğu ve bu protokolün de internet üzerinden çalışan bir hizmet olduğu unutulmamalıdır.
İnternetin Tarihi
İnternetin tarihine bakıldığında 1950’lerde bilgisayarların gelişmesi ile başladığı söylenebilir. Cihazlar arası veri aktarımının önem kazanması ile paket ağlarının tasarımları gerçekleştirildi. ABD başta olmak üzere Fransa ve İngiltere’de bulunan laboratuvarlarda geliştirilen paket tasarımları ile internetin tarih sayfalarında yerine alması söz konusu iken; öte yandan ABD Savunma Bakanlığı, ilk protokol olan ve “İleri Araştırma Projeleri Ajansı Bilgisayar Ağı” anlamına gelen ARPANET’i (Advanced Research Projects Agency Network) kullanmaya başladı. Mantıksal haritasına bakıldığında, ARPANET dünyanın ilk paket dağıtım ağı ve evrensel İnternet’in öncülüdür. Amerika Birleşik Devletleri Savunma Bakanlığı’nın İleri Araştırma Projeleri Ajansı (ARPA) tarafından kurulan ARPANET üzerinden ilk mesaj gönderimi Kaliforniya Üniversitesinde bir profesörün bilgisayarına gönderildi.
İnternet, bilgisayarların bir ağ dâhilinde birbiri ile bağlantıda olmasını sağlayan bir iletişim ağı olarak nitelendirilmektedir ve tüm kısıtlama ve sınırlardan bağımsız olarak merkezi kontrol dışında işlev göstermektedir. Elektronik iletişim ağı olan internet, TCP/IP (Transmission Control Protocol/Internet Protocol) protokolünün kullanılması ile bilgisayar ağlarının birbirine bağlanmasını sağlamaktadır. İnternet protokol takımı olarak da bilinen İletim Kontrol Protokolü (TCP) ve İnternet Protokolü (IP) bilgisayarlar ve ağ cihazları arasındaki iletişimi sağlamak amacıyla standart olarak kabul edilmiş kurallar dizisinden oluşmaktadır. Verinin ağ üzerinden ne şekilde paketleneceğini ve iletilen veride hata olup olmadığının nasıl denetleneceğini belirleyen bu kurallar dizisi internet iletişim kurallarıdır.
Web Teknolojileri, Web Uygulamaları, Mobil Uygulamalar ve Web Siteleri
• Web teknolojileri: HTML, CSS, JS ile oluşturulmuş, verileri depolayan (veritabanı, dosyalar), verileri işleyen (CreateReadUpdateDelete-CRUD) ve internet üzerinden görevleri gerçekleştirmek için bir ekip veya tek bir kullanıcı tarafından kullanılan etkileşimli bir bilgisayar programıdır.
• Web uygulamaları: Yalnızca web sitesi tarayıcısı üzerinden kullanılabilen bir uygulama türüdür ve internete bağlanıldığında uzak sunucularda çalışır ve dinamik içeriğe, daha karmaşık kullanıcı etkileşimlerine sahip bir yazılım parçasıdır. • Mobil uygulamalar: Android, iOS vb. işletim sistemleri için uygun olup özel olarak mobil cihazlar için yapılmıştır. • Web sitesi: Genellikle statik içerik görüntüleyen bir sayfalar topluluğudur
Örnekler: akıllı telefonlarınızın mevcut işletim sistemleri olan IOS, Android vb. yazılımlar üzerindeki bir uygulama mağazasından indirdiğiniz Facebook mobil uygulamadır. Chrome, Firefox, Safari vb. web tarayıcılarınız ile Facebook’a web sitesi aracılığı ile de erişebilirsiniz.
Web Teknolojilerinin Gelişimi
1969 yılında ilk defa kullanıma geçilen internetin başlangıç serüveni, Amerika Savunma Bakanlığı personellerinin kendi aralarındaki iletişim akışını sürdürebilmesi esasına dayanmaktadır. World Wide Web (www); Tim Berners- Lee tarafından 1990’da Avrupa Nükleer Araştırmalar Merkezi’nde (CERN) icat edilmesiyle internetin toplumun geneline ulaşması sağlanmıştır. İnternetin toplumun geneline ulaşması web teknolojileri açısından gelişimin Web 1.0 olarak ifade edildiği dönemdir. Sunulan içerik daha çok broşür niteliğinde sınırlı kalmıştır, monolog bir düzende tek yönlü bir iletişime imkân vermektedir.
Web 2.0 teknolojileri ise bir devrim niteliğinde ifade edilebilir. Kişisel bilgisayar uygulamalarının internet ortamına aktarılması bilgisayar, internet ve web teknolojileri açısından oldukça önemli bir gelişmedir. Web 1.0 teknolojisinin pasif alıcısı olmaktan çıkan bireyin Web 2.0 uygulamaları ile kullanıcıların internet ortamında söz sahibi olması ve bir konudaki görüşlerini belirtmelerine imkân sağlanması ile dinamik, etkileşimli ve üretken bir yapıda dijital ortamlarda izini bırakması adeta devrim niteliğindedir.
İçinde bulunduğumuz çağda internet ortamında birbirleriyle bağlantıda olan kişiler aracılığıyla başka bağlantıların da sunulması internetin akıllanması ile ilgili olup Web 3.0 teknolojilerine örnektir. Kullanıcının tanınması ve kullandığı ortamların giderek kişiselleştirilmesi de akıllı web uygulamaları sayesinde Web 4.0’a temel oluşturmaktadır. 1990’lı yıllardan günümüze web teknolojilerindeki gelişmeler incelendiğinde, PHP sunucu taraflı web uygulamaları açısından kadrajı Web 1.0 ve Web 2.0 teknolojilerindeki gelişime yakınlaştırmayı gerektirmektedir.
Web tarihinin gelişimi kronolojik olarak Şekil 1.1 (Sayfa 5)’te incelenebilir.
Web 1.0
İnternetin ilk dönemi için kullanılan Web 1.0 kullanıcıların internet sitelerini tek yönlü bir şekilde bilgi edinmesi esasına dayanır, kullanıcının kendisine sunulan içeriğe yorum yaparak katkıda bulunmasına izin vermemektedir. Tüm
kontrol web sitesini yöneten tek kişinin elindedir. Metinlerin sıralı bir şekilde verilmesi esasına dayalı Web 1.0 teknolojileri kullanıcıların günümüzde gerçekleştirdikleri deneyim paylaşımı, bilgi alışverişinde bulunma, katkı sağlama, içerik üretme vb. özelliklerden yoksundur.
Web 2.0
O’Reilly Media tarafından 2004’te kullanılmaya başlayan bir kavram olan Web 2.0 teknolojileri internet kullanıcılarının, ortaklaşa ve paylaşarak meydana getirdiği sistemi tanımlamaktadır. Kavramı açıklamaya yönelik farklı teknolojik terimler (AJAX, Widget vb.) işe koşmuştur. Özellikle, Tim Berners-Lee’nin Web 2.0 kavramını anlamaya yönelik yaptığı sorgulamalar kavramın internet tarihinde devrim sayılabilecek nitelikte bir anlayışa sahip olduğunu düşündürmektedir. İnsanın web ortamında sunulan içerik ile etkileşime girmesi esasına dayanan Web 2.0 teknolojileri kullanıcıları ortaklık ve paylaşım paydasında bütünleştirir. İnternet kullanıcılarına içeriği oluşturma ve oluşturduğu içeriği başkaları ile paylaşma imkânı tanır. Kullanıcıların etkileşim ve paylaşımları sosyal ağ siteleri, web tabanlı ansiklopediler (örneğin wikipedia) vb. farklı çevrimiçi iletişim araçları ile gerçekleşir. Kullanıcıların sosyalleşme gereksinimlerini karşılamaya yönelik çabalar sonucunda ortaya çıkan blog, wiki, blog, sosyal medya araçları, RSS, API, AJAX, XML vb. teknoloji ve uygulamaların kullanımı gitgide yaygınlaşmakta ve farklı boyutlara evrilmektedir.
Web 2.0 teknolojilerinin karşılaştıracak olursak;
• Web 1.0 teknolojileri, belli programlanıcıların ürettiği web siteleri, grafikler ve flaşlar iken; Web 2.0 teknolojileri ise kullanıcıların ürettiği içerik, resim, kullanıcı görüşleri, bloglar, wikiler, YouTube ve sosyal ağlardır. • Web 1.0 teknolojileri ile uzmanların ürettiği içerik söz konusu iken; Web 2.0 teknolojilerinde sıradan insanların ürettiği içerikleri görmek mümkündür. • Web 1.0 teknolojileri ile bireyler web sitelerini ziyaret ederek içerikleri yalnızca okurken; Web 2.0 teknolojileri ile bireyler paylaşılan bilgiyi inşa ederler. • Web 1.0 teknolojileri ile sıkı bir şekilde kontrol edilen siteler söz konusu iken; Web 2.0 teknolojileri ile siteler çok az kontrol edilmektedir. • Web 1.0 teknolojileri ile tek yönlü (azınlıktan çoğunluğa) bilgi akışı söz konusu iken; Web 2.0 teknolojileri ile çoğunluktan çoğunluğa karşılıklı bilgi akışı söz konusudur. • Britannica Online Web 1.0 teknolojisine örnek olarak gösterilebilirken; Wikipedia Web 2.0 teknolojisi örnekleri arasındadır. • Web 1.0 teknolojileri “yayınla” eylemi esasına dayalı iken; Web 2.0 teknolojileri “katıl” eylemi esasına dayanmaktadır. • Web 1.0 teknolojilerinde güvenlik duvarları ve hiyerarşiler söz konusu iken; Web 2.0
teknolojilerinde dinamik ve hiyerarşik olmayan bir yapı vardır. • Web 1.0 teknolojileri statik, kalıcı içerik ve az değişiklik yapılabilme özelliklerine sahip iken; Web 2.0 teknolojileri düzenli güncellenen dinamik bir içerik oluşturmayı özendirmektedir.
Web 2.0 Teknolojilerinin Günlük Yaşama Etkileri
Kullanıcıların günde ortalama 7 saat internette vakit geçirirken, sosyal medyada geçirilen süre günde ortalama 2,5 saattir. İnterneti sırasıyla en çok bilgi edinmek (%63), aile ve arkadaşlarla iletişim halinde olmak (%56,3), yeni haber ve etkinlikleri takip etmek (%55,6), bir şeyin nasıl yapılacağını araştırmak (%51,9), bir şeyler izlemek (%51,7), yeni birileriyle tanışmak (%29,9) amacıyla kullanılmaktadır. Dünyada en çok ziyaret edilen internet siteler Google, YouTube ve Facebook iken2021 yılında en çok kullanılan sosyal medya platformlarının sırasıyla Facebook, YouTube, Whats-App, Facebook Messenger ve Instagram olmuştur.
Eğitim Açısından Etkiler
İnternetin herkes için sınır tanımaz eşit bir hak sağlaması ve herkese eşit uzaklıkta olması onu eşsizleştirmektedir ki bilgiyi elde etme yollarından bir tanesi daha önceden benzer deneyime sahip kişi ya da kişilerin görüşüne başvurmaktır. Web 2.0 teknolojileri hemen her yaştan her milliyetten bireye bilgiye ulaşmada ve bilgiyi paylaşmakta da eşit hak sağlamaktadır.
Psiko-Sosyal Gelişim Açısından Etkiler
Web 2.0 ile zirveye çıkan internet tarihinin insanların yalnızlık içerisinde sosyalleşmesinin de temellerini oluşturduğu söylenebilir. Sosyal medya ortamlarında kullanıcıların ihtiyaç duyduğu ait olma, sevme, beğenilme vb. davranışların gerçekleştirilmesine imkân sunan Web 2.0 teknolojilerinin psikolojik açıdan da ele alınması gereken bazı durumları söz konusudur. Bir Web 2.0 teknolojisi olarak sosyal medyada bireylerin gerçekleştirdikleri fotoğraf, video paylaşımı vb. davranışların beraberinde benlik saygısını azalttığı, beğenilmeme duygusunu beraberinde getirdiği vb. araştırma sonuçlarına rastlanmaktadır. Benzer şekilde, anonim bir kimliğe bürünerek; kişinin kendini olduğundan farklı göstermesi de psikolojik bir rahatsızlık olarak ele alınmaktadır. Web 2.0 teknolojisinin gelişmesi ile birlikte oldukça avantajlı durumlar olduğu gibi kullanımının yaygınlaşması ve farklılaşması ile de dezavantajlı durumların olduğunun farkında olunması gerekmektedir.
Web Uygulama Türleri
Web uygulama türleri istemci taraflı sunucu taraflı ve tek taraflı uygulamalar olmak üzere üç ana kategoriye ayrılmaktadır. Web uygulamaları kullanılan araç ve teknolojiler bakımından farklılık göstermektedir. Örneğin, istemci taraflı web uygulamaları kullanıcı bilgilerinin tek bir oturumdan daha uzun süre saklanmasının gerekmediği
durumlarda tercih edilebilir. İstemci taraflı web uygulamaları front-end JS ve JavaScript framework’lerinde oluşturabilmektedir. Sunucu taraflı web uygulamaları ise uygulamanın yalnızca sunucu tarafından oluşturulması durumunda; form gönderimi, bölüm ve veri güncellemeleri arasındaki herhangi bir değişikliğin sonucunda, sunucunun yeni bir HTML dosyası oluşturması ve web sayfası yeniden yüklenmesini gerektirir. Sunucu taraflı web uygulamaları C #, Ruby, Python, PHP vb. programlama dillerinde kodlanabilmektedir. Tek sayfalı web uygulamaları ise hem front-end hem de back-end teknolojisi kullanılarak oluşturulmakta olup hem istemci hem de sunucu tarafı sunan ve tarayıcıda sayfanın yeniden yüklenmesini beklemeden çalışan daha karmaşık yazılımlardır.
Sunucu Taraflı Web Uygulamaları
Sunucu ile ziyaretçi arasındaki etkileşime olan ihtiyacın karşılanması amacıyla geliştirilen ilk program dili CGI’dir (Common Gateway Interface). Bu dilin kullanımı biraz zor olduğundan farklı firmalar tarafından geliştirilen, kullanımının daha kolay ve anlaşılır olması nedeniyle Perl, ASP, PHP, Cold Fusion gibi fonksiyonel diller kullanılmaya başlandı. Günümüzde fonksiyonel dil olarak PHP ve ASP yaygın bir şekilde kullanılmaya devam etmektedir. Her ne kadar sunucu taraflı çalışan programlama dilleri temelde aynı işlevi görse de; performans, hız, kolaylık, ekonomiklik vb. faktörler bir dilin tercih edilebilirliğini etkilemektedir. Fonksiyonel bir dil olan PHP, sunucu taraflı uygulamaların geliştirilmesinde kullanımı oldukça yaygın ve gelecek vaad eden bir programlama dilidir. Ayrıca farklı ölçekteki uygulamaların geliştirilmesi noktasındaki pratikliği, öğrenilmesindeki kolaylık ve çoğu platformda ücretsiz bir şekilde çalışabilmesi pek çok firma tarafından desteklenmeyi beraberinde getirmektedir.
Sunucu Taraflı Web Uygulamalarının Çalışma Mantığı
Sunucu taraflı web uygulamalarının çalışma prensibi birden fazla teknolojinin uyumlu bir şekilde çalışması esasına dayanır. Sunucu taraflı web uygulamalarında, sunucu tarafında çalışan kodlar veritabanından aldığı bilgileri işler ve TCP (Transmission Control Protokol/İletim Kontrol Protokolü) aracılığıyla ağ üzerinden istemci (client/kullanıcı) tarafına ulaştırır. İstemci tarafında ise sayfaların çalışması ve görüntülenmesi web tarayıcısı (browser) üzerindendir. Web uygulamalarının çalışma prensibine ilişkin işletilebilecek adımlar aşağıda yer almaktadır:
1. Kullanıcı, web tarayıcısı aracılığıyla web uygulamasına girer. 2. Web tarayıcısından sunucu tarafına istek gönderilir. 3. Web sunucusu isteği alır ve türüne bakar. 4. İstek, sunucu üzerinde çalışmakta olan uygulama sunucusuna iletilir. 5. Uygulama, sunucunun kaynaklarını kullanarak isteği işler.
6. Uygulama, gerektiği durumlarda aynı sunucu veya başka bir sunucu üzerindeki veritabanı sunucusu ile iletişime geçer, veri alışverişinde bulunur. 7. Uygulama, gerektiği durumlarda farklı sistemler ile iletişime geçerek veri alışverişinde bulunabilir. 8. Elde edilen veriler, uygulamanın ihtiyaçlarına göre değiştirilir ve şekillendirilir. 9. Değiştirilen/şekillendirilen veriler sunucu tarafındaki dosya sistemi aracılığı ile kullanıcının web tarayışında gösterilir veya başka bir istemciye iletilir. 10. İstemci aldığı cevabı kullanıcıya gösterir.
Bir web uygulaması, dinamik ve statik sayfaların bir derlemesidir. Kullanıcının (ziyaretçinin) isteğine göre değişmeyen ve sunucu web sayfası üzerinde herhangi bir değişiklik yapılmaksızın sayfanın kullanıcının web tarayıcısına gönderilmesi statik sayfaların özelliklerindendir. Dinamik sayfalar ise statik sayfaların aksine; web tarayıcısı tarafından yapılan isteğe uygun olarak sunucu tarafından üretilen web sayfalarıdır. Statik ve dinamik web sayfası örneklerine sayfa 14 Şekil 1.2 ve 1.3’te görülebilir.
Web Uygulamalarının Mimarisi
Bir web uygulamasını oluşturan katmanlar aşağıdaki gibidir:
1. Veri Katmanı: Tüm verilerin kaydedildiği, sorgulandığı ve saklandığı katmandır ve yüksek performanslı olması gerekmektedir. Ölçeklenebilir web uygulamalarının uygulanmasında veri katmanının performansı en büyük engeldir. 2. Veri Erişim Katmanı: Verilere ulaşım şeklini belirleyen ve veritabanı ile uygulama arasında bir arabirim görevi gören bu katman veriye kolay ulaşımı ve ölçeklenebilirliği sağlamaktadır. 3. Uygulama Katmanı: Uygulamaya temel olan nesnelerin ve uygulama mantığının yer aldığı katmandır. 4. Görüntüleme Mantığı Katmanı: İşlenen verilerin istemci tarafına gönderilmek üzere hazırlandığı; görüntülemenin nasıl oluşacağını ve görüntülenecek bileşenlerin belirlendiği katmandır. 5. Görsel Kullanıcı Arayüzü Katmanı: Web uygulamalarının son katmanı olan görsel kullanıcı arayüz katmanında ise kullanıcı tarafına gönderilmekte olan veriler, görsellik de dahil olmak üzere hangi verinin nerede ve ne şekilde gösterileceği belirlenir, kullanıcının uygulamayı daha dinamik kullanması için gerekli interaktiviteler yer alır.