Her zaman bir web sitesi için sunucu tarafı programlamalısınız?


38

Bir arkadaş için müzik projesi web sitesi oluşturmaya başlamak üzereyim. Şimdilik oldukça basit olmalı: dinamik içerik (tur tarihleri, vb.) Ve birkaç gömülü örnek şarkıdan veya SoundCloud bağlantısından başka bir şey yok. Duyarlı bir ızgara için vanilya JavaScript ve Bootstrap veya Foundation'dan başka bir şey kullanmayı beklemiyorum.

Ancak bu yeterli mi? HTML, CSS ve JS dosyalarını bir ana bilgisayara yükleyip basitçe yükleyebilir miyim, yoksa arka uç sunucusunu Node veya PHP'de programlamak için zaman harcamalı mıyım?


54
Yeterli mi? Dinamik bir arka uca sahip olmanın ne gibi bir problemi var? Yapana kadar aptalca basit tut.
RubberDuck

25
Yapılmayan işi en üst düzeye çıkarın. YAGNI.
RubberDuck,

9
Tek yapmanız gereken bir metin yazmak, bazı resimler ve birkaç müzik dosyası yüklemek / bazı video dosyalarını gömmek / YouTubes ... WordPress vb. İdeal olun ve çoğu hosting şirketi dakikalar içinde kullanabilmeniz için tek tıklamayla kurulum yapanlar sunar .... Orada birçok CMS var.
Kinnectus

11
Acaba böyle bir sorunun neden bu kadar çok önemi var? Bu, "herhangi bir veri depolamak zorunda olmasa bile yazılımım için bir veritabanı oluşturmak zorunda mıyım?" Acemi bir soru olsaydı beni şaşırtmazdı, ama bir önyükleme / temel projesi oluşturmak için yeterince yetenekli olduğunda değil.
Mehdi,

14
@Mahdi çok kızdı, çünkü herkes bu lanet şeyi 5 yıldır merak ediyor ve kimsenin sormaya cesareti yoktu.
djechlin

Yanıtlar:


86

Sunucu tarafı koduna ihtiyacınız olup olmadığını bilmiyorsanız, muhtemelen *

* Uyarı : İçeriğe, verilere veya işlevlere dahili olarak erişimi kontrol etmek istediğinizde, sunucu tarafı kodu güvenlik için gereklidir. (Mutlaka olması gerekmez senin son paragrafa bakın, sunucuyu.)

Sunucu tarafı teknolojilerini kullanmanın hangi sorunu çözeceğini kendinize sorun. Hiçbirini düşünemiyorsanız (ve sizin durumunuzda, ben de yapamam) o zaman onlara ihtiyacınız yok.

Sadece müşteri tarafı kodunu kullanarak, düşündüğünüzden çok daha fazlasının mümkün olduğunu unutmayın. AngularJS veya ReactJS gibi JavaScript çerçeveleri, Ajax kullanan API'ler üzerinden üçüncü taraf dinamik içerikle bütünleşmenize izin verebilir. (Bu, kendi güvenliğini idare edebilecek bir API'ye bağlanmayı içerir.)


17
Bunun yapılması tehlikeli bir ifade olduğunu düşünüyorum - sunucu tarafında teknolojiler 'istemci tarafında yapabileceğiniz' zaman sık kullanılır: şeyleri bir sunucuya taşıma kararı, mutlaka işlevsel olanları değil güvenlik nedenlerindendir. - 'bilmemek' tutumunu teşvik etmek endişe vericidir: programcılar her zaman bir uygulamada güvenliği, her ne kadar basit bir şekilde tanımlanmış olsalar da düşünmelidir . Tüm çözüm düşünülmeli - kullanıcıların bir mp3 vermeden önce FB'ye kaydolmalarını veya beğenmelerini zorlayan 'güvenli' bir içerik alanı ister misiniz? (Ancak bu durumda, statik bir site iyi geliyor)
Jmons

3
Statik saha jeneratörlerinin güvenlik avantajları için de söylenecek bir şey var. Pek çok uygulama için, statik siteler, kelimenin tam anlamıyla kesilecek bir şey bulunmaması nedeniyle en üst düzeyde güvenlik sağlar.
Nathan Arthur

1
Server-side code is essential for securitybazı geliştiriciler güvenlik konusunda af vermez. Sen onların yüzlerini fırlatıp atıncaya kadar ... Hattım, kimlik doğrulamaya ihtiyacınız varsa, bir arka ofise ihtiyacınız var. Verileri saklamanız gerekiyorsa, müşteri tarafından kontrol edildikten sonra verilerin ikinci kez kontrol edileceği bir geri bildirim gerekir.
Walfrat

1
@Walfrat Yalnızca kimlik doğrulamanız gerekiyorsa, bunu herhangi bir sayıda açık auth hizmetine aktarabilir ve arka uç kullanamazsınız. Diğer yandan, yetkilendirmeye ihtiyacınız varsa, bazı arka uç malzemelerine ihtiyacınız olabilir.
corsiKa

56

Statik site jeneratörleri hakkında bilgi edinin. Bunlar, HTML'yi elle işlemekle değil, programlı bir şekilde (şablonlar, veriler vb. Kullanarak) bir site oluşturmanıza olanak tanır. Sonuç, herhangi bir arka uç gerektirmeyen bir statik HTML ve CSS kümesidir.

https://www.staticgen.com/ bu tür açık kaynaklı jeneratörleri listeler ve sıralar; kapalı kaynak teklifleri de muhtemeldir.


3
+1, bu hala biraz zaman geçtikçe dinamik siteler için çalışıyor (bloglar ve tur güzergahları gibi). İçerik, sayfaya bakan kullanıcıya bağlı olana kadar, genellikle yeterlidir.
RemcoGerlich

