Skip to content

Latest commit

 

History

History
280 lines (206 loc) · 22 KB

giris.konulari.md

File metadata and controls

280 lines (206 loc) · 22 KB

Giriş ve Genel Terimler

İnternetin Tarihi

Günümüz hayatının vazgeçilmez parçası olan internet aslında çok kısa bir geçmişe sahip. Amerika Savunma Bakanlığı ve bazı Amerikan Üniversiteleri tarafından başlatılan bir proje günümüz sanal aleminin temelini oluşturuyor.

Arpanet adlı bu proje 1970 yılında hayata geçti. Arpanet başta sadece 15 bilgisayarın birbirine bağlı olduğu bir ağdan ibaretti ve özel kullanıcılara kapalıydı. 70’li yıllar internet fikrinin hızla geliştiği yıllar oldu. Elektronik posta ortaya çıktı ve İngiltere Kraliçesi’nin 1976 yılında ilk e-mailini göndermesiyle internet fikri popüler hale gelmeye başladı.

80’li yıllar teknolojik açıdan önemli adımlara sahne oldu. Alan adlarının ilk olarak kullanılmaya başlandığı 1984 yılında ‘host’ sayısı ancak 1000’di. İnternette patlama yaşandığı zaman dilimi ise hiç kuşkusuz 1990’lar.

Dünya bildiğimiz anlamıyla internetle yani ‘World Wide Web’ deyimiyle 1991’de tanıştı. Host sayısı her yıl katlanarak artıyordu. 1994’te gelindiğinde internetteki site sayısı 10 bine, host sayısı ise 3 milyona ulaşmıştı ve girişimciler bu yeni dünyada yepyeni kazanç kapıları olduğunu farketmişti.

Bankalar ve alışveriş merkezleri sanal şubelerini açmaya başladı. İlk internet radyosu yayına başladı. Hükümetler başta olmak üzere pek çok organizasyon web sitesi açtı. Yepyeni bir pazarlama ve ekonomi anlayışı doğuyordu.

İnternet'in tarihi, 1950'lerde bilgisayarların gelişmesi ile başlar. Paket ağlarının ilk tasarımları ABD, İngiltere ve Fransa'daki çeşitli laboratuvarlarda şekillenmiştir.

HTTP Nedir?

İnternet araçlarıyla bilginin sunucudan kullanıcıya ne şekilde ve nasıl aktarılacağını belirten bir kurallar zinciridir.

HTTP Nedir

World Wide Web - WWW

World Wide Web (kısaca WWW veya Web), İnternet üzerinde yayınlanan birbirleriyle bağlantılı hiper-metin dokümanlarından oluşan bir bilgi sistemidir. Bu dokümanların her birine Web sayfası adı verilir ve Web sayfalarına İnternet kullanıcısının bilgisayarında çalışan Web tarayıcısı adı verilen bilgisayar programları aracılığıyla erişilir. Web sayfalarında metin, imaj, video ve diğer multimedya ögeleri bulunabilir ve diğer bağlantı ya da link adı verilen hiper-bağlantılar ile başka Web sayfalarına geçiş yapılabilir.

PHP Nedir?

Rasmus Lerdorf PHP, "PHP: Hypertext Preprocessor" sözcüklerinin baş harfleriyle temsil edilen HTML içine gömülebilir açık kaynak kodlu, genel amaçlı, özellikle site geliştirmeye uygun bir betik dilidir. Dil yapısının önemli bir kısmını C, Java ve Perl gibi dillerden almış, kendisine has özelliklerle bu yapıyı pekiştirmiş, kolay öğrenilen bir dildir. Dilin ana amacı, site geliştiricilerinin devingen sayfalar oluşturmasını çabuklaştırmaksa da PHP ile çok daha fazlasını yapabilirsiniz. (Kaynak)

İlk kez Rasmus Lerdorf tarafından, web üzerinden sayfasını ziyaret edenleri izlemek amacıyla bir dizi Perl betiği kullanılarak geliştirilmişti. Ancak insanlar bununla ilgilenmeye başlayınca, Lerdorf bir betik motoru oluşturmaya karar verdi. Ayrıca formlara da destek verdi ve böylece PHP/F1 biçimlenmiş oldu. Adı duyuldukça kimi geliştiricinin dikkatini çekti ve böylece bir API oluşturuldu: PHP3 meydana geldi. Ardından Zend motoruyla PHP4 geldi.

