Sayfa hazır ve tarayıcıda açık. Site gibi görünüyor, site gibi davranıyor: bağlantılara tıklanıyor, düğmeler çalışıyor. Sayfayı birine gönderiyorsunuz, o da "açılmıyor" diye cevap veriyor. Ya da açılıyor ama stilsiz ve görselsiz. Hiçbir şey bozulmadı. Sayfa tam olarak tek bir yerde, sizin diskinizde yaşıyor ve tarayıcının adres çubuğu da bunu gösteriyor - sadece nereye bakacağınızı bilmeniz gerekiyor.
"Siteyi internete nasıl koyarım" sorusu, sanki bulunması gereken bir düğme varmış gibi geliyor. Soruyu başka türlü sormak daha faydalı: site nerede yaşamalı ki onu sadece ben değil, başkaları da görsün? Cevap parça parça toplanıyor: sunucu, iki adres, path, barındırma ve deploy. Ardından - yayınlananı nasıl güncelleyeceğiniz, barındırmanın neden anahtar istediği ve siz "yayınla" dediğinizde ajanın ne yaptığı.

1. Dosya tek bir bilgisayarda yaşıyor
Sayfa diskten açıkken adres çubuğuna bakın. Orada bir bağlantı değil, dosyanın yolu var:
file:///C:/projects/landing/index.html # diskinizdeki dosyanın yolu
https://landing-demo.tiiny.site/ # başka bir bilgisayardaki adresİlk satır sizin diskiniz. Tarayıcı burada bir görüntüleme programı gibi çalışıyor: dosyayı açtı, okudu, gösterdi. Ağda hiçbir yere gitmedi. İkinci satır başka bir bilgisayarın adresi. Birincisi yalnızca sizde açılır, ikincisi internete bağlı herhangi bir cihazdan.
İşte "açılmıyor" da buradan geliyor. Dosya göndermek ile sayfa yayınlamak farklı şeyler. Sayfa genellikle tek bir dosya değil, bir klasördür: index.html, yanında style.css ve görseller. Yalnızca index.html dosyasını gönderdiyseniz alıcıda açılır, ama stilleri ve görselleri arayacak bir yer olmaz. "Açılıyor ama yamuk görünüyor" dediğimiz durum da bu.
İkinci sınırlama daha basit. Akşam dizüstü bilgisayarınızı kapattınız, çantaya koyup eve götürdünüz. Bu kadar, artık uyuyor ve kimseye hiçbir şey veremez. Sayfayı herkes her zaman görebilsin diye dosyalarının sizde değil, başka bir yerde durması gerekir.
"Bende çalışıyor" ile "herkeste açılıyor" iki farklı durum. Makalenin geri kalanı, bu ikisinin arasında ne olduğunu anlatıyor.
2. Sunucu
Ana kelime - sunucu. Bu, ışıkları yanıp sönen gizemli bir kutu değil, sadece her zaman açık duran ve dosyaları başkalarına veren bir bilgisayar. Bütün anlamı da bu: siz yokken ulaşılabilir olmak.

