Ders Raporu
← İnternet Programcılığı 2
Ders Raporu

İnternet Programcılığı 2

Açıköğretim Fakültesi » Bilgi Yönetimi Önlisans Programı » Atatürk Üniversitesi ATA AÖF · 14 ünite

Konu Özeti

Ünite 1: Internetin Temelleri

İnternet, dünya üzerindeki milyarlarca bilgisayarın ve elektronik cihazın birbirine bağlanarak küresel ölçekte iletişim kurmasını sağlayan devasa bir ağ sistemidir. Bu sistem, cihazların birbirini tanıması ve veri alışverişinde bulunabilmesi için belirli standart protokoller kullanır. Bu protokollerin en temelinde, internetin dilini oluşturan TCP/IP (Transmission Control Protocol/Internet Protocol) yer alır.

Ünite 2: Web Programlama Araçları ve Dinamik Web

Web programlama, internet üzerindeki web sayfalarının ve uygulamalarının oluşturulması sürecini kapsar. Web 1.0 döneminde sayfalar sadece metin ve basit görsellerden oluşan statik içerikler barındırırken, Web 2.0 ile birlikte kullanıcı etkileşimli, dinamik ve zengin içerikli bir yapıya geçilmiştir. Web geliştirme süreci iki ana eksende incelenir: İstemci tarafı (ön yüz) ve sunucu tarafı (arka yüz).

Ünite 3: ASP

ASP (Active Server Pages - Aktif Sunucu Sayfaları), Microsoft tarafından geliştirilen, sunucu taraflı dinamik web sayfaları oluşturmaya yarayan bir dil ortamıdır. Bir programlama dili değil, sunucu tarafında betik dillerini çalıştıran bir teknolojidir. 1996 yılında IIS 3.0 ile piyasaya sürülmüştür.

Ünite 4: ASP.NET- Giriş

.NET Framework, Microsoft tarafından geliştirilen, çeşitli programlama dillerinde yazılmış uygulamaların yürütülmesi için ortak bir platform sağlayan kapsamlı bir yazılım çerçevesidir. Bu yapı, nesne yönelimli bir programlama ortamı sunarken, Windows ve Web tabanlı uygulamaların geliştirilmesi için gerekli olan tüm araçları bünyesinde barındırır. .NET'in temel amacı, farklı dillerde yazılmış kodların birbirleriyle sorunsuz bir şekilde bütünleşmesini sağlamaktır.

Ünite 5: ASP.NET- CSharp

C# (C Sharp), Microsoft tarafından geliştirilen, nesne yönelimli, modern ve güvenli bir programlama dilidir. .NET Framework üzerinde çalışan bu dil, Visual Basic'in üretkenliği ile C++'ın gücünü birleştirir. C# uygulamaları .cs uzantılı dosyalarda yazılır ve temelinde 'using System;' gibi isim alanları (namespace) kullanılarak sınıf kütüphanelerine erişim sağlanır.

Ünite 6: Asp.Net- MVC

ASP.NET Web Formlar, Microsoft tarafından geliştirilen ve özellikle Windows Forms ile masaüstü uygulama geliştirmeye alışkın olan yazılımcıların web dünyasına geçişini kolaylaştırmak için tasarlanmış bir platformdur. Bu yapıda 'sürükle-bırak' yöntemiyle arayüz kontrolleri (textbox, label vb.) oluşturulabilir ve olay tabanlı (event-driven) programlama yapılabilir. Ancak bu kontroller, tarayıcılar tarafından doğrudan anlaşılamaz; sunucuda 'Render' adı verilen bir işlemle HTML formatına dönüştürülmeleri gerekir.

Ünite 7: ASP.NET- Veri Tabanı

Veri tabanları, verilerin bilgisayar ortamında sistematik, kalıcı ve erişilebilir bir şekilde saklanması için geliştirilmiş sistemlerdir. Günümüzde web uygulamalarının kullanıcı etkileşimli yapısı (Web 2.0 ve sonrası), verilerin düzenli bir şekilde tutulmasını zorunlu kılmıştır. MS-SQL, Microsoft tarafından geliştirilen, ilişkisel bir veri tabanı yönetim sistemidir ve kurumsal düzeyde analitik uygulamaları destekleyen pazar lideri teknolojilerden biridir.