Betik Dili Nedir?

Betik dili, web sayfalarında dinamik içerik sağlamak ve kullanıcıyla iletişim kurmak için kullanılan, istemci tarafında çalışan bir dildir.

İstemci/Client Nedir?

İstemci dediğimiz şey, sunucudan istekte bulunan, sunucudaki verileri kullanabilen yapılardır. Örnek olarak bir web sayfasını verebiliriz.İstemci konumundaki web sayfası, sunucu (server) dan bir istekte bulunur ve bunun sonucunda sunucu, istenen verileri istemciye ulaştırır.

Sunucu/Server Nedir ?

Sunucu ise bu bilgileri tutan bilgisayarlardır. Bunların donanımla,yüksek performansla çalışmaları gerekir. Tanımını özet olarak yaparsak Sunucu, bir ağdaki bilgiyi kullanıcılara (bilgisayarlara) paylaştıran, üzerinde birçok yazılım çalıştaran, yüksek performansa sahip bilgisayarlardır.

Hyper Text Markup Language - HTML

Web programlama için gereken en temel dildir. HTML bir programlama dili değil bir betik dilidir. HTML kendi başına çalıştırılamaz, çalıştırılabilmesi için bir web tarayıcısına ihtiyac duyar. HTML ile yazı,resim ve videoları birbirine bağlayıp kullanıcılara sunabiliriz.

Farklı tasarımlarla html sayfaları

Duyarlı Tasarım - Responsive Design

Responsive design/duyarlı tasarım ekran çözünürlüklerine göre özel gösterilen tasarımlar yapmak yerine bu ekran çözünürlüklerine duyarlı olarak görünen tasarımlardır.

Responsive tasarım

Responsive tasarım

CSS Nedir ?

CSS (Cascading Style Sheet) basit ve kullanışlı bir işaretleme dilidir. CSS diğer bir adıyla Stil şablonları yazı, resim, bağlantı, kenar çizgileri vb. HTML öğelerine sitil vermek yani biçimlendirmek için kullanılır. CSS kullanımı sayesinde yüzlerce sayfayı tek bir dosya ile biçimlendirebiliriz. Bu sayede hızlı ve esnek web sayfaları oluşturabiliriz.

CSS Nedir

JavaScript Nedir ?

JavaScript bize etkileşimli ve dinamik web sayfaları hazırlama imkanı vermektedir. Sözdizimi Java’ya benzese de Java ve JavaScript birbirinden farklı teknolojilerdir.

Algoritma Nedir ?

Algoritma, belli bir problemi çözmek veya belirli bir amaca ulaşmak için tasarlanan yol anlamına gelir, matematikte ve bilgisayar biliminde bir işi yapmak için tanımlanan, bir başlangıç durumundan başladığında, açıkça belirlenmiş bir son durumunda sonlanan, sonlu işlemler kümesine denir.

Algoritma Nedir

Üst Seviye Alan Nedir? Top Level Domain (TLD) Nedir?

Üst seviye alan, alan adının en son kısmıdır. Alan adı uzantıları olarak da isimlendirilirler. Burası URL’nizde “nokta”dan sonra gelen kısımdır. Üst seviye uzantılar ülkelere özel üst seviye uzantılar ve jenerik üst seviye uzantılar olarak ikiye ayrılır.

Üst seviye uzantılar şirketin türü, sitenin bulunduğu ülke gibi bazı web sitesi özelliklerini, bu sitenin bir hükümete mi ya da okula mı vs. ait olduğunu tespit etmeye yarar. Üst seviye uzantı kullanımıyla ilgili düzenlemeler oldukça katıdır. Fakat İnternet Tahsisli İsimler ve Sayılar Kurumu (ICANN) 2010 yılında bu düzenlemeyi jenerik üst seviye uzantılar ve ticari markalar için biraz gevşetmiştir.