Sunucu olmadan da olabiliyormuş gibi görünüyor. Bir arkadaşınıza mesajlaşma uygulamasından resim gönderiyorsunuz - resim telefonunuzdan doğrudan ona uçmuyor mu? Hayır. Önce uygulamanın sunucusuna gidiyor, arkadaşınıza da oradan ulaşıyor. Bu yüzden gönderip telefonu kapatabilir, uyumaya gidebilirsiniz, arkadaşınız resmi iki saat sonra açar. Sunucu, görünmediği yerde bile ortada duruyor.
Sayfa için sonuç aynı: herkes görsün diye dosyalarının böyle bir makinede durması gerekir. İnternet, eşyaların kendiliğinden içine düştüğü ortak bir bulut değil, uyumayan başka bir bilgisayardır. Başta bu biraz hayal kırıklığı bile yaratıyor, fazla sıradan. Ama en azından anlaşılır.
3. Alan adı ve IP
Dünyada çok sayıda sunucu var ve doğru olana bir şekilde ulaşmak gerekiyor. Adresiyle. Sunucunun, sıradan bir evinki gibi iki adresi var: koordinatlar ve tabela.
Birincisi - IP. 192.0.2.1 gibi sayısal bir adres: kesin ama insan için okunaksız, çıplak koordinatlar. Bilgisayarlar birbiriyle tam olarak böyle konuşur.
İkincisi - alan adı (domain). example.com gibi, insanlar için bir isim. Bu bir tabela: arkadaşınıza "elli kırk beş, otuz elli iki koordinatlarındaki binanın önünde buluşalım" demezsiniz. "Köşedeki kafenin önünde" dersiniz.
192.0.2.1 # IP: sunucunun sayısal adresi, makineler için
example.com # alan adı: aynı yer, insanlar için bir isimleİkisi nasıl bağlantılı: bir isim yazdığınızda tarayıcı önce isim rehberine bu ismin arkasında hangi IP olduğunu sorar ve ancak ondan sonra rakamlara gider. Bu rehbere DNS denir ve şimdilik onun hakkında daha fazlasını bilmeniz gerekmiyor: ismi yazarsınız, gerisi kendiliğinden olur.
Adresin gözden kaçması kolay bir parçası daha var: en baştaki https://. Bu, ismin bir parçası değil, bağlantı yöntemi: sunucuyla konuşma şifreli. Tarayıcılar bunu farklı şekillerde gösteriyor, ama s olmayan http:// adresini hepsi güvenli değil diye işaretliyor. Barındırma hizmetleri şifrelemeyi kendileri sağlıyor.
4. Path ve varsayılan dosya
Sunucuda genellikle bir sürü dosya durur. Tam olarak hangisinin gerektiğini path, yani yol söyler: adresin alan adından sonraki kısmı. Alan adı bir binaysa, path içerideki hangi tezgâh olduğunu gösterir.
Adres soldan sağa okunur ve sihirli bir dize değil, üç cevaptır. https://example.com/about/team.html şu anlama gelir: "example.com sunucusunda about/team.html dosyasını aç".
Path, kelimenin tam anlamıyla sunucunun diskindeki dosyanın yoludur: about klasörü, içinde de team.html, tıpkı bilgisayarınızdaki bir klasörün yolu gibi. Büyük sitelerde sayfalar çoğu zaman istek anında oluşturulur, ama mantık aynı: adres belirli bir yere götürür.
Peki path boşsa? https://example.com/ yazıyorsunuz - hangi dosya açılacak? Bunun cevabı çoktan kararlaştırılmış: sunucu, sitenin kök klasöründeki index.html dosyasını verir, neredeyse tüm barındırma hizmetleri böyle yapar. Buradan birazdan işe yarayacak bir kural çıkıyor: index.html yayınladığınız klasörün kökünde durur, iç içe bir klasörde değil.
5. Rotanın tamamı
Artık tüm parçalar yerinde ve onları tek bir zincirde birleştirebiliriz.
- Adresi yazarsınız
- İsim rehberi
- Sunucu ve path
- Sayfa sizde
Adresi yazıyorsunuz. Tarayıcı, alan adının IP'sini isim rehberinden öğreniyor ve sunucuya başvuruyor; sunucu da dosyayı path'e göre bulup gönderiyor. Tarayıcı, sizin diskinizde de durabilecek aynı HTML metnini alıyor ve sayfayı çiziyor.
Buradaki asıl nokta şu: dosya diskten de gelse sunucudan da gelse, tarayıcı işaretlemeyi ve stilleri aynı şekilde çizer. Fark, bu dosyaya başka kimin ulaşabildiğinde. Gerçi tarayıcı diskten açılan sayfada JavaScript'in bazı yeteneklerini kısıtlar, bu yüzden sunucudaki sayfa bazen aynı sayfanın yerel halinden daha eksiksiz çalışır.
6. Barındırma
Bir veri merkezinde sunucunuz yok ve olması da gerekmiyor. Onun yerine barındırma (hosting) var - kiralık sunucu: sayfanın olduğu klasörü ona verirsiniz, o da klasörü her zaman açık olan kendi sunucusuna koyar ve size herkese açık bir bağlantı döndürür. Hepsi bu.
Bağlantı barındırmanın alan adında olur, sizin isminiz de solda durur: landing-demo.tiiny.site, isim.github.io. Alan adı barındırmaya aittir, size onun önündeki isim düşer: bazen onu siz seçersiniz, bazen barındırma kendisi verir. mysite.com gibi kendi alan adınız da olabilir, ama onu satın alıp ayarlamaya şimdi girmeyelim: sayfayı göstermek için ona gerek bile yok.
Sunucuda program gerektirmeyen, hazır dosyalardan oluşan bir sayfa için (böyle sayfalara statik denir, bu ayrı bir konu) ücretsiz barındırma hizmetleri var. Sistem yöneticisi olmanız gerekmeyecek.
Ajan klasörü barındırmaya kendisi verebilir: bir komutla ya da hazır bir skill ile, yani belirli bir barındırma için yazılmış bir talimatla. Bunu yaparken ne yaptığı ve size neyi soracağı - makalenin sonunda.
7. Deploy
Ve bütün bu anlatılanların asıl konusu olan kelime. Deploy, İngilizceden olduğu gibi alınmış bir terim: dosyalarınızı yalnızca sizin değil, başkalarının da erişebildiği bir yere kopyalarsınız - diskinizden barındırmanın sunucusuna. Klasör sizde kalır ve orada da belirir.
Deploydan sonra aynı klasör iki yerde duruyor ve bağlantı sağdakine götürüyor. Soldaki hiçbir yere gitmedi, onunla çalışmaya devam edebilirsiniz.
Tam olarak ne gidiyor:
landing/
index.html
style.css
img/
hero.pnglanding/ klasörü bütün olarak yayınlanır, bu yüzden style.css ve görseller yine index.html dosyasının yanında durur ve aynı yollarla bulunur. index.html ise bu klasörün kökündedir. Bir üst klasörü yayınlarsanız bağlantıda klasör listesi ya da boş bir sayfa açılır.
Klasörün sunucuya nasıl ulaştığı her barındırmada farklı. En basit yol elle: barındırmanın sitesini açıp klasörü ya da dosyaların arşivini oraya sürüklemek ve deploy düğmesine basmak. Terminalde komutla ve depo üzerinden yapılan yollar da var. Özü aynı: klasörünüzün onların sunucusundaki kopyası. Yöntem, deployu kimin yaptığına da bağlı: siz site üzerinden yapabilirsiniz, ajan ise yalnızca komutla.
Buradan iki kelime sürekli karşınıza çıkacak. Yerel - sizin makinenizde, yalnızca sizin için. Dışarıya açık - sunucuda, herkes için. Deploy ikisi arasındaki köprüdür ve göründüğünden kısadır: bir klasör ve onun bir kopyası.
Klasörün durduğu bilgisayarda sayfa zaten açılır ve bu hiçbir şey kanıtlamaz: yanlışlıkla yerel dosyayı açıp fark etmemek kolaydır. Dürüst kontrol, mobil internete bağlı bir telefondur: dizüstü bilgisayarınızla hiçbir bağı yoktur ve sayfa orada açıldıysa dışarıya açılmıştır.
8. Yayınlananı nasıl güncellersiniz
index.html dosyasındaki başlığı düzelttiniz, telefonda sayfayı yenilediniz - orada hâlâ eskisi var. Böyle olması gerekiyor. barındırmada deploy anındaki kopya duruyor, siz ise orijinali düzelttiniz. Bağlantıda yenisinin görünmesi için klasörü yeniden göndermek gerekir: güncelleme, tekrarlanan bir deploydur.
Burada bir incelik var. Aynı adrese yeniden göndermek ancak barındırma sizi tanıyorsa mümkün. Bağlantıların iki türü de buradan çıkıyor.
Geçici. Bazı barındırma hizmetleri hiç hesap olmadan bağlantı veriyor - göstermek ve tartışmak için. Bu bağlantı uzun yaşamaz: örneğin Tiiny Host'ta yaklaşık bir saat. Barındırma bunun için bile e-posta isteyebilir; bu bir kayıt değil, yüklemeyi en azından bir şeye bağlamanın yolu. Böyle bir bağlantı güncellenemez, klasörü yalnızca yeni bir adresle yeniden yayınlayabilirsiniz.
Kalıcı. Hesapla bağlantı kaybolmaz, adresi seçebilir, güncelleyebilir ve silebilirsiniz; ücretsiz planlarda site ve güncelleme sayısı genellikle sınırlıdır. Hesap, geçici bağlantı veren aynı barındırmalarda ücretsiz. Hesapla birlikte bir anahtar da gelir, ama ona her zaman ihtiyaç olmaz.
Deployu ajan yapıyorsa, ilk sefer ile güncelleme arasındaki fark tek bir cümlede:
landing klasörünü barındırmaya yayınla. Telefondan açılabilecek bir bağlantı lazım.
index.html'deki başlığı düzelttim. landing'i tekrar yayınla, mümkünse aynı adrese.İkinci istek dürüst. "Mümkünse" ifadesi, bağlantının geçici mi kalıcı mı olacağına dair kararı ajana bırakır, o da hangisinin çıktığını söyler. Ajanın cevaplarını göstermiyorum: her barındırmada ve her skill'de farklılar.
9. Erişim anahtarı
Barındırmadaki hesap size bir erişim anahtarı verir: barındırmanın sizi tanıdığı, harf ve rakamlardan oluşan uzun bir dize. Elle çalışırken ona gerek yok: sitede hesabınıza giriş yaptınız, klasörü sürüklediniz, deploy düğmesine bastınız - barındırma zaten kim olduğunuzu biliyor. Anahtar ajana lazım: o site üzerinden gitmez, klasörü komutla gönderir ve barındırma komutu yalnızca anahtar sayesinde tanır. Anahtarla deploy dosyaları kalıcı adresinize koyar, anahtarsız yalnızca geçici bir bağlantı çıkar.
Anahtar kimdeyse sizin adınıza o yayınlar, tıpkı sokakta bırakılmış bir ev anahtarı gibi. Ajanla yazışma diskte durur ve ağ üzerinden gider, bu yüzden ajan istese bile anahtar yazışmaya yapıştırılmaz.
Anahtarın kendi yeri var ve araçlar onu oradan kendileri okur: bir ortam değişkeni ya da deploy skill'inin sizsiz açtığı bir dosya. Skill anahtarı nereye kaydedeceğini sorarsa, cevap olarak sohbete dizeyi değil, o yeri yazın.
Tersi de olur: anahtar, servisin ajanın isteğine verdiği cevapla kendiliğinden sohbete gelir. O zaman onu bu yere kaydedin ve yazışmanın bu sırrı artık görmüş olduğunu unutmayın.
İlk yayın için anahtar gerekmez: geçici bir bağlantı ya da site üzerinden yükleme yeterlidir.
10. Claude Code ile birlikte nasıl çalışır
Ajandan "yayınla" istediğinizde aşağı yukarı şunlar olur.
- Ajan klasöre bakar ve hazır dosyalardan oluşan bir sayfa görür. Barındırma için bir skill yoksa kurmayı önerir ya da nereye yayınlayacağını sorar. Barındırmayı siz seçersiniz.
- Gönderme işini komutla yapar. Ajanın izin istediği modlarda komut çalışmadan önce görünür: hangi klasörü nereye gönderdiği yazar ve alışkanlıkla "evet"e basmak yerine onu okumaya değer. Onay istemiyorsa - böyle modlar var ve en baştan açık olabilir - göndermeden önce komutu ve klasörü göstermesini isteyin.
- Sonuç, ajanın cevabındaki bir bağlantıdır. Onu telefondan açın: ajanın ikinci bir cihazı yok, bunu kendisi kontrol edemez.
- Güncelleme aynı istektir: "tekrar yayınla". Aynı adrese ancak barındırma sizi anahtardan tanırsa gider. Tanımazsa ajan dürüstçe yeni bir geçici bağlantı döndürür ve bu bir hata değildir.
- Geçici bağlantı için ajan e-posta sorabilir, bu bir sır değil. Anahtar ise hayır: sorduysa cevap, anahtarın okunabileceği yerdir, sohbete yazılmış dize değil.
Bu, sayfanın klasörü olmalı; tüm disk değil, anahtarların durduğu klasör değil, taslaklar değil. Siteyi barındırmadan silmek de bir komuttur ve aynı sebeple onu çalışmadan önce görmek gerekir.
GO TO FULL VERSION