Ünite 8: PHP Diline Giriş

Web sayfaları temel olarak HTML, CSS ve JavaScript gibi istemci taraflı dillerle oluşturulur. Ancak kullanıcıya özel içerik sunmak veya veritabanı işlemleri yapmak için sunucu taraflı diller gereklidir. PHP, 1997 yılında Rasmus Lerdorf tarafından geliştirilmiş, günümüzde oldukça popüler olan bir sunucu taraflı dildir.

Ünite 9: PHP’de İleri Konular

PHP'de modüler bir yapı kurmak, kod tekrarını önlemek ve yönetilebilir projeler geliştirmek için 'require' ve 'include' komutları kullanılır. Bu komutlar, başka bir PHP dosyasındaki kodları mevcut sayfaya olduğu gibi aktarır. Örneğin, veritabanı bağlantı bilgileri veya sabit tanımlamalar gibi her sayfada ihtiyaç duyulan kodlar tek bir dosyada toplanarak tüm sayfalara dahil edilebilir.

Ünite 10: PHP- Veri Tabanı

PHP, sunucu tarafında çalışan ve HTML içine gömülebilen dinamik bir betik dilidir. Veri tabanı işlemleri için iki ana yöntem sunar: veri tabanına özgü eklentiler (örneğin MySQL için mysqli) ve veri tabanından bağımsız bir soyutlama katmanı olan PDO (PHP Data Objects). PDO, farklı veri tabanı sistemleri arasında geçiş yaparken kod değişikliğini minimuma indiren taşınabilir bir yapıdır.

Ünite 11: Python Programlama Diline Giriş

Python, 1989 yılında Guido Van Rossum tarafından geliştirilmeye başlanmış, üst seviye, açık kaynak kodlu ve sunucu taraflı bir programlama dilidir. Tasarım amacı, ABC programlama diline bir alternatif oluşturmaktır. Python, 1994 yılında 1.0 sürümüyle kullanıma sunulmuş, 2000 yılında 2.0 sürümüne geçmiş, 2008 yılında ise önceki sürümlerle tam uyumlu olmayan 3.0 sürümü piyasaya sürülmüştür.

Ünite 12: Python ile Web Programlama

Web geliştirme dünyası, teknolojinin sürekli evrimi ve farklı donanım/işletim sistemi ihtiyaçları nedeniyle birçok programlama diline ev sahipliği yapmaktadır. Python, yüksek seviyeli bir dil olarak web sunucusu tarafında (server-side) çalışan güçlü bir seçenektir. Ancak tarayıcılar (Chrome, Firefox vb.) doğrudan Python kodunu çalıştıramazlar; bu nedenle Python ile web uygulaması geliştirmek için HTML, CSS ve JavaScript gibi istemci tarafı dilleriyle entegre çalışmak zorunludur.

Ünite 13: Web Servisleri

Web servisleri, HTTP protokolü üzerinden hizmet sunan, istemci ve sunucu veya sunucular arası veri alışverişini sağlayan standart yazılım modülleridir. Bu yapılar, farklı platformlarda (Windows, UNIX, .NET, Java vb.) geliştirilmiş uygulamaların birbirleriyle konuşabilmesini sağlayan bir köprü görevi görür. Bulut bilişim teknolojilerinin gelişimiyle birlikte, bir uygulamanın yetki sınırları dahilinde başka bir uygulama tarafından kullanılabilmesi için API (Application Programming Interface) yapılarından yararlanılır.

Ünite 14: Güvenli Web Programlama

Yazılım güvenliği, sistemdeki risklerin belirlenmesi, yönetilmesi ve geliştirilen kodun sürekli analiz edilmesi sürecidir. Güvenli bir yazılım elde etmek için sadece son aşamada değil, planlama, analiz, tasarım ve geliştirme gibi yazılım geliştirme yaşam döngüsünün (SDLC) tüm aşamalarında güvenlik ilkeleri gözetilmelidir. Güvenlik zafiyetlerini tamamen yok etmek mümkün olmasa da, çok katmanlı savunma mekanizmalarıyla saldırıların maliyeti ve etkisi minimize edilebilir.