Alan Adı Sistemi / Domain Name System / DNS

Alan Adı Sistemi (Domain Name System/DNS) online hizmetlerin, bilgisayarların veya internete bağlı tüm kaynakların isimlendirilme sistemidir. Alan adlarını şirketlerle, web siteleriyle veya hizmetleriyle ilişkilendirmeye yarar. Ayrıca alan adlarını ağ protokollerinin doğru şekilde çalışması için gerekli olan sayısal IP adreslerine dönüştürürler. DNS (Domain Name System) tarayıcınızın adres çubuğuna girdiğiniz site ismini, girmek istediğiniz sitenin gerçekte ikamet ettiği IP adresine çeviren ve internette gezinmeyi tahmin edemeyeceğiniz kadar kolaylaştıran oldukça yararlı bir sistemdir. Örneğin hiç kimse şu anda Google'ın ikamet adresi olan 74.125.224.83 adresini tarayıcısına yazmaz. Onun yerine www.google.com yazar ve DNS sunucusu, bu adresi IP adresine yönlendirir.

RootName Server

Name server (NS kısaltmasıyla da kullanılır), alan adları sorgulanmasında kullanılan isim sunucularına deniyor. Yeterli gelmediyse biraz daha derinleşelim: Name server nedir tam olarak? Name server, sahip olunan alan adlarının belirli bir IP adresiyle bağdaştırılmasını sağlar. Böylece hizmete ulaşmak için IP numarası (karışık ve çok basamaklı sayılardan oluşur) yerine alan adını yazarsınız.

DNS Nasıl Çalışır / Özet

DNS Nasıl Çalışır

DNS Nasıl Çalışır / Detaylı

DNS Nasıl Çalışır

İnternetin Sahibi, DNS --- TODO:Bu sayfalardan derlenip hazırlanacak

HTTP Yaşam Döngüsü - HTTP Life Cycle

  1. Domain Adının IP ‘ye çevrilmesi (DNS)
  2. IP adresine TCP isteği (request)
  3. Server‘ın cevabı (response)
  4. Cevabın ekrana basılması (render)

1. Domain Adının IP ‘ye çevrilmesi (DNS)

Tarayıcıya girilen domain (örneğin: www.google.com.tr) DNS sunucularına sorularak IP adresi bulunur. Eğer tarayıcı daha önce DNS sorgulaması yaptıysa aynı domaine istek yapıldığında DNS sorgusu tekrar yapılmaz. Bu, websitesi hız testlerinde -bir sayfada farklı domainlere yapılan istekler için- DNS lookup time kriteri olarak önümüze çıkar.

2. IP adresine TCP isteği (request)

Bulunan IP adresine TCP bağlantısı açılıp (request) girilen domain host header’ı ile gönderilir Bu örnek için gönderilecek bilgiler aşağıdaki gibidir;

GET / HTTP/1.1
Host: www.google.com

Burada kullanıcının istediği sayfa anasayfa olduğundan “/” parametresi GET metodu ile gönderilmiştir.

3. Server‘ın cevabı (response)

IP adresinde bulunan server, isteği işleyip cevap (response) döner. Server bu isteği işlerken port bilgisine bakarak ilgili web sunucusuna (iis, apache, nginx) yönlendirir. Web sunucusu gelen host header’ı ile hangi siteyi çalıştıracağına karar verip ilgili sitenin kodunu işletir.

4. Cevabın ekrana basılması (render)

Cevabı alan browser gelen cevabı ekrana basar (işleme/render). Browser/Tarayıcı render işleminde html ile layout’u, css ile tasarımı (renk, imaj vd) oluşturur. Javascript ise yukarıdaki işlemler yapıldıktan sonra hem css hem html üzerinde (DOM) değişiklikler yaparak sayfaya dinamik bir yapı kazandırır.

HTTP Life Cycle İçin Faydalı Bağlantılar

Sanal Sunucu - VPS (Virtual Private Server)

Virtual Private Server (Sanal özel sunucu) anlamına gelir. Bir sunucu birbirinden bağımsız birden fazla sanal sunucu olarak kullanmaya imkan tanır.

Paylaşımlı Barındırma - Shared Hosting