1
+1. Tur tarihleri ​​ve örnek şarkılar, müşteri tarafından az çok güncellenmelidir. Statik bir site jeneratörü, HTML'ye dokunması gereğini ortadan kaldırır ve (bakımsız) bir CMS'den çok daha basit ve güvenlidir.
Bergi

3
Bunun OP için iyi bir öneri olduğu konusunda hemfikir olsam da, soruyu gerçekten sorduğu gibi cevaplamaya çalışıyor mu?
Woodrow Barlow

İşaretli cevap daha geneldi ve Woodrow Barlow'un bahsettiği gibi soruyla aynıydı. Ancak ben ve başkaları için iyi bir çözüm
önermek

2
@WoodrowBarlow: Bir OP olduğunu öne sürmek Can I simply upload HTML, CSS, and JS files to a host and be done with it, or should I take the time to program a backend server in Node or PHP?için çağrı yapılması gerektiğini savunuyorum, OP'nin durumunda oldukça çekici, seçenek IMHO :)
Tobia Tesan

6

Sen edebilir ve etmelidir yeterli olup olmadığını, yalnızca statik siteyi kullanmak veya kullanmak statik sitesi jeneratör . Neden? İdame. Kodda hatalar var. Birkaç haftada bir başka WordPress güvenlik deliği bulundu. Ortak bir CMS kullanıyorsanız, sürekli olarak düzeltmeniz gerekir. Arkadaşlarınızın web sitesinde yakın zamanda yasadışı uyuşturucu reklamları, IŞİD propagandası, ziyaretçilerin bilgisayarlarına yüklenen kötü amaçlı yazılımlar da yer alacak. Düzenli bir şekilde yama yapsanız bile, çok geç kalmış olabilirsiniz, bu nedenle sürekli olarak hack kontrolü yapmanız gerekir. Bu CMS'yi korumanın yolları var. "Güvenlik eklentileri" yükleyin, mod_security vs. gibi bir web uygulaması güvenlik duvarı yapılandırın. Ayrıca güncel tutulmaları gerekir. Bazen mod_security kurallarınız WordPress için bir eklenti kırabilir, bunu analiz etmeniz ve düzeltmeniz gerekir. Daha fazla iş.

Kimsenin o siteyi kesmek istemeyeceğini düşünebilirsiniz. Ancak, ortak CMS sistemlerinde bulunan ortak güvenlik boşlukları için, yakında web’de tarama / arama yapan ve bu CMS’yi kullanan TÜM siteleri hackleyen otomatik botlar vardır. Sadece bağlantılarını / kötü amaçlı yazılımlarını / propagandalarını yaymak istiyorlar.

Statik bir siteyle (el ile veya bir jeneratör ile oluşturulmuş), bu probleminiz yoktur.

Kendi arka ucunuzu uygularsanız, güvenlik delikleri de olacaktır (hiç kimse mükemmel değildir), ancak büyük olasılıkla hiç kimse bu küçük web sitesi için onlardan yararlanmayacaktır. Fakat ne uygulamak istiyorsunuz? Arkadaşınızın tur tarihlerini değiştirebileceği bir editör oluşturmak istiyorsanız, bunun sizin yardımınız olmadan kullanması kolay olana kadar ne kadar süreceğini düşünün. Bu zaman bütçesiyle kaç defa onun için tarihleri ​​değiştirebiliyorsunuz?

Bence bugün çok fazla insan sadece her sitenin CMS sistemlerini kullanıyor, çünkü statik HTML "eski". HTML5 ile mümkün olmayan bir şeye ihtiyacınız yoksa, sunucu tarafı kodunu kullanın. Fakat ihtiyacınız yoksa, onsuz çok fazla zaman kazanırsınız.


Birkaç haftada bir? Hah, eğer sadece! Daha çok gün gibi
Monica ile

3

Sadece ihtiyaç duyduğunuzda arka uç programlama yapmanız gerekir.

Bununla birlikte, e-posta gönderme gibi temel özellikler bile genellikle temel arka uç programlamayı gerektirir. Bu sadece bir teşhir sitesi ise, evet, sorun değil.


1
Bu sadece basit bir özellikse, bunu değiştirmek için genellikle bazı SaaS servislerini kullanabilirsiniz. Örneğin, Google Formlar'da bir kayıt formu ücretsiz yapılabilir ve daha sonra siteden bağlanabilir.
André Paramés

2

Zorunlu olmamakla birlikte, tüm siteyi düz HTML’de yaparsanız, muhtemelen karşılaşacağınız bazı sorunlar vardır.

Birçok site, birden fazla sayfada aynı menü, üstbilgi ve altbilgi öğelerine sahiptir. Bunları bir sayfadan diğerine kopyalayıp yapıştırırsanız, site büyür ve bu alanlarda değişiklik yapmaya devam etmeniz gerekir.

Sunucu tarafı programlamanın çok yaygın olduğu günlerde, bu sorunu çözmenin yaygın yollarından biri, bu alanları her sayfaya yerleştirmek için çerçeveler kullanmaktı . Bu birkaç yıl önce lehine düştü, bu yüzden şimdi yapmayı önermiyorum. Her sayfada bu ortak öğeleri görüntülemek yerine basit bir sunucu tarafı kodu yazabilirsiniz.

Burada raf dışı bir CMS kullanılmasını öneren diğerleriyle aynı fikirdeyim.


1
"Kopyalama ve yapıştırma" işlemine bir alternatif, statik bir site üreteci kullanmaktır; Menü / üstbilgi / altbilgi öğelerine dikkat etmeli, içerik hakkında endişelenmenize izin verecektir.
Doktor J
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.