Öne Çıkan Kavramlar

TCP/IPİnternet üzerindeki cihazların birbirleriyle iletişim kurmasını sağlayan temel ağ protokolüdür. Örneğin, bir bilgisayardan diğerine veri gönderilirken bu protokol sayesinde veri paketleri doğru adrese ulaşır.
Paket AnahtarlamaVerilerin küçük veri gruplarına (paketlere) bölünerek hedefe gönderilmesi yöntemidir. Bu teknoloji, internet altyapısının verimli ve hızlı çalışmasını sağlar.
IP Adresiİnternete bağlı her cihazın sahip olduğu benzersiz kimlik numarasıdır. Örneğin, bir web sitesine erişmek istediğinizde cihazınızın IP adresi üzerinden sunucuyla bağlantı kurulur.
DNS (Domain Name System)IP adreslerinin hatırlanması zor olduğu için alan adlarını (örneğin google.com) IP adresleriyle eşleştiren sistemdir. DNS sayesinde kullanıcılar karmaşık sayılar yerine isimleri kullanarak web sitelerine girer.
URLİnternet üzerindeki bir kaynağın (sayfa, dosya) benzersiz adresidir. Örneğin, 'https://www.ataaof.edu.tr' ifadesi bir URL örneğidir.
IntranetSadece kurum içi kullanıma açık, dış dünyaya kapalı ağ sistemidir. Örneğin, bir şirketin sadece kendi çalışanlarının erişebildiği şirket içi portalı bir Intranet'tir.
Vekil Sunucu (Proxy)İstemci ile sunucu arasında aracı görevi gören bir sunucudur. Güvenlik, filtreleme ve performans artırma amacıyla kullanılır; örneğin, bir okulun internet trafiğini filtrelemek için vekil sunucu kullanması gibi.
SMTPE-postaların gönderilmesi için kullanılan temel protokoldür. Örneğin, bir e-posta gönderdiğinizde bu e-posta SMTP sunucusu aracılığıyla alıcıya iletilir.
HostingWeb sitesine ait dosyaların, resimlerin ve verilerin 7/24 kesintisiz erişim sağlayan sunucularda depolanması hizmetidir. Bir web sitesi yayına alınmadan önce mutlaka bir hosting hizmetine ihtiyaç duyar.
Merkeziyetsiz UygulamaWeb 3.0 döneminin bir parçası olarak, aracı bir sunucu veya platform olmaksızın kullanıcılar arasında doğrudan etkileşim sağlayan uygulamalardır. Blok zincir teknolojisi üzerinde çalışırlar.
Statik İçerikKullanıcı etkileşimine kapalı, içeriği sunucuda önceden hazırlanmış ve her kullanıcıya aynı şekilde sunulan web sayfalarıdır. Örnek: Web 1.0 dönemindeki sadece metin ve resim içeren basit HTML sayfaları.
Dinamik İçerikKullanıcı isteklerine, zamana veya veri tabanındaki bilgilere göre anlık olarak değişen içeriklerdir. Örnek: Bir e-ticaret sitesinde kullanıcının sepetine göre güncellenen fiyat bilgileri.
İstemci Tarafı (Client Side)Web tarayıcısı üzerinde çalışan ve kullanıcının doğrudan etkileşim kurduğu kodlar bütünüdür. Örnek: Bir butona tıklandığında açılan menü animasyonları için kullanılan JavaScript kodları.
Sunucu Tarafı (Server Side)Web sunucusu üzerinde çalışan, kullanıcının göremediği ve veri tabanı işlemlerini yöneten kodlardır. Örnek: Kullanıcı giriş yaptığında şifrenin veri tabanındaki kayıtla karşılaştırılması süreci.
Hiper Metin (Hypertext)Web sayfaları arasında bağlantı kurmayı sağlayan metin yapısıdır. HTML'in temelini oluşturur ve kullanıcıyı bir sayfadan diğerine taşır.
MVC MimarisiYazılımı Model, View ve Controller olarak üç parçaya ayıran bir tasarım desenidir. Örnek: Laravel geliştirme ortamı, kodun daha yönetilebilir olması için bu mimariyi kullanır.
NoSQLİlişkisel olmayan, verileri tablo yerine doküman formatında saklayan veri tabanı türüdür. Örnek: MongoDB, verileri JSON formatında doküman olarak saklar.
Ters Vekil Sunucu (Reverse Proxy)İstemci ile sunucu arasında duran ve gelen istekleri yöneten bir sunucu yazılımı özelliğidir. Örnek: NGINX, bu özelliği ile yük dengeleme yaparak sunucu performansını artırır.
Betik DilGenellikle yorumlanarak çalışan ve web sayfalarına işlevsellik katan dillerdir. Örnek: JavaScript, tarayıcı tarafından derlenmeden yorumlanarak çalıştırılır.
Tam Yığın Geliştirici (Full Stack)Hem ön yüz hem de arka yüz geliştirme süreçlerine hakim olan, bir web projesini uçtan uca tamamlayabilen geliştirici profilidir.
ASPSunucu tarafında çalışan, dinamik web sayfaları oluşturmaya yarayan ve betik dillerini işleyen bir teknolojidir. Örnek: ASP sayfaları sunucuda işlenir ve tarayıcıya saf HTML olarak gönderilir.
IISMicrosoft tarafından geliştirilen, ASP dosyalarının sunucu tarafında çalıştırılmasını sağlayan web yönetim yazılımıdır. Örnek: Yerel bilgisayarda ASP çalıştırmak için IIS hizmetinin aktif edilmesi gerekir.
VBScriptASP dil ortamında standart olarak kullanılan, Visual Basic tabanlı, öğrenmesi kolay bir betik dildir. Örnek: ASP kodları içinde <% %> etiketleri arasında sıklıkla VBScript komutları kullanılır.
Request NesnesiKullanıcının tarayıcıdan sunucuya gönderdiği HTTP isteklerini ve form verilerini almak için kullanılan nesnedir. Örnek: Bir formdan gelen kullanıcı adını almak için Request.Form kullanılır.