Paylaşımlı web hosting, bir çok kullanıcı arasında bir fiziksel sunucu ve mevcut kaynakların ortak kullanımı anlamına gelir.

İçerik Dağıtım Ağı - Content Delivery Network (CDN)

CDN Content Delivery Network Terimi’nin kısaltmasından oluşmaktadır. CDN genel olarak talep edilen bir web içeriğinin, kullanıcının coğrafi olarak bulunduğu konuma en uygun, en yakın sunucu tarafından servis edilmesi teknolojisidir.

Bu servis genel olarak yüksek kapasiteli ve global ölçekli web sitelerinin erişim hızını ve verimliliğini arttırmak için kullanılmaktadır. İçeriğin kullanıcının bulunduğu konuma en yakın olan sunucudan aktarılması ile beraber hem içerik kullanıcıya en hızlı şekilde taşınmakta hem de sunucuya dışarıdan yapılacak küçük/büyük ölçekli ataklar CDN sunucuları tarafından önlenmektedir.

CDN sunucular genel olarak gelen ilk talebi, merkezi sunucudan çekip ön belleğe aktararak bundan sonra gelecek talepleri direk ön bellekten hızlıca cevap vermektedir.

CDN’in gelen talebe cevap verme işlemi kullanıcıya tamamen şeffaf bir şekilde verilmektedir, bu sebepten dolayı kullanıcı ilgili içeriğin normal bir sunucu üzerinden mi yoksa CDN sunucu üzerinden mi yüklendiğini bilmeden kullanır.

Hayatın online, digital olmaya başladığı günümüzde, firmalar statik içerikleri, dinamik içerikleri, mobil içerikleri, video, ses, oyun, elektronik ticaret işlemleri ve daha nicelerini hızlandırmak için CDN tercih etmektedirler. Kaynak

https://www.cloudflare.com/ ücretsiz cdn desteği veren bir sitedir.

cdn

SEO Nedir?

“SEO” (Search Engine Optimization), kısaltmasıdır. Arama motorları SEO işlemleri ile web sitelerini daha kolay bir şekilde taraması için yapılan teknik kriter düzenlemelerdir. (Search Engine Optimization) Türkçe de Arama motoru optimizasyonu demektir.

SEO, bir web sitesi hakkında arama motorları için yapılan tüm iyileştirme çalışmaları olarak tanımlanabilir. Arama motoru optimizasyonu yani SEO ile amaç web sitesinin değerini artırarak arama motorunda daha üst sıralara çıkması ve dolayısı ile site ziyaretçi sayısının artırılmasıdır.

SEO’nun temel amacı, açılımı itibariyle “Arama Motoru Optimizasyonu” yani Arama Motorlarında üst sıralarda listelenmektir. Bu amaç da, sitelerde yer alan bilgi, hizmet veya satışların daha fazla ilgili kitleye ulaştırılmasını sağlamaktır.

Örnek SEO Çalışmaları

Tesisat Firması İçin:

  • Keçiören tesisatçı iletişim telefon
  • Keçiören su tesisatçısı usta telefon
  • Keçiören sıhhi tesisat tamircisi
  • Keçiören su tesisat tamirci ustası
  • Keçiören sıhhi su tesisatçısı
  • Keçiören su tesisatı servisi Ankara
  • Keçiören genelinde tesisat firmaları
  • Keçiören kameralı su tesisatçısı
  • Keçiören kırmadan robotlu tesisatçı
  • Keçiören cihazlı su tamircisi
  • Keçiören klozet içine su kaçırıyor
  • Keçiören klozetin rezervuarı değişecek
  • Keçiören klozet tamir ustası iletişim
  • Keçiören klozetimin musluğu bozuldu
  • Keçiören klozet sifonu arızalandı
  • Keçiören tahalet çubuğu kırıldı
  • Keçiören klozetin kapağı değişecek
  • Keçiören klozetimin altından su çıkıyor
  • Keçiören klozet içine su doldurmuyor
  • Keçiören klozetimiz dolduğunda suyu kesmiyor
  • Keçiören musluk tamiri için usta gerekliyor
  • Keçiören musluk suyu kapatmıyor damlatıyor
  • Keçiören mutfak bataryası bozuldu
  • Keçiören lavabo musluğunun borusu patladı
  • Keçiören aç kapa bataryanın içi bozuldu
  • Keçiören banyo musluğu su akıtıyor
  • Keçiören tuvaletin musluğu su damlatıyor
  • Keçiören duş bataryasının kolu kırıldı
  • Keçiören lavabo çeşmesi değişecek
  • Keçiören musluğun altındaki vana kapanmıyor
  • Keçiören alt kata su akıntısı başladı
  • Keçiören üst kattan su damlıyor
  • Keçiören tesisatımda su kaçağı var
  • Keçiören su tesisatı borusu patladı
  • Keçiören cihazla su kaçağı ustası arıyorum
  • Keçiören kameralı tesisat kaçağı hizmeti
  • Keçiören robotla su kaçağı yapan tesisatçı
  • Keçiören fayansların arasından su çıkıyor
  • Keçiören su saati kendiliğinden yavaş dönüyor
  • Keçiören kırmadan su kaçağının bulunması
  • Keçiören lavabo tıkandı su gitmiyor
  • Keçiören tuvalet gideri tıkalı taşıyor
  • Keçiören klozetten su gitmiyor borusu tıkalı
  • Keçiören mutfak lavabosu tıkandı çekmiyor
  • Keçiören banyo gideri tıkandı acil açılması gerek
  • Keçiören küvetten su yavaş gidiyor
  • Keçiören yersüzgeci giderinden su gitmiyor
  • Keçiören robotla tıkalı gider açan yer arıyorum
  • Keçiören kamera ile tıkanıklığın açılmasını istiyorum
  • Keçiören kırmadan tıkanan gideri açan usta

İsim Sözlüğü İçin SEO çalışması:

  • Kemal ne anlama geliyor?
  • Kemal ne demek?
  • Kemal isminin anlamı?
  • Kemal isminin anlamı nedir
  • Kemal kelimesinin anlamı nedir
  • Kemal nedir?
  • Kemal isminin manası nedir?
  • Kemal erkek ismi midir?
  • Kemal Kız ismi midir?
  • Kemal erkek adı midir?
  • Kemal Kız adı midir?

MarkDown:

Yapımcısı John Gruber Markdown’ı 2004’te “web yazarları için bir metinden HTML’ye dönüştürme aracı” şeklinde tanımlamış. “Düz metin biçimlendirme sentaksı…”, “Eposta-stili yazma…” ve “Özellikle ve sadece HTML’ye ön-işlem olsun diye tasarlandı…”

StackEdit ve diğer bir örnek gibi online web sitesi ile kolayca deneyebilirsiniz.

İşletim Sistemi Nedir?

İşletim sistemleri cihazlarda var olan tüm donanımları yöneten ve sistemli bir şekilde çalışmasını sağlayan en temel yazılımdır. İşletim sistemi; bilgisayar, cep telefonu, beyaz eşya, oyun konsolları ve daha birçok cihazda bulunmaktadır.

Dağıtım Nedir ?

Bir Linux dağıtımı (kısaca dağıtım); Linux çekirdeği, GNU araçları ve bir masaüstü ortamının bir araya gelmesiyle, bu birlikteliği sürdürülebilir şekilde yönetecek bir yapılandırma araçları seti, yazılım güncelleme araçları vb. ile oluşturularak tam teşekküllü bir işletim sistemi haline gelen uygulamalar bütününü ifade eder.

Paket yöneticileri (apt, yum, packman, dnf, pkg)

  • Paket yükleme işlemleri kolaylaşır.
  • Paket kaldırma işlemleri kolaylaşır.
  • Var olan paketlerin güncelleme işlemleri kolaylaşır.
  • Sistemde yüklü olan/olmayan paketleri listeleme işi kolaylaşır.
  • Paket bağımlılıklarını yönetir (paketlerin çalışması için gerekli olan diğer paketleri yükler veya gereği halinde kaldırır)

SPAGETTİ KOD