Sınavda Dikkat Et

  • Web dönemlerinin (1.0, 2.0, 3.0) temel farklarını ezberleyin; sınavda mutlaka 'dinamik içerik' veya 'merkeziyetsizlik' gibi anahtar kelimelerle soru gelir.
  • E-posta protokollerini (SMTP, POP, IMAP) karıştırmayın; SMTP'nin sadece gönderme, IMAP'in ise sunucuda tutarak okuma için kullanıldığını unutmayın.
  • Türkiye'deki internet tarihçesindeki kronolojik sıraya dikkat edin (TÜVAKA -> TR-NET -> TURNET).
  • IP adresleme sistemlerinde IPv4 (32 bit) ile IPv6 (128 bit) arasındaki farkı sayısal olarak bilin.
  • Intranet ve Extranet arasındaki farkın 'erişim yetkisi' olduğunu hatırlayın; Extranet'in belirli dış kullanıcılara açık olduğunu unutmayın.
  • Ön yüz ve arka yüz ayrımını iyi yapın; ön yüz istemci (tarayıcı), arka yüz sunucu tarafıdır.
  • HTML, CSS ve JavaScript'in ön yüz; PHP, ASP.NET, Python ve Java'nın arka yüz dilleri olduğunu mutlaka ezberleyin.
  • Veri tabanı türlerine dikkat edin; MongoDB'nin NoSQL (doküman tabanlı), MySQL ve PostgreSQL'in ise ilişkisel (SQL tabanlı) olduğunu unutmayın.
  • Sınavda dosya uzantılarını karıştırmayın; .asp (ASP), .aspx (ASP.NET) şeklinde ayrılır.
  • Geliştirme ortamlarının (framework) hangi dillerle çalıştığını eşleştirin; Django (Python), Laravel (PHP), Angular.JS (JavaScript/Ön yüz) gibi.
  • ASP'nin bir programlama dili değil, bir dil ortamı olduğunu unutmayın; bu sınavda en çok karıştırılan kavramdır.
  • Temel 6 ASP nesnesini (Request, Response, Session, Application, Server, ASPError) ezberleyin, görevleri sınavda mutlaka sorulur.