Firmalar MVC yöntemini daha çok tercih eder. Spagetti kod HTML kodları arasında yazılan Sunucu ile irtibatta olan kodlarımıza spagetti kod demekteyiz. Kullanımı oldukça karışık olan bu kod yazma stili olan ve günümüzde oldukça sık kullanılan PHP ve ASP kodları genellikle spagetti kod örneğini sık kullanmaktadır. HTML etiketleri arasında yazılan bu kodlar MVC yapısı ile düzenli bir şekile girmiştir.

MVC (Model-View-Controller)

front-end tamamen koddan ayrılmış php kodları tamamen ana kodumuzdan ayrılmıştır.Örneğin css dosyasının içinde php,html kodları yok. MVC şunlar ile yapılabilir;

  • Larevel
  • Cake
  • Code ignaither

NEDEN GITHUB’DA PROJELERE DESTEK VERMELİYİZ ?

Bu iş sevmekten geçiyor.Yaptığım programın başkası tarafından kullanıdğını görmek beni çok mutlu ediyor. Parayla mutluluk bir dakika olur ama bu mutluluk bambaşka. Durum böyle olunca gerçekten bu işi seven yazılımı seven hobi içi yapanlar bu işe destek veriyor. Herkes mi bu işi seviyor? Hayır. Sizler bu projelere destek vermek zorundasınız. Üniversiteden mezunsunuz diplomanız var ortalamalanıza bakarlar. En büyük hata ortalamalara bakılması ve üniversitelere bakılması. Yazılımcılık diploma ile olmaz kod ile olur. İTÜ de okumak sizi adam yapmıyor. Kötü bir üniversitede olmak da sizi gerizekalı yapmıyor. Kendinizi böyle bir sınavda belli etmek yerine Github'da nick alıyorsunuz ve projelere destek veriyorsunuz. Beğendiğiniz bir projeyi indirin, hatasını bulup düzeltin. Adama senin projeni beğendim bir kaç hata buldum bunları düzelttim diyin. Sizin profilinizde bu tarz yaptığınız her şey kaydediliyor. Merak eden birisi açıp projeyi inceliyor. Bunu öğrenciler sıklıklıkla yapıyor.Sonra bir yazılım şirketinde işe girerken sizden GİTHUB adresinizi istiyor.

Anlamsal Sürümleme - Semantic Versioning

BÜYÜK.KÜÇÜK.YAMA diye belirtilen bir sürüm numarasında,

  • Önceki sürümle uyumsuz API değişiklikleri yaptığınızda BÜYÜK sürümü,
  • Önceki sürümle uyumlu bir davranış eklediğinizde KÜÇÜK sürümü, ve
  • Önceki sürümle uyumlu bir hata düzeltmesi yaptığınızda YAMA sürümünü arttırın.

Majör/Büyük: Programda radikal bir değişiklik yapılırsa majör sayımız artar. Minör/Küçük: Programa yenilik getirdiğimiz zaman artar. Bug-Fix/Yama: Hatalar düzeltildiği zaman artar.

Türkçe Kaynak: https://semver.org/lang/tr/

LAMP/WAMP/LEMP vb nedir?

PHP Çalışabilmek için, Apache+MySQL+PHP yazılımlarının bilgisayara kurulumu gerekmete. Ancak, bu konuda üçü bir arada hazır yazılımlar mevcut ve yoğun biçimde kullanılmaktadır.

  • AMP, Web sunucusu olarak Apache kullanan sistemler için kullanılır.
  • EMP, Web sunucusu olarak Nginx kullanan sistemler için kullanılır.
Adı Açıklaması
LAMP Linux için Apache+MySQL+PHP anlamındadır.
WAMP Windows için Apache+MySQL+PHP anlamındadır.
MAMP MacOS için Apache+MySQL+PHP anlamındadır. MAMP'ın Windows sürümü de vardır.
XAMP Linux-Macos-Window işletim sistemlerinin hepsi için Apache+MySQL+PHP anlamındadır.

Öğrendiklerimizin Akılda Kalması

Aşağıdaki piramitten görülebileceği gibi, etkin öğrenmenin yolu anlatma ve uygulamadan geçmektedir. Öğrendiklerimizin Akılda Kalması