HTML Cambazlıkları

Ne sihir.. Ne keramet.. Web'de iki, haydi bilemediniz 12 satırlık komutla, mucizeler yaratmanın ne sihirle, ne kerametle ilişkisi var. Herşey, marifete dayanıyor. Bu kez marifetin adı, HTML püfleri ve DHTML.
Televizyonda en çok izlenen belgesellerden biri, film sanayiinin teknik hileleridir. Sinemada teknik hile, olmayanı varmış, ya da başka bir şeymiş gibi göstermek olduğu halde, Web'de "hile" olamaz. Web'de sihir ve keramet, sadece ziyaretçinin ekranında ancak video montaj yoluyla elde edilebilecek bir etkiyi, HTML kodları ile oluşturmayı amaçlar. Bu konuyu böylesine derinlemesine ele almamızın sebeplerinden biri sinema hilelerine meraklı sinema seyircilerine Hollywood tekniklerinin içyüzünü açıklayan belgesellerin yapım sebebiyle aynı: "Bakın ekranınızdaki bu inanılmaz etkiler aslında nasıl kolay sağlanıyor, görün!" demek. İkinci ve asıl amacımız ise, son altı ayda ülkemizde tanık olduğumuz Web sitesi sayısındaki patlamaya paralel olarak, tekniği zayıf Web sayfası sayısındaki yürekler acısı duruma engel olmak. Oradan buradan derlenmiş ve bu arada en hayatî satırları atılmış Javascriptler; parametreleri eksik Java Applet'ler; yukarıdan aşağı, mesela "HelveticaTürk" harfine atıf yapan, fakat bu harf türünün sadece kendi bilgisaylarında olabileceğini hesaba bile katmayan Webmaster'ların incileri! Kısaca, Webciliğimizin biraz sihire, biraz keramete ve çok ölçüde marifete ihtiyacı var.
WEBCİNİN TAKIM ÇANTASI
Her sanat erbabının bir takım çantası ve içinde sanatın gerektirdiği alet edavat bulunur. Başka bir deyişle alet işler, el övünür. Bir Webcinin bilgisayarında ise bazı programların olması gerekir. Hele Web'de cambazlık ölçüsünde ustalaşmak istiyorsanız, bu programlar olmadan yola çıkamazsınız. İşte size gerekli alet-edevat:
Macromedia Dreamweaver
(www.macromedia.com)
Cascading Stylesheet yazmak ve Layer (katman) teknolojisinden yararlanmak için büyük kolaylıklar sağlıyor. Özellikle katmanlara (DIV, SPAN, LAYER VE ILAYER) hareket kazandırmak için gerekli JavaScript kodlarının yazılmasında, JavaScript dilini çok iyi bilmeyen tasarımcılar için eşi bulunmaz bir hazine.
GoLive CyberStudio
(www.golive.com)
Dreamweaver'ın Windows ortamında yaptığını ve daha fazlasını Macintosh ortamı için yapabilen bu program, tasarımı Mac'de yapanlar için gerekli bir araç. Sadece WYSIWYG görünümlü bir HTML editörü değil, fakat aynı zamanda son derece becerikli bir JavaScript yazarı.
Photoshop
(www.adobe.com)
Web'e veya kağıda yönelik bütün grafik işleriniz ve özellikle bitmap tabanlı resim, fotoğraf ve diğer grafikler için, bu amaçla yazılmış programların Rolls Royce'u. O kadar çok rakibi olmasına rağmen, yıllardır bilgisayarda fotoğraf ve resim işlem yazılımlarının adeta standardı olan Photoshop ile, bugün ve yarın her türlü grafik sorunuzu halledebilirsiniz.
HTML Editörü
HTML kodu yazmak için, aslında bir düz yazı programı yeter. Fakat bunun için bütün HTML kodlarını bilmeniz ve çok dikkatli olmanız gerekir. Özellikle açılan ve kapanan HTML kodlarında kapatma etiketini unutmak mümkündür. Microsoft FrontPage, Netobjects, Corel Web Suite, Adobe PageMill, ve daha niceleri, kelime-işlem programı kolaylığıyla ve HTML kodlarını bilmeden HTML yazmanızı sağlayabilir. Fakat bu programları, Web tasarımında ana araç olarak kullanmak, tasarımcıyı HTML'in inceliklerini öğrenmekten alıkoydukları ve özellikle DHTML alanında kendi bildiklerini tarzdan başkasına izin vermedikleri için tavsiye edilmez. Yine bu programlar gibi WYSIWYG tarzı, fakat kendi bildiğinde israr etmeyen, açtığnız HTML kodunu kapatan etiketi kendiliğinden yazan, bütün HTML etiketlerini gruplar halinde ekranın bir kenarında sunarak, hatırlatan HTML editörlerinden birini seçebilirsiniz. Paul Lutus'un Arachnophilia adlı editörü başta olmak üzere, bu işi yapabilecek çok program bulabilirsiniz.
HTML Kılavuzu
Başarılı her Web tasarımcısının masasının üzerinde bir HTML 4 kılavuzu bulunur. Bu kılavuzu edinmek çok kolay: Web Browser'ınızla "http://www.w3.org/TR/REC-html40/struct/global.html#h-7.4.4.2" adresine gidin ve görüntülenen belgeyi sabit diskinize kaydedin. İşte sizi HTML'in yerini XHTML dili alıncaya kadar idare edecek kılavuza sahip oldunuz! Bu belgenin İngilizce olması, HTML'e aşina bir tasarımcı için sorun olmamalıdır; çünkü bu belgede sayısız örnek yer alıyor.
HTML'İ İYİ BİLİYOR MUSUNUZ?
Web'de usta işi siteler ve sayfalar yapmak için, herşeyden önce HTML'in bütün inceliklerine hakim olmanız gerekiyor. Sonra, buna Dinamik HTML unsarlarını eklemeniz şart. Web sayfalarında gerçekten usta işi denilebilecek uygulamalar, doğru ve yerinde kullanılan HTML komutlarına, Javascript veya VBScript dilleriyle yazılmış programlar ve HTML unsurlarına Cascading Stylesheets denen stil komutları eklemekle mümkündür. Bir sirkte, tel üzerinde tek tekerlekli bisiklet süren ve elindeki uzun değneyi bir sağa bir sola oynatarak dengesini bulan bir cambaz düşünün. Benzetmek gibi olmasın, ama Web'de cambazlık yapacaksanız, üzerinde yürüdüğünüz HTML telini, dengenizi sağlayacak Script çubuğunu ve üzerine çıkacağınız Stil bisikletini iyi tanımanız gerekir. İşe, HTML'in inceliklerinden başlayabiliriz.
DURAGAN HTML'İN İNCELİKLERİ
Web'in ortak dili HTML, dördüncü sürümüne ulaşmış bulunuyor. World Wide Web Consortium (www.w3c.org) tarafından düzenlenen bir ortak çabanın ürünü olan HTML'in ziyaretçilerin birbirinden farklı Browser programları tarafından aynı şekilde yorumlanması ve tasarımcının niyet ettiği gibi görüntülenmesi için, W3C'nin koyduğu ilkelere harfi harfine riayet etmeniz şart.
Uyulması gereken temel ilkelerin başında ise, , ve etiketlerinin sırası ve içlerine nelerin konabileceği konusundaki kurallar geliyor. Bir HTML dosyasının HEAD bölümünde yer alması gereken etiketler, bu etiketin dışına konursa, istenmeyen iki durum meydana gelir: Ziyaretçinin Browser'ı sayfayı sizin istediğiniz gibi yorumlayamaz; sayfanız Internet'in endeksini çıkartan belli başlı ara-bul firmaları tarafından doğru tasnif edilemez ve arandığında herhangi bir ihtiyaç sahibi tarafından arandığında bulunamaz.
Başarılı bir Web sayfası oluşturmak istiyorsanız, etiketinin içinde, şu unsurlara yer vermelisiniz:
BASE: İçinde yer aldığı sayfanın mutlak veya göreli URL'ini belirtir ve çok sayfalı Web sitelerine Browser açısından istikrar kazandırır. Browser'ların Geri düğmesi, bir sayfadan önceki sayfaya gidebilmek için buradaki bilgiyi kullanır. İçinde üç özellik unsuru (attribute) yer alır:
HREF: Sayfanın URL'i belirtir.
TARGET: Frameset etiketi ile birlikte kullanıldığında, çerçevelere isim verilmişse sayfanın yeralacağı çerçeveyi belirtir.
FRAMESET (Sayfanın yükleneceği pencere Target'ta belirtilmemişse, ya isim verilmiş bir çerçeveye ya da Browser'ın varsaydığı , _blank, _parent, _self veya _top çerçeveye yükleneceğini belirtir. Bunlar, sırasıyla, yeni ve adlandırılmamış bir Browser penceresini, mevcut sayfayı açtıran sayfanın çerçevesini, mevcut sayfanın kendi çerçesini ve çerçeveli de olsa mevcut Browser penceresinin tümünü kasteder.
META: Bir Web sayfasındaki bilgiler hakkındaki bilgileri (meta/üst bilgileri) içerir. İki unsuru sık kullanılır:
NAME: Sayfanın yazarı, sayfanın yayın tarihi, vb., bilgiler içerir. şeklinde yazılır.
HTTP-EQUIV: İçinde yer aldığı sayfanın, Web Server tarafından ziyaretçiye gönderilmesinde oluşturulacak Response Header (Karşılık Başlığı) bölümünde yer alacak bilgiler içerir. şeklinde yazılır.
Sık Kullanılan Meta Bilgilerinden örnekler:

"keywords" Internet'teki belli başlı ara-bul kurumlarının siteleri araştırır ve içeriklerine göre gruplandırırken, sınıflandırmada kullanmaları istenen kilit kelimeyi belirtir. CONTENT hanesine sitenizin hangi kelimelerle arandığında bulunmasını istiyorsanız, o kelimeleri yazın. Söz gelimi, Yahoo'da "Türkçe MP3" kelimeleriyle arama yapan birisinin sizin sitenizi bulmasını istiyorsanız, bu etiketi şöyle yazmalısınız:


Bazı ara-bul firmaları "description" etiketini tanır ve karşılığı olan metni, sitenin tanımlaması olarak arama yapan kişiye bildirir. Bu etiketi tanımayan ara-bul firmaları ise sayfanın ilk bir kaç kelimesini tanımlama aracı olarak kullanır. Örnek:


Bazı ara-bul firmaları arama yapanlara siteleri sunarken sitenin yazarını "author" etiketini okumak suretiyle tanır ve karşılığı olan metni, arama yapan kişiye bildirir. Örnek:


Bu sayfanın 4 Nisan günü Griniç saatiyle gece yarısından sonra her türlü ara-bul firmasının endeksinden (ve ziyaretçilerin bilgisayarlarında geçici Internet dosyaları deposundan) silinmesini sağlar.

Bu sayfanın 5 saniye sonra Browser penceresinden silinmesini ve yerine sitem.com adresindeki "iki.htm" belgesinin görüntülenmesini sağlar.
SCRIPT: Web sayfalarına, Javascript ile VBScript dilleri, HTML'in kendi orijinal komutları arasında bulunmayan işlevler kazandırır. Javascript ile Java programlama dili, adlarındaki benzerliğe rağmen uzaktan-yakından ilgili değildir; Javascript gerçekte C dilinden türetilmiştir. VBScript ise Microsoft'un Uygulamalar İçin Visual Basic, VBA, dilinden türetilmiştir. Bir Web sayfasında kullanılacak Script dilinin tipi ve kaynağı, HEAD bölümünde deklare edilmek suretiyle, bütün HTML'de bir daha tip ve kaynak belirtilmeden kullanılabilir. Ancak tasarımcı isterse, HEAD bölümü dışında bir yerde mahallî Script deklarasyonunda da bulunabilir. HEAD bölümünde Script dili kullanılarak oluşturulacak fonksiyonlara, sayfanın ileri bölümlerinde isimleriyle atıfta bulunmak mümkündür.
STYLE: Web Browser programlarının HTML'in ilk günlerinden kalma 18 metin biçimlerdirme, 12 metin sunuş etiketi vardır. Buna yapısal belge etiketlerinden altı başlık etiketini de eklerseniz, bir sayfada herhangi bir metni biçimlendirmek için 26 adet önceden-tanımlanmış şekil kullanabilirsiniz.
HTML DEYİP GEÇMEYİN!
Web cambazlığına özenenlerin çoğu, HTML'in yorumu Browser'lara bırakılmış varsayılan biçimlendirme etiketleri ile çok şey yapılamayacağı şeklinde yanlış bir kanısı vardır. İşte bu etiketlerden bazıları ile oluşturabileceğiniz etkilerden bir kaç örnek:
..: İçindeki metnin kısaltma olduğunu gösterir ve ziyaretçi Mouse işaretçisini bu kelimenin üzerinde tutarsa, kelimenin açık şeklini gösterir. Bu etiket, Windows veya Macintosh'un yerel yardım ve ipucu kutuları gibi, bilgi kutuları oluşturmakta kullanılabilir:

Bu konuda, PCW çok güzel şeyler yazmıştı.



.. İçindeki metnin bir yerden alıntı olduğunu gösterir:

Bu konuda,HTML Tasarım Rehberi kitabına bakabilirsiniz.


.. İçindeki metnin bilgisayar programı veya benzeri bir Script parçası olduğunu gösterir:

Bu paragrafın stili şöyle olmalıdır:

.shadow {
font-size: 16pt;
color: #000000;
font-family: "Arial";
}

Daha sonra normal paragrafa dönebilirsiniz.


.. İçindeki metni, daha küçük harfle ve normal satırın altına indirerek, subscript şeklinde yazdırır. Özellikle bilimsel formül yazarken kullanılabilir:
Dolayısıyla, suyun formülü, H2O şeklinde yazılır.
.. İçindeki metni, daha küçük harfle ve normal satırın üzerine çıkartarak, supercript şeklinde yazdırır. Özellikle bazı isimlerde kullanılabilir:
Romanın kahramanının adı Mike McCormick idi.
,
ve
Özellikle tanımlama ve benzeri liste türü açıklamalarda, tanımlanan kelime ile tanımlama paragrafını, kelime-işlem veya masaüstü yayıncılılık programı hassasiyetiyle, içerden başlatmakta bu iki etiket birlikte kullanılabilir:
DHTML
Kelime anlamı Dinamik Hyper Text İşaretleme Dili olup, Web sayfalarına dinamik nitelik kazandıran teknolojiler bütünüdür.
ASP
Kelime anlamı Aktif Server Sayfaları olup, Microsoft'un Dinamik Web sitesi yapımına getirdiği yeni teknolojileri içerir.
:
Ne var ki, bu görüntülenme tarzı önceden belirlenmiş biçim etiketleri, bu tarzın her zaman tasarımcının elde etmek istediği etkiye uygun olmaması ve HTML etiketlerinin bazen bir Browser'dan diğerine farklı şekil göstermesi çoğu zaman tasarımcıya "Ah, şu metne şu şu özellikleri verecek bir etiket olsa!" dedirtir. İşte bu gibi durumlarda tasarımcının imdadına koşmak amacıyla icad edilmiş birinci araç Script ise ikinci araç Style etiketidir.
Bir HTML belgesi, üç ayrı tarzda stil komutu kabul eder ve bunları tabir yerinde ise üstüste yığarak, en son talimatı yerine getirir. Bu sebeple, HTML'in bir uzantısı olan stil belirleme yoluyla belge biçimlendirme tekniğini, Cascading Style Sheets, denir. Cascading, "birbirinin üzerine yığılma," Style Sheets ise stil komutlarının içinde yer aldığı talimat belgesi anlamına gelir.
Bir Web sayfasına ayrı bir belge halindeki stil kağıdını ekleyebilirsiniz; veya Web sayfasının HEAD bölümünde belgenin tümü için geçerli stil komutları koyarsınız; ya da en zor yola giderek, her bir paragrafı bizzat kendi

etiketininin içindeki stil komutları ile biçimlendirirsiniz. Dışarıdan bir stil kağıdı ekleme yöntemi, sadece bu kağıttaki komutları değiştirerek, bir sitenin (bu kağıt iliştirilmiş) bütün sayfalarındaki biçimlendirmeleri değiştermenize imkan sağlar. HEAD bölümünde yapacağınız stil değişikliği ise o belgedeki bütün biçim etiketlerini etkiler. Bir paragrafın kendi biçim komutları ise o paragraf bittiği anda hükmünü kaybeder. İyi bir Web tasarım tekniği, bütün siteyi bir Style Sheet'e bağlamak ve stil değişikliklerini bu belge üzerinde yapmaktır. Bu sitenin bütün sayfalarına tutarlılık kazandırır. Böyle bir sitede öyle bir sayfa olur ki, sitenin tümüne biçim veren Stil Kağıdı yerine, yeni HEAD bölümündeki stil komutları ile biçimlendirilmesi gerekir. Bu durumda, sayfa, dışarıdaki stil kağıdına bağlı bile olsa, kendi HEAD bölümündeki stil kuralları geçerli olur. Fakat bir sayfada öyle bir paragraf olur ki, sitenin tümünü biçimlendiren veya o sayfayı şekillendiren stiller yerine kendi özel stiline ihtiyaç duyabilir. Bu durumda o paragrafın stilini, kendi

etiketini biçimlendirerek belirlemek en kolay yol olur. Bu durumda ne sitenin stil kağıdı, ne de sayfanın stil bölümü geçerli olur; o paragraf stilini kendi yerel stil komutundan alır.
DİNAMİK HTML'E HOŞGELDİNİZ!
Gerçekte dinamik HTML diye bir şey olmadığını söylersek, Web tasarımcısı olarak hayalleriniz yıkılmaz, herhalde! Dinamik HTML başlığı altında ele alabileceğimiz herşeyi, yukarıda "Duragan HTML" unsurları arasında gördük bile: Script ve CSS.
Script, Browserların 100'e yakın kelime içeren HTML diline, yeni kelimeler kazandıran bir ek sözlük gibidir. Javascrip veya VBScript, programlama dili olarak, Browser ve onun vasıtasıyla Windows, Unix veya MacOS tarafından yorumlanarak anlam kazanırlar. "Yorumlanan" dil, işletim sistemine bir yorumlayıcı eklenmesini gerektirir. Mesela C dili ile yazdığınız bir programın yorumlanması gerekmez; çünkü bu program, işletim sisteminin istediği ve anladığı bütün komutları bilir. Oysa Javascript veya VBScript komutunun, Browser'a bir iş yaptırtabilmesi için önce tercüme edilmesi, yorumlanması gerekir. Bu zorunluk gerçi Script dili ile yazılmış "program" veya "programcığın" yavaşlamasına yol açar, ama Script dilleri genellikle türetildikleri programlama dilinden daha basittir ve daha kolay öğrenilir.
Web'de gerçekten usta bir tasarımcı olmaya niyet eden kişinin, HTML'den hemen sonra, belli başlı iki Browser'ın da ortak Script dili olan Javascript'i derhal öğrenmesi gerekir. VBScript öğrenmek, aktif ve ziyaretçi ile etkileşmeli yeni bir Server teknolojisi olan ASP (Active Server Pages) öğrenmeye ve uygulamaya kararlı kişiler için daha çok kazançlı olacaktır; ancak Netscape bugünkü haliyle VBScript komutlarını tanımamaktadır. Sitesini her iki Browser'ı da kullanan ziyaretçileri dikkate alarak tasarlayan bir Web ustasının, Browser için Javascript, Server için VBScript öğrenmekten başka çaresi yoktur.
"Öğrenmek" dediğimiz zaman, bundan, bilgisayar okullarında öğretildiği tarzda aylar süren bir formel eğitimle bir programlama dilini öğrenmeyi kastetmiyoruz. Çoğu zaman bu iki dilin de nerede ve nasıl kullanıldığını ve bu dilin komutlarının sentaksını (cümle kuruluşunu) öğrenmek yeterlidir. Internet'te istemediğiniz kadar çok bulacağınız Script'leri, kendi sitenize uyarlarken nelere dikkat edeceğinizi bilmeniz gerekir. Bir yerde unutulan bir tırnak, eşittir yerine iki nokta üstüste, ve benzeri mini-mini hatalar yüzünden, bir Script beklediğiniz sonucu vermeyebilir. Bir Web tasarımcısının Script dili öğrenirken amacı, o dili kullanarak, etkileşmeli oyun programı yazmaktan çok, sitesine dinamik unsurlar kazandırmak için yeterli düzeyde, en temel komutları ve bunların yazım tekniğini öğrenmekten ibarettir.
Dinamik HTML tekniğine dayanan Web sayfası ile yapılabilecek işlerin zirve noktalarından birini www.htmlguru.com adresinde görebilirsiniz. Sayfalardaki hemen her unsurun görsel olduğunu, buna karşılık metinle yapılabilecek hiç bir işlemin grafiğe yüklenmediği ve dolayısıyla sayfaların siteden ziyaretçinin bilgisayarına aktarılması için gerekli zamanı asgaride tutan, yine de ziyaretçinin ekranına yansıyacak herşeyi ziyaretçinin talebine bırakan bir dinamizme sahip bir sayfa on adımda elde edilebilir. Buna isterseniz, DHTML'in anayasası da diyebilirsiniz:
1. Kağıt üzerinde hazırlık: Fikrinizi önce kağıda dökün; reklam ajanslarının reklam filmi yaptığı gibi bir senaryo şeması çıkartın. Bu, birinci sayfadan sonuncuya kadar, sitenizdeki bütün sayfaların ekran görüntüsünü kağıt üzerinde resmetmek demektir.
2. Teknikleri belirleme: Hayalinizdeki sitenin oluşumu için kullanılacak teknikleri belirleyin; zayıf olduğunuz tekniklerde kimden yardım isteyeceğinizi düşünün. Günümüzün Web teknolojisi, grafikçinin programcı, metin yazarının grafikçi olmasını gerektiriyor ve kolaylaştırıyor. Hayatında bir suluboya resim yapmamış kişi bile bir grafik programı ve telif hakkından vazgeçilmiş bir kaç grafikle yola çıkabilir ve ortaya en görkemli Web sitelerinde kullanılabilecek kalitede grafikler çıkartabilir. Bu tür bir el yatkınlığını elde etmek için, bol bol alıştırmak yapmak gerekir. Alıştırmanın zamanı ise Web sitesinin çatısını çatmaya başlamadan öncedir.
3. Donanım ve yazılım denetimi: Hayalinizdeki sitenin oluşturulması için gerekli grafik programları, HTML editörü, site yönetim programı, kelime-işlem programı bilgisayarınızda yüklü mü? Bilgisayarınız bu programların hepsini aynı anda çalıştıracak (ve çökmeyecek) RAM, sanal bellek, sabit disk ve grafik kartı ve ekrana sahip mi?
4. Grafik hazırlama: Kullanacağınız grafik unsurları hazırlayın. Zemin grafiği, ziyaretçilerinizin sayfalarınız arasında gidip gelmesini sağlayacak Navigation (seyir) düğmeleri olarak kullanılacak grafikler, içeriğin gerektirdiği grafikler, başlıklar, süsleme unsuru olarak kullanılacak resimler, sabit diskte, belirli bir yerde toplanmış durumda mı? Bu iş söylendiği kadar kolay değildir. Birinci maddede çizdiğiniz sayfa görüntülerinin gerektirdiği bütün unsurları biraraya getirip, telif hakları ile ilgili sorunları halletmek zaman alır. Ayrıca bütün grafiklerinizde aynı tür isimlendirme tekniğini uygulayın: ya hepsinin adı büyük harfle, ya da hepsinin adı küçük harfle yazılsın. Günün birinde dinamik sayfanızda zemin grafiği yerine kırmızı çarpı işareti görmek istemiyorsanız, sitenizin duracağı Server'ın dosya adları konusunda büyük harf-küçük harf ayırt edip etmediğini şimdiden bilmeniz gerekir.
5. Stil belirleme: Sitenizde uygulanacak metin, başlık ve diğer biçimlendirme stillerini belirleyin: Başlıklarınız arasında kavram sıralaması yapın ve yukarıdan aşağı doğru, bütün unsurlarınıza nasıl şekil vereceğini tayin edin. Bunların gerektirdiği stilleri, bir CSS dosyası olarak yazın. CSS dosyası, düz yazı dosyasıdır ve herhangi bir düz yazı programı ile oluşturulabilir. CSS yöntemiyle, HTML'in temel etiketlerinin stillerini değiştirebileceğiniz gibi, kendi vereceğiniz adla kendi stillerinizi oluşturabilirsiniz.
BİR CSS ÖRNEĞİ
Düz yazı dosyası ile oluşturabileceğiniz bir Cascading Style Sheets örneği:
/*
CSS Dosyası
*/
#turkuaz{
BackGround : AquaMarine ! important;
Font : 100%;
}
.Koyumavi{
BackGround : Beige ! important;
Color : DarkBlue ! important;
Font : bold xx-large/1 Sans-Serif, Arial ! important;
}
.Mavi{
Color : #0000FF ! important;
Font : inherit inherit/inherit Sans-Serif ! important;
}
body, p{
Color : #008080 ! important;
Font : normal normal 100%/1 Sans-Serif, Arial ! important;
}
H1{
Color : #800080 ! important;
Font : oblique xx-large/1 Serif, 'Times New Roman' ! important;
Text-Align : center ! important;
Text-Decoration : underline ! important;
}

Web dilinde stili belirlenebilen etiketlere Selector denir. Bu CSS dosyasında, bir ID (kimlikli) türü, iki Class (sınıf) türü Selector tanımlanıyor; iki HTML Selector'ü, varsayılan değerleri yerine yeni biçimlere kavuşturuluyor.
ID türü Selector'ler, adlarının başındaki # işaretinden tanınırlar ve HTML belgesinde kendilerine kimlikleriyle atıfta bulunularak, herhangi bir etikete biçim vermekte kullanılırlar. Örneğin, buradaki "#turkuaz" adlı ID Selector'ünü bir katmanın içindeki yazıyı biçimlemek üzere kullanmak isterseniz, HTML kodunuz şöyle olacaktır:

HTML programcılığının temel ilkesi:


Hiç yılmadan çalışmak ve öğrenmek; sonra herşeye yeniden başlamak

Bu ilkeyi benimseyen, sadece başarılı HTML programcısı değil, her işte başarılı bir bir kişi olur


Buradaki katman etiketi SPAN'ın içindeki metni biçimlendiren, "turkuaz" adlı Selector başka hiç bir şey yapmayıp sadece biçimlendirdiği unsura aquamarin arkaplan rengi verecektir.
"Class" sayılan Selector'leri, mevcut herhangi bir HTML biçim etiketi ile birlikte kullanılabilir: p.mavi, H2.koyumavi gibi. "Mavi" sınıfı Selector ile birleştirilen HTML Selector'ü, "mavi" sınıfının özelliklerini alır. Buradaki örnekte ".mavi" Selectörünün harf rengini mavi yapmaktan başka bir özelliği yok: diğer bütün stil özelliklerini "inherit" ediyor, yani bağlandığı ve değiştirdiği HTML Selectror'ünden miras alıyor. Burada gördüğünüz "! Important" ifadesi ise Browser'a, ziyaretçi kendi bilgisayarında Browser ayarlarını değiştirmiş bile olsa, bilgisayar sahibinin değil, bizim verdiğimiz değerlerin geçerli olması gerektiğini bildiriyor.
CSS yoluyla, HTML'in kendi stil belirleyebilen etiketlerini, veya teknik adıyla HTML Selector'lerini de yeniden biçimleyebiliriz. Normal olarak HTML'in H1 başlığı sağa yatık bir harfle görüntülenmez; ancak "stillerim.css" dosyasını bağladığınız her Web sayfasında H1 başlığı, italik, çok büyük ve Times Roman olacaktır.
Stil kağıdı, herhangi bir isimle kaydedilebilir; fakat dosya adının uzatması, tercihan ".css" olmalıdır. Bir CSS dosyası, HTML sayfasına HEAD etiketi içinde LINK etiketiyle bağlanır. Diyelim ki bu dosyayı "stillerim.css" adıyla kaydettiniz.Bu dosyayı HTML sayfasında şöyle bağlamanız gerekir:


Stil kağıdı bağlama örneği





Genellikle, ziyaretçinin Browser'ını soruşturduğunuz zaman aldığınız sonucu bir değişkene (variable) yazarak, bir kenarda tutmak isteyebilirsiniz. Bu değişken, ilerde başka Java fonksiyonlarında veya HTML içinde özellikle BODY etiketinde kullanılır. Bu amaçla biraz daha gelişmiş bir Browser belirleme fonksiyonu şöyle olabilir:
function Brw() {
var agent = navigator.userAgent.toLowerCase();
this.major = parseInt(navigator.appVersion);
this.minor = parseFloat(navigator.appVersion);
this.ns = ((agent.indexOf('mozilla')!=-1) && ((agent.indexOf('spoofer')==-1) &&
(agent.indexOf('compatible') == -1)));
this.ns2 = (this.ns && (this.major == 2));
this.ns3 = (this.ns && (this.major == 3));
this.ns4 = (this.ns && (this.major >= 4));
this.ie = (agent.indexOf("msie") != -1);
this.ie3 = (this.ie && (this.major == 2));
this.ie4 = (this.ie && (this.major >= 4));
this.op3 = (agent.indexOf("opera") != -1);
}

var brw = new Brw()
Bu Javascript fonksiyonu, size biri doğru (true), altısı yanlış (false) yedi nesne (object) kazandırır. Diyelim ki, ziyaretçinin Browser'ı Netscape 4.0; o zaman brw.ns4 doğru olacaktır, mesela brw.ie4 yanlış! Sayfanıza ilerde, "Eğer brw.ns4 doğru ise şunu yap... eğer brw.ie4 doğru ise bunu yap" şeklinde rutinler ve fonksiyonlar koyabilirsiniz.
8. Javascript'lerinizi hazırlayın: Dinamik HTML'in iki ayağından biri CSS ise diğeri Javascript yoluyla, bu stilleri katmanlara uygulamaktır. Ziyaretçinin Browser'ına, "Şimdi, pencerende x koordinatı 120, y koordinatı 15 olan noktadan itibaren eni 100, yüksekliği 110 olan bir katman aç ve içine "Burayı tıklayınız!" yaz; bu yazının rengi sarı, zemini mavi olsun; Mouse işaretçisi bu katmanın üzerine geldiği zaman yazının rengi kırmızıya, zeminin rengi turuncuya dönsün!" demek sadece HTML kullanarak hemen hemen imkansız. Oysa, Javascript ile kullanılmaya hazır fonksiyonlar oluşturup (veya bulup), bunları HTML sayfasında kullanmak, işi olağanüstü kolaylaştırır. Javascript ile oluşturulacak fonksiyoonlar da, tıpkı CSS komutları gibi bir HTML dosyasına ya dışarıdan eklenir, ya da HTML'in içinde (ya baş tarafında, ya da kullanılacağı yerde) kullanılır.
Javascript ile oluşturacağınız fonksiyonları bir sitedeki bütün sayfalarda, hatta başka-başka sitelerin sayfalarında kullanmak haricî Javascript dosyasının HTML'e bağlanması ile mümkün olur. Javascript fonksiyonlarını içeren bir düzyazı dosyası, adının uzatması ".js" olan bir dosyada toplanır ve HTML'e LINK etiketi ile bağlanır. Tıpkı stil komutları gibi, sırası geldiğinde HTML'in içinde bu dosyadaki bir fonksiyonu işbaşına çağırırsınız. İyi bir tasarımcının çok zengin bir haricî Script belgesi koleksiyonu olur.
Böyle bir haricî JS dosyasında şu bölümler bulunur:
Browser Belirleme Fonksiyonu: DHTML uyumlu bir Browser, CSS ve katman teknolojisini destekler. Bununla birlikte bütün Browser'lar bütün Javascript fonksiyonlarını desteklemez. Burada kritik nokta, Netscape 4.0 ve daha üstü ile IE 4 ve daha üstünün Browser penceresindeki bir belgeye nasıl referansta bulunduğudur. Netscape, belge unsurlarına document.nesne şeklinde hitabedilmesini isterken, IE, document.all.nesne şeklindeki referans gerektirir. Ayrıca Netscape'te stil belgelerine document.stil_adı.nesne şeklinde atıfta bulunursunuz, IE'de ise bu document.all.stil_adı.style.nesne şeklinde yazılır. Javascript'inizde bu unsurlara, diyelim ki, sürekli belge ve stil diye atıfta bulunabilirsiniz, fakat baş tarafa, Browser belirlediğiniz yere "Eğer Netscape ise belge = document.stil_adı.nesne, eğer IE ise belge = document.all.nesne" anlamında bir rutin yazarsınız.
Grafikleri önceden yükleme: DHTML önemli ölçüde grafik unsurlara yer verme sanatıdır; ve grafikler bir sayfanın ziyaretçiye aktarılmasında en önemli yavaşlık sebebidir. Burada iki büyük düşünce ekolü var: "Sitemizdeki bütün grafikleri henüz birinci sayfa görüntülenmeden ziyaretçiye aktaralım ve sayfalarımız daha sonra çabuk görüntülensin" diyenler; ve "Birinci sayfa ne kadar çabuk görüntülenirse o kadar iyi, ziyaretçinin bir kere ilgisini çekmek şart!" diyenler. İster birinci grupta olun, ister ikinci grupta, hiç değilse birinci sayfanın grafiklerinin tümü, sayfa görüntülenmeye başlamadan önce ziyaretçiye aktarılmalıdır. Bunu, BODY etiketine gömeceğiniz onLoad komutuna bir Javascript önyükleme fonksiyonu bağlayarak yapabilirsiniz. Şu Javascript fonksiyonu, önyükleme işini yapacaktır:
Function onYukleme() {
resim1 = new Image();
resim1.scr = "dizin/resim1.gif";
}
Kapanan kıvrık parantezle fonksiyonu bitirmeden önce, resim2, resim3, vd., sıralayabilirsiniz. Böylece önceden yüklettiğiniz grafikler, ziyaretçinin bilgisayarının belleğinde kalacak ve ihtiyaç anında sür'atle görüntülenecektir.
Javascript konusunda bir son tavsiyeye yer verelim: Gerçekten Javascript öğrenmeye zamanınız yoksa, o zaman sizin için Javascript yazacak bir programı, en ince ayrıntılarına kadar öğrenin. DHTML'in bütün unsurlarını HTML sayfalarınıza yazabilecek ve bu arada sizin için yüzlerce satır Javascript programı oluşturabilecek WYSIWYG tarzı HTML editörlerinin sayısı hızla artıyor. Macintosh dünyasında GoLive CyberStudio, Windows dünyasında Macromedia Dreamweaver bu tür programlar arasında sayılabilir.
9. Katmanlar: Denir ki, Internet, televizyon ile dergi arasında bir ortamdır. Doğru; Web sitelerinde bir gazetede olabileceğinden çok, ancak uzmanlık alanında yayın yapan bir dergide ya da kitapta bulunacak kadar bilgi, bir televizyon atraksiyonu ile ziyaretçiye sunulabilir. Web sayfalarınızda doğrudan video dosyaları da verebilirsiniz; fakat çok pahalı streaming video (akan video) teknolojisi kullanmıyorsanız, bir AVI dosyasının ziyaretçiye aktarılması için gerekli süre, ziyaretçiye bilgisayarını kapattırıp, televizyonunu açtırtabilir!
Fakat Web sayfalarınızda televizyon ve sinema teknolojisinin temeli olan grafiklerin (veya metinlerin) belirli bir sırayla görüntülenmesi, sırası gelenin "açılması," sırası geçenin "kapanması" sağlanabilir. Bunu katman teknolojisi sağlar. Bir HTML sayfasında, ziyaretçinin Browser'ına ActiveX, Flash, Shock ve benzeri animasyonları gerçekleştirmesi için gerekli plug-in dosyalarının yüklenmesini zorunluk olmaktan çıkartan da katman teknolojisidir. DIV, LAYER, ILAYER ve SPAN etiketleri ile oluşturacağınız katmanlar, piksel düzeyinde bir hassasiyetle, ziyaretçinin ekranında, Browser penceresinde belirli bir yere oturtulabilir ve belirli bir sırayla görünür veya görünmez hale getirilebilir. DHTML'in dinamik tek unsuru da budur. (Bunlardan sık kullanacağınız DIV ile SPAN'dir ve aralarındaki tek fark, DIV, blok elemanıdır, yani kendisinden sonra yeni paragraf başlatır; buna karşılık SPAN satır elemanıdır, kendisinden sonra hiç bir şey yapmaz.)
"Piksel düzeyinde hassasiyet" ne demek? Bir Browser, klasik HTML belgesini aldığı zaman içindeki komutları yorumlayıp, sonucunu kendi penceresinde görüntülemeye, sıfır-sıfır noktasından başlar. Bir Browser penceresini, soldan sağa x, yukarıdan aşağı y koordinatları olarak düşünün.
Başarılı bir Web sitesi, 14 inçlik bir ekranı, 640x480 çözünürlükte bir grafik kartı bulunan tipik bir ziyaretçi dikkate alınarak kurulduğuna göre, Windows ve MacOS'in aldığı yerler, Browser'ın kendi penceresi, başlık ve menü çubukları, çerçeveler çıktıktan sonra, tasarımcı olarak size "temiz alan" olarak 600'e 350 piksel kalıyor. (Microsoft, ve Brittanica ansiklopedisi bu alana kendi sitelerini sığdırdığına göre, herhalde siz bir günlük gezete sitesi sığdırabilirsiniz!) Düz bir yazı içeren Web sayfası, nerede başlayıp, nerede biterse bitebilir; önemli değil. Ama, diyelim ki, ziyaretçi Mouse işaretçisini bir grafiğin belirli bir yerine getirdiği zaman, aynı grafiğin 155:220 koordinatında başlayan ve eni 35, yüksekliği 48 piksel olan bir bölüme farklı grafik görüntülenecek! Bu ölçüde hassas positioning (yerleştirme işlemi), ancak katmanlarınızı doğru tanımlamakla mümkündür. "Doğru tanımlamak" ise önce ziyaretçinin o andaki Browser boyutlarını bilmekle mümkündür. Kim olduğunu bile bilmediğiniz bir kişinin, ne olduğunu bile bilmediğiniz Browser'ının o anda enini boyunu nasıl bilebilirsiniz? Ve üstelik bunu, her ziyaretçi için yapacaksınız. Oysa işin kolayı, sayfanın bir kenarına, ziyaretçiye hakaret edercesine, "Ekran çözünürlüğünüz 800'den aşağı ise, yandınız!" diye bir uyarı koymak iken!
Bu işleme ziyaretçinin Browser penceresinin çözünürlüğünü belirleme denir, ve Netscape ile Internet Explorer, farklı sorular sormak şartıyla, sorarsanız, size o andaki boyutlarını verirler. Diyelim ki bir haricî JSavascript dosyasını HTML belgenizin baş tarafında:

şeklinde bir SCRIPT etiketi ile sayfanıza bağlamış bulunuyorsunuz ve bu JS dosyasının içinde daha önce ele aldığımız türden size "brw.ie4" veya "brw.ns4" nesnelerini veren bir fonksiyon var. Şimdi bu neslereni BODY etiketi içinde onLoad olayını kullanarak test edebilir ve ziyaretçinin Browser'ı Netscape ise Netscape için, IE ise IE için geçerli soruyu sorarak, ziyaretçimizin o anda Browser ekranının enini boyunu öğrenebiliriz. İşte size kullanabileceğiniz bir HTML-Javascript parçası:
if(is.ns4) {
ekranEn =innerWidth;
ekranBoy=innerHeight;
preLoad();
} else if(is.ie4) {
ekranEn=document.body.clientWidth;
ekranBoy=document.body.clientHeight;
preLoad();
}"
onResize="history.go(0)">
Bir parantez açalım: buradaki "onResize="history.go(0)" ifadesi, ziyaretçininin sitemize bağlandıktan sonra Browser'ının boyutlarını değiştirmesi ihtimaline karşı, sayfamızın ziyaretçinin sabit diskindeki Cache bellekten yeniden yüklenmesini sağlayan bir güvenlik önlemidir. Bir başka güvenlik önlemi Browser'ın sayfa görüntülendiği anda penceresinin sağına ve altına otomatik kaydırma çubuğu koymasını istemiyorsanız, BODY etiketine şu özellikleri de verebilirsiniz:
BACKGROUND="images/horizon.jpg" MARGINWIDTH="0" MARGINHEIGHT="0" SCROLL="NO"
Peki, şimdi elinizde iki ölçü oldu: ekranEn ve ekranBoy. Bu bilgileri nasıl kullanacaksınız? İşte bu bilgi, ziyaretçinize "Ekranını 800x600 piksel yap, öyle gel!" demekten sizi kurtaracak, söz gelimi bir grafiği 460:710 koordinatlarına denk gelmek yerine "ziyaretçinin ekranının sağ kenarından 200 piksel solda başlamasını sağlayacak olan bilgidir. Bunu yapabilmek için grafiğinizi bir katman nesnesinin (.., .. veya
..
etiketlerinin içine koyarsınız; katman nesnesi, "çıplak" konulacak grafikten () farklı olarak, STYLE özelliğine (attribute) sahiptir ve dolayısıyla, posizyon, başka bir nesnenin altında veya üstünde olmak, görünür veya görünmez olmak gibi kontrollere sahiptir. Örneğin, içinde sayfalarınız arasında gidip gelmeyi sağlayan düğmelerden birincisini içeren katmanın şöyle oluşturulduğunu düşünün:


15 Nisan 2008 Salı

50 Adet Arama Motoruna Kayıt




1. http://www.google.com/intl/en/addurl.html Google

2. http://search.yahoo.com/info/submit.html Yahoo! Search

3. http://search.msn.com/docs/submit.aspx?FORM=WSDD2 MSN

4. http://www.about.com/gi/pages/homehc.htmlc4 About

5. http://www.dmoz.org/add.html Open Directory

6. http://www.accoona.com/submit.html Accoona

7. http://www.exactseek.com/add.html ExactSeek

8. http://www.scrubtheweb.com/addurl.html ScrubTheWeb

9. http://www.snap.com/about/site.php?last_link_type=about Snap

10. http://www.searchsight.com/submit.htm SearchSight

11. http://www.searchit.com/addurl.htm SearchIt

12. http://www.buzzle.com/suggest_basic2.asp Buzzle

13. http://www.entireweb.com/free_submission/ EntireWeb

14. http://www.whatuseek.com/addurl-secondary.shtml What U Seek

15. http://www.ezilon.com/ezilon_url_submission.htm Ezilon

16. http://www.gimpsy.com/gimpsy/searche...check_free.php Gimpsy

17. http://www.dirone.com/add_link_m.php dirOne

18. http://www.websquash.com/cgi-bin/sea...l?Mode=AnonAdd WebSquash

19. http://www.abilogic.com/how-to-suggest-a-site.php AbiLogic

20. http://addurl.amfibi.com/ Amfibi

21. http://www.01webdirectory.com/submit.htm 01WebDirectory

22. http://www.netinsert.com/en/insert.html NetInsert

23. http://www.mavicanet.com/ MavicaNET

24. http://www.searchhippo.com/addlink.php SearchHippo

25. http://www.worldsiteindex.com/ World Site Index

26. http://www.dailyorbit.com/add.htm DailyOrbit

27. http://www.nationaldirectory.com/addurl/ NationalDirectory

28. http://www.tygo.com/websites/FreeSubmitURL.aspx TYGO

29. http://www.mixcat.com/addurl.php MixCat

30. http://www.aeiwi.com/submit.html Aeiwi

31. http://www.illumirate.com/add_your_site_exp.cfm IllumiRate

32. http://www.infotiger.com/addurl.html Info Tiger

33. http://www.towersearch.com/addurl.php TowerSearch

34. http://www.splatsearch.com/submit.html SplatSearch

35. http://www.subjex.net/submit_url.html Subjex

36. http://www.qango.com/dir/addurl.html Qango

37. http://www.zeezo.com/Listings/New.aspx Zeezo

38. http://www.canlinks.net/addalink/ CanLinks

39. http://www.webbieworld.com/signup.asp WebbieWorld

40. http://www.searchking.com/add_new.htm SearchKing

41. http://www.amray.com/cgi/amray/addurl.cgi AMRAY

42. http://www.go4.it/listing.asp Go4.it

43. http://www.cipinet.com/addurl.html Cipinet

44. http://www.hedir.com/submit-help.html Hedir

45. http://www.walhello.com/addlinkgl.html Walhello

46. http://www.linketeria.com/submitsite.htm Linketeria

47. http://www.claymont.com/login/login.asp?img=y Claymont

48. http://www.jdgo.com/add.html JDGO

49. http://www.spheri.com/tc143as.php?sid=0 Sphericom

50. http://www.kaspie.com/web.html Kaspie

9 Şubat 2008 Cumartesi

forum sitesi açmak istiyorum

forum sitesi yapabileceginizi sölüyorum nasılmı http://signup.phpbb24.com/ sitesine girioruz oradan bi üyelik alıoruz ve aldıgımız üyelige göre siteye girioruz ve gerisi size kalmıs siteyi admin girisi yapıyorsunuz ve düzenlemeleri yaparak sitenizi meydana getirmiş oluyorsunuzz

2 Aralık 2007 Pazar

HTML Cambazlıkları

HTML Cambazlıkları


Ne sihir.. Ne keramet.. Web'de iki, haydi bilemediniz 12 satırlık komutla, mucizeler yaratmanın ne sihirle, ne kerametle ilişkisi var. Herşey, marifete dayanıyor. Bu kez marifetin adı, HTML püfleri ve DHTML.Televizyonda en çok izlenen belgesellerden biri, film sanayiinin teknik hileleridir. Sinemada teknik hile, olmayanı varmış, ya da başka bir şeymiş gibi göstermek olduğu halde, Web'de "hile" olamaz. Web'de sihir ve keramet, sadece ziyaretçinin ekranında ancak video montaj yoluyla elde edilebilecek bir etkiyi, HTML kodları ile oluşturmayı amaçlar. Bu konuyu böylesine derinlemesine ele almamızın sebeplerinden biri sinema hilelerine meraklı sinema seyircilerine Hollywood tekniklerinin içyüzünü açıklayan belgesellerin yapım sebebiyle aynı: "Bakın ekranınızdaki bu inanılmaz etkiler aslında nasıl kolay sağlanıyor, görün!" demek. İkinci ve asıl amacımız ise, son altı ayda ülkemizde tanık olduğumuz Web sitesi sayısındaki patlamaya paralel olarak, tekniği zayıf Web sayfası sayısındaki yürekler acısı duruma engel olmak. Oradan buradan derlenmiş ve bu arada en hayatî satırları atılmış Javascriptler; parametreleri eksik Java Applet'ler; yukarıdan aşağı, mesela "HelveticaTürk" harfine atıf yapan, fakat bu harf türünün sadece kendi bilgisaylarında olabileceğini hesaba bile katmayan Webmaster'ların incileri! Kısaca, Webciliğimizin biraz sihire, biraz keramete ve çok ölçüde marifete ihtiyacı var.WEBCİNİN TAKIM ÇANTASIHer sanat erbabının bir takım çantası ve içinde sanatın gerektirdiği alet edavat bulunur. Başka bir deyişle alet işler, el övünür. Bir Webcinin bilgisayarında ise bazı programların olması gerekir. Hele Web'de cambazlık ölçüsünde ustalaşmak istiyorsanız, bu programlar olmadan yola çıkamazsınız. İşte size gerekli alet-edevat:Macromedia Dreamweaver(www.macromedia.com)Cascading Stylesheet yazmak ve Layer (katman) teknolojisinden yararlanmak için büyük kolaylıklar sağlıyor. Özellikle katmanlara (DIV, SPAN, LAYER VE ILAYER) hareket kazandırmak için gerekli JavaScript kodlarının yazılmasında, JavaScript dilini çok iyi bilmeyen tasarımcılar için eşi bulunmaz bir hazine.GoLive CyberStudio(www.golive.com)Dreamweaver'ın Windows ortamında yaptığını ve daha fazlasını Macintosh ortamı için yapabilen bu program, tasarımı Mac'de yapanlar için gerekli bir araç. Sadece WYSIWYG görünümlü bir HTML editörü değil, fakat aynı zamanda son derece becerikli bir JavaScript yazarı.Photoshop(www.adobe.com)Web'e veya kağıda yönelik bütün grafik işleriniz ve özellikle bitmap tabanlı resim, fotoğraf ve diğer grafikler için, bu amaçla yazılmış programların Rolls Royce'u. O kadar çok rakibi olmasına rağmen, yıllardır bilgisayarda fotoğraf ve resim işlem yazılımlarının adeta standardı olan Photoshop ile, bugün ve yarın her türlü grafik sorunuzu halledebilirsiniz.HTML EditörüHTML kodu yazmak için, aslında bir düz yazı programı yeter. Fakat bunun için bütün HTML kodlarını bilmeniz ve çok dikkatli olmanız gerekir. Özellikle açılan ve kapanan HTML kodlarında kapatma etiketini unutmak mümkündür. Microsoft FrontPage, Netobjects, Corel Web Suite, Adobe PageMill, ve daha niceleri, kelime-işlem programı kolaylığıyla ve HTML kodlarını bilmeden HTML yazmanızı sağlayabilir. Fakat bu programları, Web tasarımında ana araç olarak kullanmak, tasarımcıyı HTML'in inceliklerini öğrenmekten alıkoydukları ve özellikle DHTML alanında kendi bildiklerini tarzdan başkasına izin vermedikleri için tavsiye edilmez. Yine bu programlar gibi WYSIWYG tarzı, fakat kendi bildiğinde israr etmeyen, açtığnız HTML kodunu kapatan etiketi kendiliğinden yazan, bütün HTML etiketlerini gruplar halinde ekranın bir kenarında sunarak, hatırlatan HTML editörlerinden birini seçebilirsiniz. Paul Lutus'un Arachnophilia adlı editörü başta olmak üzere, bu işi yapabilecek çok program bulabilirsiniz.HTML KılavuzuBaşarılı her Web tasarımcısının masasının üzerinde bir HTML 4 kılavuzu bulunur. Bu kılavuzu edinmek çok kolay: Web Browser'ınızla "http://www.w3.org/TR/REC-html40/struct/global.html#h-7.4.4.2" adresine gidin ve görüntülenen belgeyi sabit diskinize kaydedin. İşte sizi HTML'in yerini XHTML dili alıncaya kadar idare edecek kılavuza sahip oldunuz! Bu belgenin İngilizce olması, HTML'e aşina bir tasarımcı için sorun olmamalıdır; çünkü bu belgede sayısız örnek yer alıyor.HTML'İ İYİ BİLİYOR MUSUNUZ?Web'de usta işi siteler ve sayfalar yapmak için, herşeyden önce HTML'in bütün inceliklerine hakim olmanız gerekiyor. Sonra, buna Dinamik HTML unsarlarını eklemeniz şart. Web sayfalarında gerçekten usta işi denilebilecek uygulamalar, doğru ve yerinde kullanılan HTML komutlarına, Javascript veya VBScript dilleriyle yazılmış programlar ve HTML unsurlarına Cascading Stylesheets denen stil komutları eklemekle mümkündür. Bir sirkte, tel üzerinde tek tekerlekli bisiklet süren ve elindeki uzun değneyi bir sağa bir sola oynatarak dengesini bulan bir cambaz düşünün. Benzetmek gibi olmasın, ama Web'de cambazlık yapacaksanız, üzerinde yürüdüğünüz HTML telini, dengenizi sağlayacak Script çubuğunu ve üzerine çıkacağınız Stil bisikletini iyi tanımanız gerekir. İşe, HTML'in inceliklerinden başlayabiliriz.DURAGAN HTML'İN İNCELİKLERİWeb'in ortak dili HTML, dördüncü sürümüne ulaşmış bulunuyor. World Wide Web Consortium (www.w3c.org) tarafından düzenlenen bir ortak çabanın ürünü olan HTML'in ziyaretçilerin birbirinden farklı Browser programları tarafından aynı şekilde yorumlanması ve tasarımcının niyet ettiği gibi görüntülenmesi için, W3C'nin koyduğu ilkelere harfi harfine riayet etmeniz şart.Uyulması gereken temel ilkelerin başında ise, , ve etiketlerinin sırası ve içlerine nelerin konabileceği konusundaki kurallar geliyor. Bir HTML dosyasının HEAD bölümünde yer alması gereken etiketler, bu etiketin dışına konursa, istenmeyen iki durum meydana gelir: Ziyaretçinin Browser'ı sayfayı sizin istediğiniz gibi yorumlayamaz; sayfanız Internet'in endeksini çıkartan belli başlı ara-bul firmaları tarafından doğru tasnif edilemez ve arandığında herhangi bir ihtiyaç sahibi tarafından arandığında bulunamaz.Başarılı bir Web sayfası oluşturmak istiyorsanız, etiketinin içinde, şu unsurlara yer vermelisiniz:BASE: İçinde yer aldığı sayfanın mutlak veya göreli URL'ini belirtir ve çok sayfalı Web sitelerine Browser açısından istikrar kazandırır. Browser'ların Geri düğmesi, bir sayfadan önceki sayfaya gidebilmek için buradaki bilgiyi kullanır. İçinde üç özellik unsuru (attribute) yer alır:HREF: Sayfanın URL'i belirtir.TARGET: Frameset etiketi ile birlikte kullanıldığında, çerçevelere isim verilmişse sayfanın yeralacağı çerçeveyi belirtir.FRAMESET (Sayfanın yükleneceği pencere Target'ta belirtilmemişse, ya isim verilmiş bir çerçeveye ya da Browser'ın varsaydığı , _blank, _parent, _self veya _top çerçeveye yükleneceğini belirtir. Bunlar, sırasıyla, yeni ve adlandırılmamış bir Browser penceresini, mevcut sayfayı açtıran sayfanın çerçevesini, mevcut sayfanın kendi çerçesini ve çerçeveli de olsa mevcut Browser penceresinin tümünü kasteder.META: Bir Web sayfasındaki bilgiler hakkındaki bilgileri (meta/üst bilgileri) içerir. İki unsuru sık kullanılır:NAME: Sayfanın yazarı, sayfanın yayın tarihi, vb., bilgiler içerir. şeklinde yazılır.HTTP-EQUIV: İçinde yer aldığı sayfanın, Web Server tarafından ziyaretçiye gönderilmesinde oluşturulacak Response Header (Karşılık Başlığı) bölümünde yer alacak bilgiler içerir. şeklinde yazılır.Sık Kullanılan Meta Bilgilerinden örnekler:"keywords" Internet'teki belli başlı ara-bul kurumlarının siteleri araştırır ve içeriklerine göre gruplandırırken, sınıflandırmada kullanmaları istenen kilit kelimeyi belirtir. CONTENT hanesine sitenizin hangi kelimelerle arandığında bulunmasını istiyorsanız, o kelimeleri yazın. Söz gelimi, Yahoo'da "Türkçe MP3" kelimeleriyle arama yapan birisinin sizin sitenizi bulmasını istiyorsanız, bu etiketi şöyle yazmalısınız:Bazı ara-bul firmaları "description" etiketini tanır ve karşılığı olan metni, sitenin tanımlaması olarak arama yapan kişiye bildirir. Bu etiketi tanımayan ara-bul firmaları ise sayfanın ilk bir kaç kelimesini tanımlama aracı olarak kullanır. Örnek:Bazı ara-bul firmaları arama yapanlara siteleri sunarken sitenin yazarını "author" etiketini okumak suretiyle tanır ve karşılığı olan metni, arama yapan kişiye bildirir. Örnek:Bu sayfanın 4 Nisan günü Griniç saatiyle gece yarısından sonra her türlü ara-bul firmasının endeksinden (ve ziyaretçilerin bilgisayarlarında geçici Internet dosyaları deposundan) silinmesini sağlar.Bu sayfanın 5 saniye sonra Browser penceresinden silinmesini ve yerine sitem.com adresindeki "iki.htm" belgesinin görüntülenmesini sağlar.SCRIPT: Web sayfalarına, Javascript ile VBScript dilleri, HTML'in kendi orijinal komutları arasında bulunmayan işlevler kazandırır. Javascript ile Java programlama dili, adlarındaki benzerliğe rağmen uzaktan-yakından ilgili değildir; Javascript gerçekte C dilinden türetilmiştir. VBScript ise Microsoft'un Uygulamalar İçin Visual Basic, VBA, dilinden türetilmiştir. Bir Web sayfasında kullanılacak Script dilinin tipi ve kaynağı, HEAD bölümünde deklare edilmek suretiyle, bütün HTML'de bir daha tip ve kaynak belirtilmeden kullanılabilir. Ancak tasarımcı isterse, HEAD bölümü dışında bir yerde mahallî Script deklarasyonunda da bulunabilir. HEAD bölümünde Script dili kullanılarak oluşturulacak fonksiyonlara, sayfanın ileri bölümlerinde isimleriyle atıfta bulunmak mümkündür.STYLE: Web Browser programlarının HTML'in ilk günlerinden kalma 18 metin biçimlerdirme, 12 metin sunuş etiketi vardır. Buna yapısal belge etiketlerinden altı başlık etiketini de eklerseniz, bir sayfada herhangi bir metni biçimlendirmek için 26 adet önceden-tanımlanmış şekil kullanabilirsiniz.HTML DEYİP GEÇMEYİN!Web cambazlığına özenenlerin çoğu, HTML'in yorumu Browser'lara bırakılmış varsayılan biçimlendirme etiketleri ile çok şey yapılamayacağı şeklinde yanlış bir kanısı vardır. İşte bu etiketlerden bazıları ile oluşturabileceğiniz etkilerden bir kaç örnek:..: İçindeki metnin kısaltma olduğunu gösterir ve ziyaretçi Mouse işaretçisini bu kelimenin üzerinde tutarsa, kelimenin açık şeklini gösterir. Bu etiket, Windows veya Macintosh'un yerel yardım ve ipucu kutuları gibi, bilgi kutuları oluşturmakta kullanılabilir:
Bu konuda, PCW çok güzel şeyler yazmıştı... İçindeki metnin bir yerden alıntı olduğunu gösterir:
Bu konuda,HTML Tasarım Rehberi kitabına bakabilirsiniz... İçindeki metnin bilgisayar programı veya benzeri bir Script parçası olduğunu gösterir:
Bu paragrafın stili şöyle olmalıdır:
.shadow {font-size: 16pt;color: #000000;font-family: "Arial";}
Daha sonra normal paragrafa dönebilirsiniz... İçindeki metni, daha küçük harfle ve normal satırın altına indirerek, subscript şeklinde yazdırır. Özellikle bilimsel formül yazarken kullanılabilir:Dolayısıyla, suyun formülü, H2O şeklinde yazılır... İçindeki metni, daha küçük harfle ve normal satırın üzerine çıkartarak, supercript şeklinde yazdırır. Özellikle bazı isimlerde kullanılabilir:Romanın kahramanının adı Mike McCormick idi.
,
ve
Özellikle tanımlama ve benzeri liste türü açıklamalarda, tanımlanan kelime ile tanımlama paragrafını, kelime-işlem veya masaüstü yayıncılılık programı hassasiyetiyle, içerden başlatmakta bu iki etiket birlikte kullanılabilir:
DHTML
Kelime anlamı Dinamik Hyper Text İşaretleme Dili olup, Web sayfalarına dinamik nitelik kazandıran teknolojiler bütünüdür.
ASP
Kelime anlamı Aktif Server Sayfaları olup, Microsoft'un Dinamik Web sitesi yapımına getirdiği yeni teknolojileri içerir.
:Ne var ki, bu görüntülenme tarzı önceden belirlenmiş biçim etiketleri, bu tarzın her zaman tasarımcının elde etmek istediği etkiye uygun olmaması ve HTML etiketlerinin bazen bir Browser'dan diğerine farklı şekil göstermesi çoğu zaman tasarımcıya "Ah, şu metne şu şu özellikleri verecek bir etiket olsa!" dedirtir. İşte bu gibi durumlarda tasarımcının imdadına koşmak amacıyla icad edilmiş birinci araç Script ise ikinci araç Style etiketidir.Bir HTML belgesi, üç ayrı tarzda stil komutu kabul eder ve bunları tabir yerinde ise üstüste yığarak, en son talimatı yerine getirir. Bu sebeple, HTML'in bir uzantısı olan stil belirleme yoluyla belge biçimlendirme tekniğini, Cascading Style Sheets, denir. Cascading, "birbirinin üzerine yığılma," Style Sheets ise stil komutlarının içinde yer aldığı talimat belgesi anlamına gelir.Bir Web sayfasına ayrı bir belge halindeki stil kağıdını ekleyebilirsiniz; veya Web sayfasının HEAD bölümünde belgenin tümü için geçerli stil komutları koyarsınız; ya da en zor yola giderek, her bir paragrafı bizzat kendi
etiketininin içindeki stil komutları ile biçimlendirirsiniz. Dışarıdan bir stil kağıdı ekleme yöntemi, sadece bu kağıttaki komutları değiştirerek, bir sitenin (bu kağıt iliştirilmiş) bütün sayfalarındaki biçimlendirmeleri değiştermenize imkan sağlar. HEAD bölümünde yapacağınız stil değişikliği ise o belgedeki bütün biçim etiketlerini etkiler. Bir paragrafın kendi biçim komutları ise o paragraf bittiği anda hükmünü kaybeder. İyi bir Web tasarım tekniği, bütün siteyi bir Style Sheet'e bağlamak ve stil değişikliklerini bu belge üzerinde yapmaktır. Bu sitenin bütün sayfalarına tutarlılık kazandırır. Böyle bir sitede öyle bir sayfa olur ki, sitenin tümüne biçim veren Stil Kağıdı yerine, yeni HEAD bölümündeki stil komutları ile biçimlendirilmesi gerekir. Bu durumda, sayfa, dışarıdaki stil kağıdına bağlı bile olsa, kendi HEAD bölümündeki stil kuralları geçerli olur. Fakat bir sayfada öyle bir paragraf olur ki, sitenin tümünü biçimlendiren veya o sayfayı şekillendiren stiller yerine kendi özel stiline ihtiyaç duyabilir. Bu durumda o paragrafın stilini, kendi
etiketini biçimlendirerek belirlemek en kolay yol olur. Bu durumda ne sitenin stil kağıdı, ne de sayfanın stil bölümü geçerli olur; o paragraf stilini kendi yerel stil komutundan alır.DİNAMİK HTML'E HOŞGELDİNİZ!Gerçekte dinamik HTML diye bir şey olmadığını söylersek, Web tasarımcısı olarak hayalleriniz yıkılmaz, herhalde! Dinamik HTML başlığı altında ele alabileceğimiz herşeyi, yukarıda "Duragan HTML" unsurları arasında gördük bile: Script ve CSS.Script, Browserların 100'e yakın kelime içeren HTML diline, yeni kelimeler kazandıran bir ek sözlük gibidir. Javascrip veya VBScript, programlama dili olarak, Browser ve onun vasıtasıyla Windows, Unix veya MacOS tarafından yorumlanarak anlam kazanırlar. "Yorumlanan" dil, işletim sistemine bir yorumlayıcı eklenmesini gerektirir. Mesela C dili ile yazdığınız bir programın yorumlanması gerekmez; çünkü bu program, işletim sisteminin istediği ve anladığı bütün komutları bilir. Oysa Javascript veya VBScript komutunun, Browser'a bir iş yaptırtabilmesi için önce tercüme edilmesi, yorumlanması gerekir. Bu zorunluk gerçi Script dili ile yazılmış "program" veya "programcığın" yavaşlamasına yol açar, ama Script dilleri genellikle türetildikleri programlama dilinden daha basittir ve daha kolay öğrenilir.Web'de gerçekten usta bir tasarımcı olmaya niyet eden kişinin, HTML'den hemen sonra, belli başlı iki Browser'ın da ortak Script dili olan Javascript'i derhal öğrenmesi gerekir. VBScript öğrenmek, aktif ve ziyaretçi ile etkileşmeli yeni bir Server teknolojisi olan ASP (Active Server Pages) öğrenmeye ve uygulamaya kararlı kişiler için daha çok kazançlı olacaktır; ancak Netscape bugünkü haliyle VBScript komutlarını tanımamaktadır. Sitesini her iki Browser'ı da kullanan ziyaretçileri dikkate alarak tasarlayan bir Web ustasının, Browser için Javascript, Server için VBScript öğrenmekten başka çaresi yoktur."Öğrenmek" dediğimiz zaman, bundan, bilgisayar okullarında öğretildiği tarzda aylar süren bir formel eğitimle bir programlama dilini öğrenmeyi kastetmiyoruz. Çoğu zaman bu iki dilin de nerede ve nasıl kullanıldığını ve bu dilin komutlarının sentaksını (cümle kuruluşunu) öğrenmek yeterlidir. Internet'te istemediğiniz kadar çok bulacağınız Script'leri, kendi sitenize uyarlarken nelere dikkat edeceğinizi bilmeniz gerekir. Bir yerde unutulan bir tırnak, eşittir yerine iki nokta üstüste, ve benzeri mini-mini hatalar yüzünden, bir Script beklediğiniz sonucu vermeyebilir. Bir Web tasarımcısının Script dili öğrenirken amacı, o dili kullanarak, etkileşmeli oyun programı yazmaktan çok, sitesine dinamik unsurlar kazandırmak için yeterli düzeyde, en temel komutları ve bunların yazım tekniğini öğrenmekten ibarettir.Dinamik HTML tekniğine dayanan Web sayfası ile yapılabilecek işlerin zirve noktalarından birini www.htmlguru.com adresinde görebilirsiniz. Sayfalardaki hemen her unsurun görsel olduğunu, buna karşılık metinle yapılabilecek hiç bir işlemin grafiğe yüklenmediği ve dolayısıyla sayfaların siteden ziyaretçinin bilgisayarına aktarılması için gerekli zamanı asgaride tutan, yine de ziyaretçinin ekranına yansıyacak herşeyi ziyaretçinin talebine bırakan bir dinamizme sahip bir sayfa on adımda elde edilebilir. Buna isterseniz, DHTML'in anayasası da diyebilirsiniz:1. Kağıt üzerinde hazırlık: Fikrinizi önce kağıda dökün; reklam ajanslarının reklam filmi yaptığı gibi bir senaryo şeması çıkartın. Bu, birinci sayfadan sonuncuya kadar, sitenizdeki bütün sayfaların ekran görüntüsünü kağıt üzerinde resmetmek demektir.2. Teknikleri belirleme: Hayalinizdeki sitenin oluşumu için kullanılacak teknikleri belirleyin; zayıf olduğunuz tekniklerde kimden yardım isteyeceğinizi düşünün. Günümüzün Web teknolojisi, grafikçinin programcı, metin yazarının grafikçi olmasını gerektiriyor ve kolaylaştırıyor. Hayatında bir suluboya resim yapmamış kişi bile bir grafik programı ve telif hakkından vazgeçilmiş bir kaç grafikle yola çıkabilir ve ortaya en görkemli Web sitelerinde kullanılabilecek kalitede grafikler çıkartabilir. Bu tür bir el yatkınlığını elde etmek için, bol bol alıştırmak yapmak gerekir. Alıştırmanın zamanı ise Web sitesinin çatısını çatmaya başlamadan öncedir.3. Donanım ve yazılım denetimi: Hayalinizdeki sitenin oluşturulması için gerekli grafik programları, HTML editörü, site yönetim programı, kelime-işlem programı bilgisayarınızda yüklü mü? Bilgisayarınız bu programların hepsini aynı anda çalıştıracak (ve çökmeyecek) RAM, sanal bellek, sabit disk ve grafik kartı ve ekrana sahip mi?4. Grafik hazırlama: Kullanacağınız grafik unsurları hazırlayın. Zemin grafiği, ziyaretçilerinizin sayfalarınız arasında gidip gelmesini sağlayacak Navigation (seyir) düğmeleri olarak kullanılacak grafikler, içeriğin gerektirdiği grafikler, başlıklar, süsleme unsuru olarak kullanılacak resimler, sabit diskte, belirli bir yerde toplanmış durumda mı? Bu iş söylendiği kadar kolay değildir. Birinci maddede çizdiğiniz sayfa görüntülerinin gerektirdiği bütün unsurları biraraya getirip, telif hakları ile ilgili sorunları halletmek zaman alır. Ayrıca bütün grafiklerinizde aynı tür isimlendirme tekniğini uygulayın: ya hepsinin adı büyük harfle, ya da hepsinin adı küçük harfle yazılsın. Günün birinde dinamik sayfanızda zemin grafiği yerine kırmızı çarpı işareti görmek istemiyorsanız, sitenizin duracağı Server'ın dosya adları konusunda büyük harf-küçük harf ayırt edip etmediğini şimdiden bilmeniz gerekir.5. Stil belirleme: Sitenizde uygulanacak metin, başlık ve diğer biçimlendirme stillerini belirleyin: Başlıklarınız arasında kavram sıralaması yapın ve yukarıdan aşağı doğru, bütün unsurlarınıza nasıl şekil vereceğini tayin edin. Bunların gerektirdiği stilleri, bir CSS dosyası olarak yazın. CSS dosyası, düz yazı dosyasıdır ve herhangi bir düz yazı programı ile oluşturulabilir. CSS yöntemiyle, HTML'in temel etiketlerinin stillerini değiştirebileceğiniz gibi, kendi vereceğiniz adla kendi stillerinizi oluşturabilirsiniz.BİR CSS ÖRNEĞİDüz yazı dosyası ile oluşturabileceğiniz bir Cascading Style Sheets örneği:/*CSS Dosyası*/#turkuaz{BackGround : AquaMarine ! important;Font : 100%;}.Koyumavi{BackGround : Beige ! important;Color : DarkBlue ! important;Font : bold xx-large/1 Sans-Serif, Arial ! important;}.Mavi{Color : #0000FF ! important;Font : inherit inherit/inherit Sans-Serif ! important;}body, p{Color : #008080 ! important;Font : normal normal 100%/1 Sans-Serif, Arial ! important;}H1{Color : #800080 ! important;Font : oblique xx-large/1 Serif, 'Times New Roman' ! important;Text-Align : center ! important;Text-Decoration : underline ! important;}Web dilinde stili belirlenebilen etiketlere Selector denir. Bu CSS dosyasında, bir ID (kimlikli) türü, iki Class (sınıf) türü Selector tanımlanıyor; iki HTML Selector'ü, varsayılan değerleri yerine yeni biçimlere kavuşturuluyor.ID türü Selector'ler, adlarının başındaki # işaretinden tanınırlar ve HTML belgesinde kendilerine kimlikleriyle atıfta bulunularak, herhangi bir etikete biçim vermekte kullanılırlar. Örneğin, buradaki "#turkuaz" adlı ID Selector'ünü bir katmanın içindeki yazıyı biçimlemek üzere kullanmak isterseniz, HTML kodunuz şöyle olacaktır:
HTML programcılığının temel ilkesi:Hiç yılmadan çalışmak ve öğrenmek; sonra herşeye yeniden başlamak
Bu ilkeyi benimseyen, sadece başarılı HTML programcısı değil, her işte başarılı bir bir kişi olurBuradaki katman etiketi SPAN'ın içindeki metni biçimlendiren, "turkuaz" adlı Selector başka hiç bir şey yapmayıp sadece biçimlendirdiği unsura aquamarin arkaplan rengi verecektir."Class" sayılan Selector'leri, mevcut herhangi bir HTML biçim etiketi ile birlikte kullanılabilir: p.mavi, H2.koyumavi gibi. "Mavi" sınıfı Selector ile birleştirilen HTML Selector'ü, "mavi" sınıfının özelliklerini alır. Buradaki örnekte ".mavi" Selectörünün harf rengini mavi yapmaktan başka bir özelliği yok: diğer bütün stil özelliklerini "inherit" ediyor, yani bağlandığı ve değiştirdiği HTML Selectror'ünden miras alıyor. Burada gördüğünüz "! Important" ifadesi ise Browser'a, ziyaretçi kendi bilgisayarında Browser ayarlarını değiştirmiş bile olsa, bilgisayar sahibinin değil, bizim verdiğimiz değerlerin geçerli olması gerektiğini bildiriyor.CSS yoluyla, HTML'in kendi stil belirleyebilen etiketlerini, veya teknik adıyla HTML Selector'lerini de yeniden biçimleyebiliriz. Normal olarak HTML'in H1 başlığı sağa yatık bir harfle görüntülenmez; ancak "stillerim.css" dosyasını bağladığınız her Web sayfasında H1 başlığı, italik, çok büyük ve Times Roman olacaktır.Stil kağıdı, herhangi bir isimle kaydedilebilir; fakat dosya adının uzatması, tercihan ".css" olmalıdır. Bir CSS dosyası, HTML sayfasına HEAD etiketi içinde LINK etiketiyle bağlanır. Diyelim ki bu dosyayı "stillerim.css" adıyla kaydettiniz.Bu dosyayı HTML sayfasında şöyle bağlamanız gerekir:Stil kağıdı bağlama örneği
............. Bazen bir sitede birden fazla aslî stil belgesi olabilir. Bazı sayfalara "stillerim1.css" dosyasını, bazı sayfalara "stillerim2.css" dosyasını bağlayabilirsiniz.6. Script dosyası oluşturmaya başlayın. Tıpkı CSS gibi, HTML sayfasının Script bölümü de dışardan dosya olarak HTML'e bağlanabilir. Başkalarının sitelerinde gördüğünüz Javascript programlarını çok hoşlandınız diye alıp, kullanamazsınız. "Kim görecek!" diye düşünmek en azından ahlakî bir tutum olmaz. Ayrıca buna ihtiyaç da yok. Bir kere başkalarının sayfalarındaki Javascript bölümleri, büyük bir ihtimalle açıklama ve yorum satırları içermediği için içinden çıkılması imkansız olabilir. Oysa Web tasarımcılarına, kullanılmaya hazır, hemen her fonksiyonu yorum satırları ile açıklanmış, telif hakkı sorunu olmayan Javascriptler sunan binlerce Internet sitesi bulabilirsiniz. Bu tür yerlerden edineceğiniz güvenli ve anlaşılır Javascript'leri, sabit diskinizde biriktirebilirsiniz. Ayrıca büyük bir ihtimalle Javascript öğrenmek için alacağınız kitabın da içi binlerce örnekle dolu bir CD-ROM'u olacaktır!7. Microsoft Internet Explorer ve Netscape Navigator başta olmak üzere yaygın Web Browser programlarını özelliklerini, benzerliklerini ve farklılıklarını öğrenmeye başlayın. Dinamik HTML adı altında yer alan tekniklerin çoğu, IE veya Netscape'in Belge Nesneleri Modeli adı verilen ve bir açtıkları bir pencerede görüntüledikleri bir Web sayfasının özelliklerini nasıl tanıdıkları ve hangi komutlarla değiştirdikleri bilgisine dayanır. Bir örnekle bu karmaşık kavramı açalım: HTML'de tablo oluşturmak için etiketlerinin içini doldurmanız gerektiğini biliyorsunuz. Fakat IE için bir tablonun 22 adet belirlenebilir özelliği varken, Netscape bir tablonun sadece 9 özelliğinin belirlenebilmesine izin verir. Bu yüzden TABLE etiketinin içinde, mesela BORDERCOLORDARK="koyu-renk" ve BORDERCOLORLIGHT="açık-renk" unsurlarını kullanacak olursanız, IE'de tablonuzun dış çerçevesinin üst ve sol kenarı koyu-renk yerine yazdığınız renkle, alt ve sağ kenarı ise açık-renk yerine yazdığınız renkle görüntülenir; sitenizi Netscape'i kullanarak ziyaret edenler ise tablonun tüm çerçevesini tek renk olarak görürler. İki Browser arasındaki farklar, bu kadar "zararsız" olsa iyi! Örneğin, ziyaretçilerden bilgi derlemekte kullandığınız formların vazgeçilmez ögesi INPUT etikeketi, IE'de 21 adet belirlenebilir özelliğe sahip ve bunlardan birini kullanarak, formunuzdaki INPUT kutusunu bir veritabanından alınacak bilgi ile doldurtmak isteyebilirsiniz. Bu, özellikle dinamik bir sayfada, ziyaretçinizin size daha önce bildirdiği bazı bilgilere, bazı tercihlere dayanıyor olabilir. Oysa ziyaretçiniz, Netscape kullanıyor ise, sayfanız bu dinazmden yoksun kalacağı gibi, formdaki eksiklik, ziyaretçiye tasarımcı olarak sizin hatanız gibi görünebilir.İyi bir Web tasarımcısı, bu sebeple her iki programı çok iyi tanımak ve farklarını bilmek zorundadır. Güvenli yol, iki Browser'ın asgarî ortak noktalarına hitap etmektir. Bu, bazen Web sayfanızın daha az dinamik, daha az hareketli, daha az marifetli olmasına yol açacaktır. Ama iyi bir Web tasarımcısı, ziyaretçilerine hangi Browser'ın daha iyi olduğuna dair ders vermez; sadece ve sadece sitesinin içeriğini her iki Browser'ın kullanıcılarına da ulaştırmaya çalışır. Sitenizi IE kullanarak görmeye gelen bir kişinin "Bu site Netscape için optimize edilmiştir," Netscape kullanarak gelen bir ziyaretçinin de "Bu site en iyi IE ile görülür!" yaftasını görünce, ne hissettiğini sanıyorsunuz? Size düşen, ziyaretçinizi sinirlendirmek değil, tersine sunmak istediğiniz içeriği, ziyaretçinin Browser'ına uyumlu hale getirmek. Bunun için ziyaretçinin Browser'ının türünü ve sürümünü belirlemeniz gerekir. Eğer bunu yapmayacaksanız, asla Netscape'de yanlış görüntülenecek, sadece IE'e özgü özelliklere hitap etmeyin. IE'nin bazı özelliklerinden yararlanmak istiyorsanız, bu sağlayacak kodun Netscape'de "hiç bir şey yaptırmayan" kodlar olmasına dikkat edin.ZİYARETÇİNİN BROWSER'INI KOKLAYABİLİR MİSİNİZ?Internet Browser programlarının bir kokusu olduğunu düşünmüyorsunuz, herhalde! Ama muzip bir programcı, ziyaretçilerin sitenize bağlantı sağladıkları Browser'ın markası ve sürümünü belirleme işine "Browser'ı koklamak" adını takmakta sakınca görmemiş olmalı! O günden beri bu amaçla kullanılan Javascript ve VBScript programlarına "Browser Koklayıcı" deniyor.Ziyaretçinizin Browser'ının türü ve sürümü iki yerde belirlenebilir: Ziyaretçinin bilgisayarında (Client-side) veya sitenize ev sahipliği yapan Web Server'da (Server-side). ASP gibi ileri bir Server teknolojisi kullanmıyorsanız, belirleme işini ziyaretçinin bilgisayarında yapmak uygun olur. HTML kodlarınızı iki Browser'ın ortak özelliklerine indirgemek işinize gelmiyorsa, sayfanın tümünü değilse bile bir bölümünü IE için ve diğerleri için farklı yapabilirsiniz. Bunu sağlamak için size gerekli bilgi, ziyaretçinin Browser'ı IE 4 ve üstü mü, 3 ve altı mı, yoksa diğerleri mi sorusunun cevabıdır. Bu soruyu, ziyaretçinin Browser'ına şu Javascript fonksiyonu ile sorabilirsiniz:function msieversion(){var ua = window.navigator.userAgentvar msie = ua.indexOf ( "MSIE " )if ( msie > 0 )return parseInt (ua.substring (msie+5, ua.indexOf (".", msie )))else return 0}Bu fonksiyon, hemen hemen bütün belli başlı Browser'larda işler ve size Microsoft IE'nin sürüm numarasını bildirir. Diyelim ki Web sayfanız gerçekten IE 4 ve daha sonrası sürümlerin bir özelliğine mutlaka hitabetmek zorunda. O zaman, HTML'in daha sonraki bir bölümünde, IE 4 ve sonrası için ayrı, IE 3 ve öncesi için ayrı, ve diğerleri için ayrı HTML veya Script kullanacağınız zaman, yukarıdaki fonksiyonun elde etmiş olduğu bilgiyi şöyle kullanabilirsiniz:if ( msieversion() >= 4 ) { [buraya IE 4 ve sonrası için yazacağınız kodlar girecek]}else if ( msieversion() [buraya IE 3 ve öncesi için yazacağınız kodlar girecek]}else { [buraya diğer Browser'lar için yazacağınız kodlar girecek]}Fakat bazen, birinci sayfanızı bile ziyaretçinin Browser'ına uyumlu olarak vermek isteyebilirsiniz. Bu durumda şu sayfa, ziyaretçinin Browser'ını koklayacak ve ona göre ana sayfa gönderecektir. (Netscape için sayfanızın adı "netscape.htm," IE için "ie.htm" ve diğerleri için "diger.htm" olması, sayfa adları başka ise bu kodda değişiklik yapmanız gerekir):Browser'a göre ana sayfa!var browser=navigator.appName + " " + navigator.appVersion;var getkey=browser.substring(0, 12);function hangiSayfa(){if (browser.substring(0, 8)=="Netscape") window.location="netscape.htm";if (browser.substring(0, 9)=="Microsoft") window.location="ie.htm";if ( (browser.substring(0, 8)!="Netscape") && (browser.substring(0, 9)!="Microsoft") ) window.location="diger.htm";}// -->
Genellikle, ziyaretçinin Browser'ını soruşturduğunuz zaman aldığınız sonucu bir değişkene (variable) yazarak, bir kenarda tutmak isteyebilirsiniz. Bu değişken, ilerde başka Java fonksiyonlarında veya HTML içinde özellikle BODY etiketinde kullanılır. Bu amaçla biraz daha gelişmiş bir Browser belirleme fonksiyonu şöyle olabilir:function Brw() {var agent = navigator.userAgent.toLowerCase();this.major = parseInt(navigator.appVersion);this.minor = parseFloat(navigator.appVersion);this.ns = ((agent.indexOf('mozilla')!=-1) && ((agent.indexOf('spoofer')==-1) &&(agent.indexOf('compatible') == -1)));this.ns2 = (this.ns && (this.major == 2));this.ns3 = (this.ns && (this.major == 3));this.ns4 = (this.ns && (this.major >= 4));this.ie = (agent.indexOf("msie") != -1);this.ie3 = (this.ie && (this.major == 2));this.ie4 = (this.ie && (this.major >= 4));this.op3 = (agent.indexOf("opera") != -1);}var brw = new Brw()Bu Javascript fonksiyonu, size biri doğru (true), altısı yanlış (false) yedi nesne (object) kazandırır. Diyelim ki, ziyaretçinin Browser'ı Netscape 4.0; o zaman brw.ns4 doğru olacaktır, mesela brw.ie4 yanlış! Sayfanıza ilerde, "Eğer brw.ns4 doğru ise şunu yap... eğer brw.ie4 doğru ise bunu yap" şeklinde rutinler ve fonksiyonlar koyabilirsiniz.8. Javascript'lerinizi hazırlayın: Dinamik HTML'in iki ayağından biri CSS ise diğeri Javascript yoluyla, bu stilleri katmanlara uygulamaktır. Ziyaretçinin Browser'ına, "Şimdi, pencerende x koordinatı 120, y koordinatı 15 olan noktadan itibaren eni 100, yüksekliği 110 olan bir katman aç ve içine "Burayı tıklayınız!" yaz; bu yazının rengi sarı, zemini mavi olsun; Mouse işaretçisi bu katmanın üzerine geldiği zaman yazının rengi kırmızıya, zeminin rengi turuncuya dönsün!" demek sadece HTML kullanarak hemen hemen imkansız. Oysa, Javascript ile kullanılmaya hazır fonksiyonlar oluşturup (veya bulup), bunları HTML sayfasında kullanmak, işi olağanüstü kolaylaştırır. Javascript ile oluşturulacak fonksiyoonlar da, tıpkı CSS komutları gibi bir HTML dosyasına ya dışarıdan eklenir, ya da HTML'in içinde (ya baş tarafında, ya da kullanılacağı yerde) kullanılır.Javascript ile oluşturacağınız fonksiyonları bir sitedeki bütün sayfalarda, hatta başka-başka sitelerin sayfalarında kullanmak haricî Javascript dosyasının HTML'e bağlanması ile mümkün olur. Javascript fonksiyonlarını içeren bir düzyazı dosyası, adının uzatması ".js" olan bir dosyada toplanır ve HTML'e LINK etiketi ile bağlanır. Tıpkı stil komutları gibi, sırası geldiğinde HTML'in içinde bu dosyadaki bir fonksiyonu işbaşına çağırırsınız. İyi bir tasarımcının çok zengin bir haricî Script belgesi koleksiyonu olur.Böyle bir haricî JS dosyasında şu bölümler bulunur:Browser Belirleme Fonksiyonu: DHTML uyumlu bir Browser, CSS ve katman teknolojisini destekler. Bununla birlikte bütün Browser'lar bütün Javascript fonksiyonlarını desteklemez. Burada kritik nokta, Netscape 4.0 ve daha üstü ile IE 4 ve daha üstünün Browser penceresindeki bir belgeye nasıl referansta bulunduğudur. Netscape, belge unsurlarına document.nesne şeklinde hitabedilmesini isterken, IE, document.all.nesne şeklindeki referans gerektirir. Ayrıca Netscape'te stil belgelerine document.stil_adı.nesne şeklinde atıfta bulunursunuz, IE'de ise bu document.all.stil_adı.style.nesne şeklinde yazılır. Javascript'inizde bu unsurlara, diyelim ki, sürekli belge ve stil diye atıfta bulunabilirsiniz, fakat baş tarafa, Browser belirlediğiniz yere "Eğer Netscape ise belge = document.stil_adı.nesne, eğer IE ise belge = document.all.nesne" anlamında bir rutin yazarsınız.Grafikleri önceden yükleme: DHTML önemli ölçüde grafik unsurlara yer verme sanatıdır; ve grafikler bir sayfanın ziyaretçiye aktarılmasında en önemli yavaşlık sebebidir. Burada iki büyük düşünce ekolü var: "Sitemizdeki bütün grafikleri henüz birinci sayfa görüntülenmeden ziyaretçiye aktaralım ve sayfalarımız daha sonra çabuk görüntülensin" diyenler; ve "Birinci sayfa ne kadar çabuk görüntülenirse o kadar iyi, ziyaretçinin bir kere ilgisini çekmek şart!" diyenler. İster birinci grupta olun, ister ikinci grupta, hiç değilse birinci sayfanın grafiklerinin tümü, sayfa görüntülenmeye başlamadan önce ziyaretçiye aktarılmalıdır. Bunu, BODY etiketine gömeceğiniz onLoad komutuna bir Javascript önyükleme fonksiyonu bağlayarak yapabilirsiniz. Şu Javascript fonksiyonu, önyükleme işini yapacaktır:Function onYukleme() {resim1 = new Image();resim1.scr = "dizin/resim1.gif";}Kapanan kıvrık parantezle fonksiyonu bitirmeden önce, resim2, resim3, vd., sıralayabilirsiniz. Böylece önceden yüklettiğiniz grafikler, ziyaretçinin bilgisayarının belleğinde kalacak ve ihtiyaç anında sür'atle görüntülenecektir.Javascript konusunda bir son tavsiyeye yer verelim: Gerçekten Javascript öğrenmeye zamanınız yoksa, o zaman sizin için Javascript yazacak bir programı, en ince ayrıntılarına kadar öğrenin. DHTML'in bütün unsurlarını HTML sayfalarınıza yazabilecek ve bu arada sizin için yüzlerce satır Javascript programı oluşturabilecek WYSIWYG tarzı HTML editörlerinin sayısı hızla artıyor. Macintosh dünyasında GoLive CyberStudio, Windows dünyasında Macromedia Dreamweaver bu tür programlar arasında sayılabilir.9. Katmanlar: Denir ki, Internet, televizyon ile dergi arasında bir ortamdır. Doğru; Web sitelerinde bir gazetede olabileceğinden çok, ancak uzmanlık alanında yayın yapan bir dergide ya da kitapta bulunacak kadar bilgi, bir televizyon atraksiyonu ile ziyaretçiye sunulabilir. Web sayfalarınızda doğrudan video dosyaları da verebilirsiniz; fakat çok pahalı streaming video (akan video) teknolojisi kullanmıyorsanız, bir AVI dosyasının ziyaretçiye aktarılması için gerekli süre, ziyaretçiye bilgisayarını kapattırıp, televizyonunu açtırtabilir!Fakat Web sayfalarınızda televizyon ve sinema teknolojisinin temeli olan grafiklerin (veya metinlerin) belirli bir sırayla görüntülenmesi, sırası gelenin "açılması," sırası geçenin "kapanması" sağlanabilir. Bunu katman teknolojisi sağlar. Bir HTML sayfasında, ziyaretçinin Browser'ına ActiveX, Flash, Shock ve benzeri animasyonları gerçekleştirmesi için gerekli plug-in dosyalarının yüklenmesini zorunluk olmaktan çıkartan da katman teknolojisidir. DIV, LAYER, ILAYER ve SPAN etiketleri ile oluşturacağınız katmanlar, piksel düzeyinde bir hassasiyetle, ziyaretçinin ekranında, Browser penceresinde belirli bir yere oturtulabilir ve belirli bir sırayla görünür veya görünmez hale getirilebilir. DHTML'in dinamik tek unsuru da budur. (Bunlardan sık kullanacağınız DIV ile SPAN'dir ve aralarındaki tek fark, DIV, blok elemanıdır, yani kendisinden sonra yeni paragraf başlatır; buna karşılık SPAN satır elemanıdır, kendisinden sonra hiç bir şey yapmaz.)"Piksel düzeyinde hassasiyet" ne demek? Bir Browser, klasik HTML belgesini aldığı zaman içindeki komutları yorumlayıp, sonucunu kendi penceresinde görüntülemeye, sıfır-sıfır noktasından başlar. Bir Browser penceresini, soldan sağa x, yukarıdan aşağı y koordinatları olarak düşünün.Başarılı bir Web sitesi, 14 inçlik bir ekranı, 640x480 çözünürlükte bir grafik kartı bulunan tipik bir ziyaretçi dikkate alınarak kurulduğuna göre, Windows ve MacOS'in aldığı yerler, Browser'ın kendi penceresi, başlık ve menü çubukları, çerçeveler çıktıktan sonra, tasarımcı olarak size "temiz alan" olarak 600'e 350 piksel kalıyor. (Microsoft, ve Brittanica ansiklopedisi bu alana kendi sitelerini sığdırdığına göre, herhalde siz bir günlük gezete sitesi sığdırabilirsiniz!) Düz bir yazı içeren Web sayfası, nerede başlayıp, nerede biterse bitebilir; önemli değil. Ama, diyelim ki, ziyaretçi Mouse işaretçisini bir grafiğin belirli bir yerine getirdiği zaman, aynı grafiğin 155:220 koordinatında başlayan ve eni 35, yüksekliği 48 piksel olan bir bölüme farklı grafik görüntülenecek! Bu ölçüde hassas positioning (yerleştirme işlemi), ancak katmanlarınızı doğru tanımlamakla mümkündür. "Doğru tanımlamak" ise önce ziyaretçinin o andaki Browser boyutlarını bilmekle mümkündür. Kim olduğunu bile bilmediğiniz bir kişinin, ne olduğunu bile bilmediğiniz Browser'ının o anda enini boyunu nasıl bilebilirsiniz? Ve üstelik bunu, her ziyaretçi için yapacaksınız. Oysa işin kolayı, sayfanın bir kenarına, ziyaretçiye hakaret edercesine, "Ekran çözünürlüğünüz 800'den aşağı ise, yandınız!" diye bir uyarı koymak iken!Bu işleme ziyaretçinin Browser penceresinin çözünürlüğünü belirleme denir, ve Netscape ile Internet Explorer, farklı sorular sormak şartıyla, sorarsanız, size o andaki boyutlarını verirler. Diyelim ki bir haricî JSavascript dosyasını HTML belgenizin baş tarafında:
şeklinde bir SCRIPT etiketi ile sayfanıza bağlamış bulunuyorsunuz ve bu JS dosyasının içinde daha önce ele aldığımız türden size "brw.ie4" veya "brw.ns4" nesnelerini veren bir fonksiyon var. Şimdi bu neslereni BODY etiketi içinde onLoad olayını kullanarak test edebilir ve ziyaretçinin Browser'ı Netscape ise Netscape için, IE ise IE için geçerli soruyu sorarak, ziyaretçimizin o anda Browser ekranının enini boyunu öğrenebiliriz. İşte size kullanabileceğiniz bir HTML-Javascript parçası:if(is.ns4) {ekranEn =innerWidth;ekranBoy=innerHeight;preLoad();} else if(is.ie4) {ekranEn=document.body.clientWidth;ekranBoy=document.body.clientHeight;preLoad();}"onResize="history.go(0)">Bir parantez açalım: buradaki "onResize="history.go(0)" ifadesi, ziyaretçininin sitemize bağlandıktan sonra Browser'ının boyutlarını değiştirmesi ihtimaline karşı, sayfamızın ziyaretçinin sabit diskindeki Cache bellekten yeniden yüklenmesini sağlayan bir güvenlik önlemidir. Bir başka güvenlik önlemi Browser'ın sayfa görüntülendiği anda penceresinin sağına ve altına otomatik kaydırma çubuğu koymasını istemiyorsanız, BODY etiketine şu özellikleri de verebilirsiniz:BACKGROUND="images/horizon.jpg" MARGINWIDTH="0" MARGINHEIGHT="0" SCROLL="NO"Peki, şimdi elinizde iki ölçü oldu: ekranEn ve ekranBoy. Bu bilgileri nasıl kullanacaksınız? İşte bu bilgi, ziyaretçinize "Ekranını 800x600 piksel yap, öyle gel!" demekten sizi kurtaracak, söz gelimi bir grafiği 460:710 koordinatlarına denk gelmek yerine "ziyaretçinin ekranının sağ kenarından 200 piksel solda başlamasını sağlayacak olan bilgidir. Bunu yapabilmek için grafiğinizi bir katman nesnesinin (.., .. veya
..etiketlerinin içine koyarsınız; katman nesnesi, "çıplak" konulacak grafikten () farklı olarak, STYLE özelliğine (attribute) sahiptir ve dolayısıyla, posizyon, başka bir nesnenin altında veya üstünde olmak, görünür veya görünmez olmak gibi kontrollere sahiptir. Örneğin, içinde sayfalarınız arasında gidip gelmeyi sağlayan düğmelerden birincisini içeren katmanın şöyle oluşturulduğunu düşünün:
Hangi IMG etiketi böylesine denetlenebilir? İşte bu dinamizmdir; ziyaretçi ile etkileşmektir. Ziyaretçi ile etkileşmek, her ziyaretçinin bilgisayarına bir çerez bırakmaktan ibaret değildir. Katmanlar nesne oldukları için, isimleriyle hitabedilebilirler; herhangi bir Mouse olayına göre attribute değiştirebilir, örneğin görünür hale gelebilirler; görünmez olabilirler. Dinamik bir katman yerleştirme işlemi gibi yönetimi de Javascript ile mümkündür.10. Sitenizi sınayın: Çok kolay gibi görünmesine rağmen, Internet, farklı Browserlar, farklı modem hızları, farklı bilgisayarlar, farklı ekran kartları ve ekranlarla sınanmamış sitelerle dolu. Bir çok tasarımcı için sınama, en fazla bütün dosyaları sitenin üretildiği bilgisayardan başka bir bilgisayara aktararak, bağlantıları kontrol etme anlamına geliyor. Yani acaba herhangi bir LINK, mutlak bir dosyayı mı çağırıyor? IMAGE dizinine yerleştirilmemiş grafik kaldı mı? Hayır, hayır.. Sınama bu değil. Sınama, mesela siz Istanbul'da oturuyorsanız, Artvin'deki veya Van'taki hedef kitlenize mensup olduğuna inandığınız gerçek Internet kullanıcılarını bir 14.4'lük modem bağlantısı olan, 66 MHz'lük bir CPU'su ve 1 MB bellekli, 640x480 çözünürlükte ekran kartı bulunan ve 15 inç ekrana sahip bir bilgisayarın karşısına geçirip, yüzlerini incelemektir.Ve bunu yaparsanız, sizden daha iyi Web Sihirbazlığı yapan olmayacağına inanabilirsiniz.ŞUNU NASIL YAPARIM?Ne kadar usta olursa olsun, bu soruyu, hiç olmazsa arada bir sormayan Web tasarımcı düşünmek imkansız gibidir. İşin kötü tarafı, insan kendisini Web tasarımcısı saymaya başladıktan sonra, bu tür soruları da açıkça soramaz! İşte, sormaya çekindiğiniz veya çekinmediğiniz HTML soruları ve yanıtları. Ama hemen eklemek gerekir ki, yapılacak herhangi bir işin, çözülecek herhangi bir tasarım güçlüğünün, HTML 4 gibi, CSS, CSS-P, Javascript ve VBScript ile donanmış bir dilde, sadece bir doğru yanıtı olamaz. Buradaki çözümleri, bulanabilecek çözümlerden sadece biri olarak değerlendirmek gerekir.Büyük Birinci Harf (Gömme):Gazete ve dergi yazılarında bazı paragrafların ilk harfi, diğer harflerden çok büyük ve aşağı doğru iki, hatta üç satır yüksekliğinde olur. Gazetecilik dilinde buna Gömme Harf denir. Yazılı basının favori masaüstü yayıncılık programı QuarkExpress'te bile otomatik yapmak için programın beşinci sürümünü beklediğimize göre, HTML'de birinci harfin büyük olmasını otomatik olarak sağlamak için biraz daha bekleyeceğiz demektir. Gerçi CSS-1 kuralları arasında bunu sağlayan bir eleman var (first-letter), fakat kuralların zorunlu değil tavsiye bölümünde yer aldığı için ne Nestcape 4.5 ve öncesi, ne de IE 4.01 ve öncesinde uygulanmış değil. Bütün umudumuz, IE 5 ile CSS-1 ve CSS-P'nin bütün kurallarının uygulanabilir hale gelmesi. Eğer bu mümkün olursa, bu imkandan yararlanmak için, örneğin, şöyle bir stil tanımlamanız yeterli olacak:P.first-letter {font-size: 200%;}Tabiî, ilk harfinizi yüzde 200 yerine isterseniz yüzde 400 de büyütebilirsiniz. O zamana kadar şu seçeneklerle idare edin:1. Grafik olarak harf:üyük ilk harf elde etmenin çaresi.2. Tek kutulu tablo:
Büyük harf elde etmenin çaresi..3. Stil vererek:HTML belgesinde HEAD bölümünde şu stili oluşturun:
.gomme { width: 1em; height: 1em; float: left; text-align: center; font-size: 20pt; color:red; font-style:italic }
Sonra, birinci harfini büyük yapmak istediğiniz paragrafa şöyle başlayın:
Bharf büyük, kırmızı ve yüksekliği üç satır olacak. Bu paragrafı biraz daha uzatalım.. Biraz daha.. Biraz daha.. Biraz daha.. Biraz daha.. Biraz daha.. Biraz daha.. Biraz daha.. Biraz daha.. Biraz daha.. Biraz daha.. Biraz daha.. Biraz daha.. Eh bu kadar yeter.Dikey ÇizgiHTML'de yatay çizgi (
) var da, dikey çizgi yok. Tasarımınız, sayfada dikey çizgi gerektiriyorsa, tablodan yararlanabilirsiniz. Grafik programınızda eni ve boyu 1 piksel ve rengi siyah bir kutu resmi yapın. Bunu 1psiyah.gif adıyla kaydedin. Dikey çizgiye ihtiyacınız olan yerde bir tablo oluşturun; metinlerinizin bir kısmı ve tablonun içine girebilir; girmeyebilir. İşte bir örnek:
Burada metin var.
Burada metin var Çizginin yüksekliği ne kadar olacaksa, çizginin bulunduğu kutudaki IMG etiketinin yüksekliğini o kadar arttırın.Beyaz BoşluklarBazen, iki satır arasında tam istediğiniz ölçüde boşluk elde etmek zor olur.
çok,ise az boşluk bırakır. Kolayı var. Eni 1, boyu 2 piksel, saydam bir GIF dosyası yapın ve 1psaydam.gif adıyla kaydedin. Boşluğa ihtiyacınız olan iki satırın arasına şu etiketi koyun:Burada 20 ve 49 yerine, kendi ihtiyacınız olan boşluğun değerini yazacaksınız.Bir satırı arzu ettiğiniz kadar içerden başlatmak amacıyla da aynı teknikten biraz farklı ifadeyle yararlanabilirsiniz:Bu satır 25 piksel içerden başlayacak.İki sütun yazı arasına arzu ettiğiniz kadar boşluk vermek için, sütunları bir tablonun hücrelerine alın, ortalarındaki hücrenin boyunu ve enini istediğiniz boşluk ölçüsüne getirin.Sadece Netscape'de bulunan etiketi de beyaz boşluk sağlayabilir:IE, bu kodu görünce, hiç bir şey yapmaz.Arkaplanda YazıBazen güzel bir düzenleme ile biş başlığın arkasında, aynı veya farklı kelimelerin tekrarlanarak zemin oluşturduğunu görürsünüz. Üstelik de sayfa yıldırım hızıyla gelmiştir; yani arkaplandaki yazıların, grafik olmadığı anlaşılıyor. Bunu katman teknolojisi ile başarabilirsiniz:ÖNDEKİ METİNArkadaki metin Arkadaki metin Arkadaki metin Arkadaki metinArkadaki metin Arkadaki metin Arkadaki metin Arkadaki metinArkadaki metin Arkadaki metin Arkadaki metin Arkadaki metinİlk sayfa bir kaç saniye görünsün, kaybolsun!..Buna "Splash page" (suya dalma sayfası) da deniyor; bir kaç saniye görünüyor, sitenizin niteliği hakkında fikir veriyor, ilgi çekiyor, sonra yerini ana sayfaya bırakıyor.:Bu tekniği iki sayfasının arasında reklam amacıyla uygulayanlar bile var!Stil düzenlemesi yapmadan harf belirlemek içinSayfanızda, sadece bir yerde normal stil komutlarının dışına çıkarak, bir metnin belirli bir harfle görüntülenmesini istiyorsanız, hemen önünde şu etiketi kullanabilirsiniz:Bu yazı Courier harfle görüntülenecekTürkçenizi kaybetmemek içinBilgisiyarla uğraşalı beri, kendi dilimiz sık sık kazaya uğruyor, ama sayfalarımızın dilini korumak elimizde. Her sayfanın başına şu META etiketi koyabilirsiniz:Resimleri Bloklayın!Sayfanızdaki grafiklerin hepsinin sol tarafı aynı hizaya gelsin istiyorsanız, sadece yazı için kullanılır sandığınız
etiketinden grafiklerde de yararlanabilirsiniz:
Bütün grafikleriniz soldan yaklaşık 40 piksel hizalanacaktır! Resimleriniz sayganın sağına hizalansın istiyorsanız, buna bir de ALIGN ekleyebilirsiniz:
etiketi kendi içinde kullanırsa, içindeki unsuru 80 piksel sağa iter.
Tabiî, en istikrarlı hizalama aracı olarak daima tablodan yararlanabilirsiniz.Noktasız ListeHTML'in noktasız listesinin satır araları çok açık; noktalıların araları iyi, fakat siz nokta istemiyorsunuz. O halde HTML'i biraz kandırabilirsiniz:
Madde 1Madde 2Madde 2Madde 4İşte size aralığı dar, ama noktasız liste!HTML'e ENTER ve TAB girdilerini kabul ettirmek mümkün mü?Hayır, değil! Düz yazı programınızda HTML belgede bir metne ne kadar ENTER ve TAB girseniz de, Browser bildiğini okur ve bunları yok eder. Bir şartla! İstediğiniz gibi biçimlemek istediğiniz bölümün başına , sonuna etiketlerini koyarsanız, bütün ENTER ve TAB'leriniz korunacaktır.Form unsurlarını hizalamak istiyorsanızFormlarda, isim yazılacak INPUT kutusuyla adres yazılacak INPUT kutusunu hizalayabiliyor musunuz? Elbette, hayır! Bir çaresi bütün unsurları bir tablonun hücrelerine serpiştirmektir. Fakat bir başka çaresi daha var. etiketinden yararlanmak."İsim" kelimesi dört harfli, "Adres" kelimesi beş harfli.. Demek ki, İsim'in INPUT kutusunun Adres'in INPUT kutusu ile hizalanması için İsim'den sonra bir boşluk olması gerekiyor. etiketinden önce etiketini kullanırsanız, bütün form unsurlarınıza bu hesabı yaparak, INPUT kutularını kolayca hizalayabilirsiniz.E-Mektup bağlantısıSitenizdeki bir bağlantıyı tıklayan ziyaretçinin elektronik posta programı açılsın; boş bir mektup kağıdı görüntülensin; alıcı hanesine sizin (veya arzu ettiğiniz bir başka kişinin ve kurumun) adresi yazılsın istiyorsunuz. Kolay! Bir mailto: bağlantısı bu işi halleder. Bu mektup birden çok kişiye gitsin istiyorsanız, o zaman kod şöyle olacak:Bu mektubu bir üçüncü kişi de alsın istiyorsanız, bir ekleme yeter:Peki, sitenizde kime elektronik mektup göndereceği kararını neden ziyaretçiye bırakmıyorsunuz? Bir "açılan liste" kutusuyla bu işi halledebilirsiniz:Birinci Kişiİkinci KişiÜçüncü KişiONCLICK="location.href = "mailto:" + document.mektupformu.liste.options[document.mektupformu.liste.selectedIndex].value" NAME="Mektup Gönder">Bu kodu yazarken, Javascript bölümünde tırnak işaret tırnak içinde olmasın diye """ kodunun ktullanıldığına dikkat edin!Geri DüğmesiBrowser'ın Geri düğmesi özellikle Çerçeveli sayfalarda nereye geri döneceğini bilmeyebilir. Bu bakımdan sayfalarınızda arzu ettiniz yere kendi Geri düğmenizi koyabilirsiniz:Aynı kodu grafik yerine bir veya daha fazla kelimeye de kazandırabilirsiniz:Geri dönmek için burayı tıklayın Aynı kodu, HTML-vari düğmelere de uygulayabilirsiniz:Pencereyi kapatınBir ziyaretçinin Browser penceresini kapatmak için sayısız seçeneği var. Ama yine de kolay bir yere Kapat düğmesi koyabilirsiniz:Bu pencereyi kapatmak için burayı tıklayınızİsterseniz, yazı yerine bir grafik de kullanabilirsiniz.Çerçeveye esir düşünceBir başka sitede sizin sayfanıza bağlantı veriliyor; fakat uyanık site sahibi sizin sayfanızı kendi çerçevelerinden birinde görüntülettiriyor. Oysa siz bu tür bağlantılarda sayfanız Browser'ın tüm penceresini kaplasın istiyorsunuz. Sayfalarınızın başına şu minik kodu yazın; hiç kimse sayfalarınızı kendi çerçevesine hapsedemez:if(top.location != document.location.href) { top.location = document.location.href;}Veya şu kodu da yazabilirsiniz: if (window != top )top.location.href = window.location.href;// -->Bağlantılarınıza Tool Tip ekleyinTool Tip, Windows'da Mouse işaretçisini araç menüsünde bir simgesinin üzerine götürdüğünüzde açılan ve içinde bu aracın ne işe yaradığını belirten küçük bir sarı kutu içindeki yazılara verilen ad. Ziyaretçi Mouse işaretçisini bağlantılarınızın üzerine götürdüğünde böyle bir Tool Tip görüntülensin isterseniz, bağlantı kodunu şöyle yazabilirsiniz:Sayfanızı Sık Kullanılanlar'a eklettirin:IE 4.0 ve üstünü kullanan ziyaretçilere, isterlerse, bir kelimeyi tıklattırarak, sayfanızı Windows Sık Kullanılanlar klasörüne eklettirebilirsiniz. Buradaki kod, kendi Browser belirleme fonksiyonunu da içeriyor; dolayısıyla başka tür ve sürüm Browser'ı olan ziyaretçiler açısında arzu etmedikleri bir durum olmayacaktır:if ((navigator.appVersion.indexOf("MSIE") > 0) && (parseInt(navigator.appVersion) >= 4)) { document.write("Add this page to your favorites");}//-->Geriye doğru sayımDiyelim ki, özel sitenizde doğum gününüze kaç gün kaldığını belirterek, ziyaretçilerinize, size alacakları armağan için hazırlık fırsatı vermek istiyorsunuz. Ya da tuttuğunuz takımın büyük maçına! Ya da 21'nci yüzyıla! (Bu Script'i kullanmak isterseniz, başındaki kredi satırını atmamak şartıyla serbestçe kullanabilirsiniz):/*Script by Jari Aarniala (foo@mbnet.fi)*/today = new Date() hedef = new Date("December 31, 1999") // buraya geriye sayılacak // tarihi yazınhedef.setYear = today.getYear; kalangun = (hedef.getTime() - today.getTime()) / (1000*60*60*24);kalangun = Math.round(daysLeft);document.write("Dogum günüme sadece"+ kalangun +" gün kaldı");//-->GeoCities'in yüzen grafiğini kıskanıyor musunuz?GeoCities bütün sayfalarında yarı-saydam bir loga grafiği, sayfası yukarı da indirseniz, aşağı da indirseniz, sağ alt köşede kıpırdamadan durur. Bu etkiyi elde etmek isterseniz, sadece IE 4 ve sonrasında işlemek üzere, işte kodu: Fakat aynı etkiyi Netscape de de elde etmek için, bir Javascript'e ihtiyaç var. Önce, DIV ile bir katman oluşturalım:Kullanacağınız grafiğin dosya adı ne ise, burada grafik kaynak (scr=) yerinde bu ismi kullanacaksınız. Bunu hallettikten sonra, DIV bölümünden sonra ve tercihan BODY etiketinin kapanmasından önce, şu kodu yazın. (Bu Script'i , telif hakkı satırını atmamak şartıyla istediğiniz gibi değiştirerek, kullanabilirsiniz.)// Watermark script by Paul Anderson, CNET Builder.com. All rights reserved.markW = 90; //resmin genişliğimarkH = 90; //resmin yüksekliğimarkX = 100; //sol kenardan uzaklıkmarkY = 100; //üst kenardan uzaklıkmarkRefresh = 20; //yenilenme süresi milisaniye olarakif (!document.all) document.all = document;if (!document.all.waterMark.style) document.all.waterMark.style = document.all.waterMark;wMark = document.all.waterMark.style;wMark.width = markW;wMark.height = markH;navDOM = window.innerHeight; // Nav DOM flagfunction setVals() {barW = 0; // scrollbar compensation for PC NavbarH = 0;if (navDOM) {if (document.height > innerHeight) barW = 20;if (document.width > innerWidth) barH = 20;} else {innerWidth = document.body.clientWidth;innerHeight = document.body.clientHeight;}posX = ((innerWidth - markW)-barW) * (markX/100);posY = ((innerHeight - markH)-barH) * (markY/100);}function wRefresh() {wMark.left = posX + (navDOM?pageXOffset:document.body.scrollLeft);wMark.top = posY + (navDOM?pageYOffset:document.body.scrollTop);}function markMe() {setVals();window.onresize=setVals;markID = setInterval ("wRefresh()",markRefresh);}window.onload=markMe;//-->Yüzen logo olarak kullanacağınız resmin eni-boyu kaç piksel ise, markW ve markX değişkenlerinin karşısına bu değerleri yazmalısınız. Ayrıca logonuzun ekranın neresinde sabit durmasını istiyorsanız, o noktanın koordinatlarını (yüzde olarak) markX ve markY değişkenlerinin karşısına yazablirsiniz. Bu örnekte logo, erkanın sağ alt köşesinde duracak şekilde ayarlanmış bulunuyor. Bu değerler 0,0 olursa, logo ekranın sol üst köşesinde 50,50 olursa ortasında, 100,0 olursa sağ üst köşesinde, 0,100 olursa sol alt köşesinde durur. Yenilenme oranı olan milisaniye ise, Browser'ın logonun yerini kaç saniyede bir güncelleştirmesini istediğinizi gösterir. Bu süre ne kadar düşük olursa, logo o kadar yerinde sabit kalır.CSS EğlenceleriCSS, kullanışlığı olduğu kadar eğlenceli de olabilir. DHTML-uyumlu veya CSS kodlarının tümünü anlayabilen bir Browser ile Mouse işaretçisinin görünümünü değiştirerek, ziyaretçilerinizi şaşırtabilirsiniz. Önce HTML belgesinin HEAD bölümüne şu stil kodlarını yazın:.yesil{color :green}.kahverengi{color :brown}A.yardim {cursor:help}A.mesgul {cursor:wait}A.tasi {cursor:move}A.oto {cursor:auto}A:link {text-decoration:none;}{ font-family: Verdana, Arial }A:visited {text-decoration:none;}A:hover {color: white; background:"#008080"; decoration=none}-->Sonra, BODY bölümünde bir sınama yapalım:Yeşil BağlantıKahverengi Bağlantı Bir Yeşil Daha Ama bu Bağlantı DeğilMeşgul.. BekleyinizYardımTaşıOtomatikBu kodun işleyebilmesi için ziyaretçinizin IE 4.0 sonrası bir Browser kullanıyor olması gerekir. NS kullanan ziyaretçiler etkiyi göremezler, o kadar.Maviden gına geldi iseBrowserlar'a bağlantıları mavi harfle ve mavi çizgili çizgili yorumlattıran varsayılan stilden bıktı iseniz, aramıza hoşgeldiniz! Ama üzülmeyin. Mavilikten kurtulmanın bir yolu HEAD etiketi içinde şu stili oluşturmaktır:a:link { text-decoration: none; color: #FF0000 }A:visited {text-decoration:none; color:aqua}a:hover { text-decoration: underline; color: #00FF00 }-->Tabiî, renkleri zevkinize göre verebilirsiniz. Dikkat gerektiren tek nokta, ziyaret edilmiş bağlantı ile edilmemiş bağlantının renklerinin aynı olması, ziyaretçiyi şaşırtır.Yazıcıya göre sayfa kesmeÖzene bezene hazırladığınız sayfaların ziyaretçi tarafından yazıcıda bastırılması halinde ne şekil alacağını da hesaba katıyor musunuz? Bazı sayfaların, özellikle grafik bulunan sayfaların yazıcıdan nasıl çıkacağını önceden planlamak tasarımcının görevidir. Fakat yazıcılar arasındaki farklar ve ziyaretçinin varsayılan harfinin büyüklüğü veya küçüklüğü gibi faktörler yüzünden evdeki hesap bazen çarşıyı tutmayabilir; en güzel grafiğiniz kağıda ortasından ikiye ayrılarak dökülebilir. Hiç değilse buna engel olabilir; sayfanızın dağıt üzerinde bir bütün oluşturmasını istediğiniz bölümünü belirleyebilirsiniz. HTML'in HEAD bölümüne şu stili girin:.yenisayfa (pagebreak-after: always)Sonra, sayfanızı bölmek ve kağıt üzerinde yeni bir sayfa başlasın istediğiniz yerde, şu kodu yazın:Sayfada tarihSayfalarınızda, günün adını, ay ve yılı, isterseniz, geri planında bir de güne belirten grafikle gösterebilirsiniz. Biraz uzunca görünmekle birlikte, herşeyi bir tablo içinde yapabilen bu kodu, istediğiniz sayfaya ithal ederek, bir kere yazdıktan sonra yeniden kullanmanız mümkün. (Bu kodu, yazarının adını belirten satıra yer vermek şartıyla, istediğiniz gibi kullanabilir ve değiştirebilirsiniz)// DateCal JavaScript v1.00 Copyright (c) 1998 Carolyn B. Allardvar bugun = new Date()var gun = bugun.getDay()var tablovar ay = bugun.getMonth()var tarih = bugun.getDate()var yil = bugun.getYear()var ay_uzun = "January"var yil_uzun = 1900var uzuntarih = "bugun"if (gun == 0) {resim = "pazar.jpg"}if (gun == 1) {resim = "pazartesi.jpg"}if (gun == 2) {resim = "sali.jpg"}if (gun == 3) {resim = "carsamba.jpg"}if (gun == 4) {resim = "persembe.jpg"}if (gun == 5) {resim = "cuma.jpg"}if (gun == 6) {resim = "cumartesi.jpg"}if (ay == 0) {ay_uzun = "Ocak"}if (ay == 1) {ay_uzun = "Şubat"}if (ay == 2) {ay_uzun = "Mart"}if (ay == 3) {ay_uzun = "Nisan"}if (ay == 4) {ay_uzun = "Mayıs"}if (ay == 5) {ay_uzun = "Haziran"}if (ay == 6) {ay_uzun = "Temmuz"}if (ay == 7) {ay_uzun = "Ağustos"}if (ay == 8) {ay_uzun = "Eylül"}if (ay == 9) {ay_uzun = "Ekim"}if (ay == 10) {ay_uzun = "Kasım"}if (ay == 11) {ay_uzun = "Aralık"}yil_uzun = 1900 + yiluzuntarih = ay_uzun + " " + tarih + ", " + yil_uzuntablo = 'tablo += 'CELLPADDING="0" HEIGHT="34">';tablo += ' ';tablo += ' tablo += resim;tablo += '">';tablo += uzuntarih;tablo += ' ';tablo += ' ';tablo += ''document.write(tablo)// gizlemeye son-->Javascript ile açılan menüSayfanızın bir yerinde, Navigation çubuklarında gösterilemeyecek kadar çok belgeye veya sayfaya ulaşım imkanı vermek isteyebilirsiniz. Sözgelimi bir kitabın farklı bölümlerine ulaşma kolaylığı sağlamak isteyebilirsiniz. Ya da kendi sitenizin çeşitli sayfalarına bir menü ile ulaşılması daha az yer kaplaması bakımından uygun olabilir. Bunu FORM tekniği ile sağlamak mümkün. Önce HEAD bölümünde kısa bir Javascript yazalım:function goster(form) {var index=form.hedef.selectedIndexwindow.location=(form.hedef.options[index].value);}// -->Sonra, bu Script'in yardımıyla kullanacağımız açılan menü bölümü için bir FORM oluşturalım:Bir sayfa seçinBirinci Sayfaİkinci SayfaÜçüncü SayfaDördüncü SayfaTabiî menüde gösterilecek kelimeler ve bunların karşılığı olan HTML sayfalarının adını kendi sitenize uygun şekilde düzeltmeniz gerekiyor.Tek pencere yetmiyorsaDiyelim ki sayfalarınızın içeriği öylesine arttı ki, artık size bir Browser penceresi yetmiyor ve ziyaretçi bir bağlantıyı tıkladığında bilgisayar ekranında ikinci bir pencere açılsın ve talep edilen içerik yeni pencerede gösterilsin istiyorsunuz. Yani size bir pop-up pencere gerekiyor. İkinci ve 640x480 piksellik pencere için kodumuz şöyle olabilir.function yeniPencere() {popupWin = window.open('http://www.benimsitem.com/hedefsayfa.htm', 'remote', 'width=640,height=480')}// -->Bu penceresi ziyaretçinin ekranında belirli bir konumda da açtırabiliriz. Bunun için popupWin satırı şöyle olacak:popupWin=window.open('http://www.psacake.com','remote','width=640,height=480,top=100,left=100')Sonra, hangi bağlantı yeni bir pencere açtırsın istiyorsanız, o bağlantıyı şöyle yazabilirsiniz:İsterseniz, bu kolaylıktan düz bağlantı metninde de yararlanabilirsiniz:Burayı tıklayınızAçtıracağınız pencerenin menü ve araç çubuğu olup olmaması, kaydırma çubukları bulunup bulunmaması da bu arada belirtilebilir.Kaynağı kolayca görüntületmekÖzellikle Internet, Web teknikleri, HTML ile ilgili bir siteniz varsa ve ziyaretçileriniz o anda izledikleri sayfanın kaynağını görmek için zahmet edip, Mouse'un sağ düğmesini tıklayıp, menü açarak kaynağı görüntülemekle uğraşmasınlar istiyorsanız, sayfanızın altına mesela bir "Kaynağı Görüntüle" satırı koyun, bu satırı şöyle bağlantılayın:document.writeln("View Source");

FTP Nedir?

FTP
FTP Nedir?
FTP (File Transfer Protocol)
Internete bağlı bir bilgisayardan diğerine (her iki yönde de) dosya aktarımı yapmak için geliştirilen bir internet protokolü ve bu işi yapan uygulama programlarına verilen genel addır. İlk geliştirilen internet protokollerinden biridir. FTP protokolü ile bir başka bilgisayardan bir başka bilgisayara dosya aktarımı yapılırken, o bilgisayar ile etkileşimli-aynı anda (on-line) bağlantı kurulur ve protokol ile sağlanan bir dizi komutlar yardımıyla iki bilgisayar arasında dosya alma/gönderme işlemleri yapılır.
FTP yapmak için neler gerekir?
FTP yapmak, bir bilgisayara FTP protokolü ile bağlanmak eylemini anlatan yarı Türkçe yarı İngilizce bir deyimdir. FTP yapmak için,
bağlanacağımız bilgisayarın internet adresi (nümerik ya da sembolik formatta)
bağlanacağımız bilgisayarda dosyalarına ulaşmak istediğimiz hesapla ilgili kullanıcı numarası ve varsa şifresi
Internet erişimi olan, üzerinde FTP yazılımı bulunan bir bilgisayar
bağlanacağımız bilgisayarda, FTP protokol komutlarını yorumlayacak çalışır durumda bir FTP Servis programı (FTP Sitesi)
gereklidir.

FTP ile nasıl bağlantı sağlanır?

Bağlantı, tanıtıcı adı (host name) veya internet numarası kullanılarak iki biçimde yapılabilmektedir. Ancak uygulamada daha sık olarak tanıtıcı adı kullanılmaktadır. Bağlantının yapılabilmesi için; ftp bağlanılmak istenen tanıtıcı ad formatı kullanılmaktadır. Bir makinayla olan bağlantıyı kapatıp diğer bir makinaya bağlanmak için önce close ile bağlantı kesilip, open makina ismi ile yeni bağlantı kurulur. FTP ile bağlantı kurulduktan sonra temel Unix komutları kullanılarak işl emler yapılmaktadır.
FTP nasıl yapılır? Temel FTP komutları nelerdir?
Genel kullanım : ftp şeklindedir. Bundan sonra, ilgili bilgisayara bağlanıldığında, kullanıcı numarası ve parola (password) sorulur. Daha sonra da, o kullanıcının makinasına baglanılmış olur. Bu şekilde, etkileşimli bir ortamda, (genellikle ftp> ile gösterilir) bazı komutlar verilerek iki makina arasında dosya işlemleri, ayrıca bağlanılan makinada bazı temel dosya/disk işlemleri (dizin açma, dosya silme vb) yapılabilir. Bazı temel FTP komutları ve kısa tanımları aşağıda listelenmiştir.:




Standart FTP komutları :
cd : Dizin değiştirme (cd ) (cd .. : bulunulan dizinden bir öndekine geçme)
pwd : Bulunulan dizinin ismini verir
dir : Bulunulan dizindeki dosyaları listeleme
ls : Bulunulan dizindeki dosyaları kisa olarak listeleme (Örnek kullanımlar : ls -lr : ayrıntılı, tersten alfabetik listeleme; ls -lr more : sayfa sayfa listeleme (dizin içinde cok fazla sayıda dosya varsa bu kullanım oldukça yararlıdır))
get : Dosya alma (get (). ( seçimliktir, kullanılmayabilir. Bu durumda dosya_adı aynen kullanılacaktır.
put : Dosya gönderme (put ()
mget : Birden fazla dosya almak istendiğinde kullanılır. Örnek kullanımlar: mget *.zip, mget a*.* vb..
mput : Birden fazla dosya göndermek istendiğinde kullanılır.
ascii : Dosya aktarımlarında aktarım modu olarak ASCII kullanılacağını belirtme.
binary: Dosya aktarımlarında aktarım modu olarak BINARY kullanılacağını belirtme. Arşiv dosyaları (zip, arj, z, zoo, hqx vb), calıştırılabilir programlar (.exe, .com), resim formatlı programlar (gif, jpeg vb) FTP ile alınmadan/ya da gönderilmeden önce mutlaka bu komut verilmelidir.
delete: FTP yapılan yerde bir dosyayı silme (delete , eğer yetkiniz varsa kullanabileceğiniz bir komuttur) mkdir : FTP yapilan yerde yeni bir dizin oluşturma (mkdir , eğer yetkiniz varsa kullanabileceğiniz bir komuttur)
rmdir : FTP yapılan yerde boş bir dizini silme (rmdir , eğer yetkiniz varsa kullanabileceğiniz bir komuttur) help : Kullanılabilecek komutlar ile ilgili bir yardım ekranı çıkarır.
lcd : FTP ortamından çıkmadan, kendi makinanızda dizin değiştirmenizi olanaklı kılar.
close : FTP ortamından çıkmadan, sadece ilgili bağlantıyı kapatmak için kullanılır.
quit : FTP ortamından çıkmak ve bağlantıyı kapatmak için kullanılır (bye komutu da aynı işi görür).
Bazı FTP merkezleri, tüm bir dizini sıkıştırarak gönderme kabiliyetine sahiptir. Söz gelimi, linux isimli bir alt dizini, GET linux linux.zip şeklinde sıkıştırılmış olarak alabiliriz. Ancak, bu özellik her FTP merkezinde olmayabilir.


Kütük transferi


Internet aracılığı ile kütük transferinin yapılması için get,mget, put ve mput komutları kullanılmaktadır. Ancak transfer edilecek kütük tipine bağlı olarak, transfer tipinin seçilmesi gerekmektedir. Internette iki tür transfer tipi vardır.

Ascii: Bilgisayarlar arasında text kütüklerinin transferi için uygundur.

Binary: Text içeren veya içermeyen imaj ya da program kütüklerinin transferi için kullanılır. Uzantısı z, Z, exe, zip, tar, com, sys, gz veya ps olan kütükler binary tipinde alınmalıdır. Burada z, Z, zip, tar, gz uzantıları o kütüğü n sıkıştırılmış olduğunu ps ise o dosyanın Postcript yapıda olduğunu gösterir. Uygun programlar ile bu kütüklerin transfer işleminden sonra açılmaları gerekmektedir.

Bu komutların kullanımı için iki örnek verilmiştir.
ftp> ascii
200 Type set to A. Ascii Kütük Transferi
ftp> get news.txt
200 PORT command successful.
150 Opening ASCII mode data connection for news.txt (42390 bytes).
226 Transfer complete.
42553 bytes received in 6.9 seconds (6 Kbytes/s).

ftp> binary
200 Type set to I. Binary Kütük Transferi
ftp> get news.zip
200 PORT command successful.
150 Opening BINARY mode data connection for news.txt (42390 bytes).
226 Transfer complete.
42390 bytes received in 7.2 seconds (5.8 Kbytes/s).
Kütük transferi yapılırken, "wildcard" denilen joker karakterlerin de kullanımı
mümkündür. Örneğin;
ftp>mget news*
yazılacak olursa içinde news kelimesinin bulunduğu tüm kütüklerin kopyalanmak istendiği anlaşılacak ve tek tek bu kütüklerin istenip istenmediği sorgulanarak kopyalama yapılacaktır. Eğer bu kütüklerin sorgulama yapılmadan taşınması isteniyorsa "prompt" ko mutu verilmelidir. Tekrar bu komut verilene kadar yapılacak tüm kopyalama işlemleri sorgusuz gerçekleştirilecektir. Veri transferi sırasında sıkıştırılmış kütüklerin kullanımı hem maddi hem de zaman açışından dikkate değer kazançların doğmasına yol açmaktadır. Ancak sıkıştırılmış kütüklerin hangi anlama geldiği daha doğrusu hangi programla eski haline getireleceğinin bilinmesi gereklidir. Aşağıda uzantılarına bağlı olarak sıkıştırılmış kütüklerin açılmalarına yönelik bilgiler verilmiştir.










İstenen FTP Tabanını Bulma (archie)

İstenen bir dosyayı (veya programı) ve ait olduğu FTP tabanını bulmanın en kolay ve çabuk yolu archie komutunu kullanmaktır. McGill üniversitesinde geliştirilmiş olup, kamuya açık ftp kullanımına izin veren arşivlerdeki kütük isimlerini bir veri tabanında tutan ve bunun sorgulamasını yapan bir sistemdir. Veri tabanı periyodik olarak güncellenmekte ve McGill de bulunan ana server yardımıyla diğer serverlerin uyumlu olması sağlanmaktadır. Archie komutu ile 1000'in üzerindeki anonymous FTP kaynağı taranarak, 100 gigabytes civarındaki bilgi kontrol edilmektedir. Bu komut ile kullanıcının verdiği isme uyan dosyaların bulunduğu kaynaklar seçilip, sıralı biçimde özetlenir. İstenirse yapılan arama işlemi bir text dosyasında saklanabilir. Bilgilerin bulunduğu list eler ayda bir yenilenerek güncelliği sağlanmaktadır. Kullanımı için, archie -paremetreler anahtar kelime yapısı kullanılmaktadır. Burada kullanılabilecek parametrelerden bazıları aşağıda kısaca listelenmişitir. Burada ki parametreler kullanılan bilgisayarın türüne ve archie programının özelliklerine bağlı olarak farklılıklar göstermektedir. Windows ortamında çalışan programlar kullanıldığı zaman bu parametreler ikonlar halinde yer almaktadır.

o: Sorgulama sonuçlarının saklanacağı dosya adı (tüm yazılımlarda desteklenmez)
l: Sorgulama sonuçlarının her bir satıra bir sonuç gelecek biçimde özetlenmesini sağlar.
s: Taramada büyük/küçük harf ayırımı yapmaz.
c: Taramada büyük/küçük harf ayırımı yapar.
e: Verilen anahtar kelime ile tamamen uyan isimleri tarar. Büyük/küçük harf ayırımı yapar.

Örnek: Aranmak istenilen dosyanın adı vine.tar.Z olsun,
$ archie vine.tar.Z
Host athene.uni-paderborn.de
Location: /local/X11/more_contrib
FILE -rw-r--r-- 18854 Nov 15 1990 vine.tar.Z
Host emx.utexas.edu
Location: /lpub/mnt/source/games
FILE -rw-r--r-- 12019 May 7 1988 vine.tar.Z
Host export.lcs.mit.edu
Location: /contrib
FILE -rw-r--r-- 15548 Oct 90 00:29 vine.tar.Z
biçiminde arama sonuçları listelenir.

















FTP Dosyalarının İndirilmesi


Internetin en popüler kullanımlarından biri de dosya indirmek yani Internetteki bir dosyayı kendi bilgisayarınıza aktarmaktır. Bu dosyalar birçok değişik tipte olabilir. Kendi bilgisayarınızda çalıştırabileceğiniz programlar; grafik dosyaları, dinleyebileceğiniz sese ve müzik dosyaları ya da okuyabileceğiniz metin dosyaları. Her gün Internetten onbinlerce dosya indirilir. Bunların çoğu kısaca FTP ile kendi bilgisayarınızdan Internet üzerindeki başka bilgisayara da dosya gönderebilirsiniz.

FTP diğer çoğu Internet kaynağı gibi client/server modeliyle çalışır. Internetteki bir FTP serverına bağlanmak için FTP client (kullanıcı) yazılımını çalıştırmanız gerekir. FTP serverında, FTP daemon (cin) denilen bir yazılım dosya indirmenizi ve göndermenizi sağlar.


Bir FTP sitesine girmek ve dosya indirmek için daemonun giriş izni vermesini sağlamak için bir hesap numarası (ya da kullnıcı adı) ve şifre girilmesi gerekir. Bazı siteler herkesin siteye girip, dosya indirmesine izin verirler fakat hesap numarası (ya da kullanıcı adı) ve şifre yine de girilmelidir. Genelde bu sitelere girmek için kullanıcı aıd olarak “anonymous” (isimsiz) şifre olarak da e-mail adresinizi kullanırsınız. Bu yüzden böyle sitelere anonymous FTP siteleri denir. Bazı FTP siteleri özeldir ve sadece doğru hesap
numarası ve firesi olan belirli kişilere giriş izni verirler.

FTP kullanmak oldukça basittir. Bir FTP sitesine yüklendiğinzde, mevcut dosyalar arasında directoryleri değiştirerek ilerleyebilir ve her directorydeki mevcut dosyayı görebilirsiniz. İndirmek istediğiniz bir dosya ile karşılaştığında, kullanıcı yazılım ile FTP serverına komut vererek bu dosyayı göndermesini sağlayabilirsiniz.

World Wide Web’in popüleritesi arttıkça yazılım indirmek daha da kolaylaşmaktadır. Web browser kullanılarak dosyalara olan bağlantılara tıklanır, fakat perde arkasından dosyaları indiren yine FTP ’dir. FTP Web’den ve Interneten dosya indirmenin hala en çok
kullanılan yoludur. Web’in HTTP protokolü de dosya indirmek için kullanılabilir. Fakat FTP kadar yeterli olmadığından sıkça kullanılmaz.

Internetten dosya indirmede ortaya çıkan bir problem, bazı dosyaların büyük olması ve bu dosyaların indirilmesinin çok uzun zaman almasıdır. 28.800 bps hızda bile dosya indirmek çok yavaş olabilir. Dosya transferlerini hızlandırmak ve FTP üzerinde yer tasarrufu yapmak için kullanılan yöntem sıkıştırmadır. (özel yazılımlar kullanarak dosyanın boyutlarını küçülmek). Dosya sıkıştırmak için birçok değişik metod kullanılabilir. Dosya tipine bağlı olarak, dosyalar % 10 ila 50 arasında bir oranda sıkıştırabilir. Dosyaları indirdikten sonra sıkıştırma yazılımı kullanarak, indirdiğiniz sıkıştırlmış dosyayı yeniden eski haline getirmeniz gerekir. Böylece o dosyayı kullanmak mümkün olur.









ANONYMOUS FTP nedir?
FTP işlemi sırasında, güvenlik olarak, bağlanacağımız makinadaki kullanıcı numarası (User Name) ve parola (Password) bilgilerini bilmemiz gerekir (Program, bunları bize sorar). Bağlanılan makina, kişiye özel ve parolasını sadece bizim bildiğimiz bir makina olabileceği gibi, herkese açık bir arşiv merkezi de olabilir. Böyle merkezlere herkesin kolayca erişip dosya almasını sağlamak için tek tip bir kullanıcı numarası tanımlanmıştır: anonymous ya da ftp
Bu merkezlere ftp yapıldığında kullanıcı ismi olarak anonymous (ya da ftp) girildiğinde, bizden parola olarak KENDİ E-POSTA ADRESİMİZİ girmemiz istenir. Parola yazılırken GÖRULMEZ. Bu sizi sakın şaşırtmasın !!! Şifre olarak kesinlikle kullandığınız bilgisayarın şifresini GİRMEYİN! Örnek olarak;
ftp ftp.itu.edu.tr user ftp password gokcol@sariyer.cc.itu.edu.tr (yazarken GÖRÜNMEZ)
verilebilir. Burada, şifre olarak e-mail adresinin girilmesi genellikle istatistiksel amaçlar içindir. Web üzerinden yapılan anonymous FTP'lerde şifre girilmesine gerek kalmaz.

Aşağıda, ftp.metu.edu.tr (ODTÜ Arşivi)'ye yapılan örnek bir anonymous ftp görülmektedir. Kullanıcının yazdığı komutlar koyu renk, diğerleri açık renk verilmiştir.
---------------------------------------------------------------------------------------------------------
ftp ftp.metu.edu.tr
Connected to 144.122.1.101, port 21
220 rorqual FTP server (Version wu-2.4(4) Mon Nov 14 12:52:17 MEST 1994) ready.
USER (identify yourself to the host):ftp
>>>USER ftp
331 Guest login ok, send your complete e-mail address as password.
Password: ******
>>>PASS xxxxxx 230-##########################################################################
230-## Welcome to the Middle East Technical University Archive ## 230-##########################################################################
230-
230-Hello ftp@term4.cc.itu.edu.tr !
230-You are the 12. anonymous user.
230-Maximum number of users allowed is 100.
230-Mirrored sites are placed under the directory /pub/mirrors
230-This archive is maintained by ftpload@ftp.metu.edu.tr
230-
230- ATTENTION!
230-
230- You can reach this archive via FSP at port 21.
230-
230- We have some aliases for directory names: `quote site alias' will list them
230- Also, you can reach these directories via `cd alias-dir' command
230- independent of your current location; e.g.,
230- `cd gnu' instead of `cd /pub/2mirrors/gnu'.
230-
230-
230-
230 Guest login ok, access restrictions apply.
ftp>dir
>>>PORT 160,75,2,203,21,15
200 PORT command successful.
>>>LIST 150 Opening ASCII mode data connection for /bin/ls.
total 72 drwxrwx--- 2 276 ftp-adm 512 May 1 04:59 admdrwxr-xr-x 2 276 ftp-adm 512 Aug 23 1994 bindrwxr-xr-x 2 276 ftp-adm 512 May 5 08:20 devdrwxr-xr-x 2 276 ftp-adm 512 Nov 16 08:19 etcdrwxr-xr-x 2 276 ftp-adm 512 Aug 22 1994 libdrwxrwx--- 6 276 ftp-adm 512 Apr 11 11:40 logdrwxrwxrwx 2 root system 1024 May 5 04:52 lost+founddrwxr-sr-x 18 276 ftp-adm 512 May 11 04:56 pubdrwxr-xr-x 3 276 ftp-adm 512 Aug 22 1994 usr
226 Transfer complete.
ftp>cd pub
>>>CWD pub
250 CWD command successful.
ftp>

Web üzerinden FTP nasıl yapılır?
Son zamanlardaki genel gidiş, tüm Internet servislerine daha becerikli ve etkileşimli ortamlardan erişilmesi ve farklı servislerin etkileşimli olarak kullanılması şekilde kendini göstermektedir. Bu ortamlardan en popüleri Web (World Wide Web) 'dir. FTP de dahil olmak üzere pek çok internet servisi ve ilave pek çok özellik bu ortamlar üzerinden kullanılabilir. Dolayısıyla, FTP yapmanın bir diğer yolu da, Web üzerinden FTP yapmaktır. Bu yöntem hem kullanım açısından daha kolaydır (komutları ezberlemek /bilmek zorunda değilsiniz) hem de daha efektif sonuçlar alırsınız. Binary bir dosyayı, yanlışlıkla, standart FTP programları ile kolayca ASCII modda almanız mümkün. Bu gibi sakıncalar Web üzerinden yapılan FTP'lerde ortadan kalkmaktadır. Ayrıca, Bookmark ve cache gibi faydalı özelliklerinden dolayı da bu ortamların sağladıkları bazı kolaylıklar vardır. Çoğu Web istemcisinin sağladığı grafik ara birim özelliğini de unutmamak gerek. Böylelikle, söz gelimi standart resim formatlarında olan bir resim dosyasını aldığınız anda görüntüyü ekrana da gönderebilirsiniz. FTP yapmanın bu "farklı, kolay ve güzel" yolunu Web kısmında bulabilirsiniz.
VM/CMS üzerinden FTP yapıyorum. Anonymous FTP'lerde şifre olarak kendi e-mail adresimi veremiyorum. Problem nedir?
Problem, e-mail adreslerinde görülen "@" karakterinin default (varsayılmış) olarak VM sistemlerinde satır sonu (line end) karakteri olarak tanımlanmasindan kaynaklanıyor. FTP yapmadan once, "TERM LINEND OFF" komutunu verirseniz problem ortadan kalkacaktir. Bu komutu PROFILE EXEC dosyanızın içine ayrı bir satır olarak koyarsanız (bu durumda, tırnak icinde ('TERM LINEND OFF' olarak) vermenız gerekebilir) makinanızı heri açışınızda bu komutu yazmaktan kurtulursunuz.
Anonymous FTP yaparken bu gibi dertlerle uğraşmak ve ikide bir username ve password vermek istemiyorsanız aşağıdaki REXX ile yazılmış EXEC dosyayı "MYFTP EXEC" olarak kaydedin. Programda, queue "anonymous "userid()"@vm.cc.itu.edu.tr" satırında @ işaretinden sonra gelen vm.cc.itu.edu.tr yerine kendi domain adresinizi yazın.
MYFTP
şeklinde daha rahat anonymous ftp yapacaksınız. (Username ve password girmek zorunda kalmayacaksınız).
------------------------> Buradan kesiniz <----------------------
/* MYFTP EXEC */
/* */
Parse Arg ftp_addr
If ftp_addr="" then signal help
queue "anonymous "userid()"@vm.cc.itu.edu.tr"
push "FTP "ftp_addr
exit
help: Say 'Kullanim Formati : MYFTP ftp-addresi'
------------------------> Buradan kesiniz <----------------------
VM/CMS üzerinden FTP yapıyorum. FTP yaptığım yerlerde bazı dosyaların isimleri çok enteresan. Bunları GET komutuyla nasıl alabilirim? (GET komutu hata veriyor)
Bu problem, VM/CMS'in dosya isimlendirme sisteminin farklılığından kaynaklanıyor. VM için GET komut formatı :
GET
şeklinde verilebilir. Örnek olarak, bağlandığımız FTP arşivinden INDEX isimli bir dosyayi almak istersek, GET INDEX INDEX.TXT diyebiliriz. Bu durumda dosya, A diskinde INDEX TXT isminde saklanacaktır. sample-index.tar.Z isimli bir dosyayı da geçici olarak oluşturduğumuz T diskine almak isteyelim. Bu durumda uygun GET komutu; GET sample-index.tar.Z S_INDEX.TARZ.T olabilir. (Binary transfer etmeyi ve dosyanın orijinal formatının biçimini unutmayın!!!). Böylece ilgili dosya T diskine S_INDEX TARZ olarak kopyalanacaktır.
FTP yaparken, bir dosyayı nasıl almadan okuyabilirim ?
Bunu yapamazsınız. Bir dosyayı görüntülemek için onu transfer etmelisiniz. FTP ortamından çıkmadan, aldığınız bir dosyayı listeleyebilirsiniz. Bunun için, unix'te '!cat ', vm/cms'te 'CMS type ' , dos için, '!type ' kullanılır. Bu komutları FTP ortamından çıkmadan verin. Eğer Netscape, Mosaic vb gibi bir Web istemcisi ile FTP yapıyorsanız, programın "setup"ından transfer edilecek dosya tipi için bir listeleyici (viewer) program tanımlayarak (bu, txt dosya (metin dosyasi) için bir editör) dosya transferini doğrudan ekrana yönlendirebilirsiniz. Web sadece TXT dosyaların değil, diğer formatlardaki dosyaların da (ses, görüntü, video vb) transfer edilirken ekrana yönlendirilmesini sağlar.
İsmini bildiğim bir dosyanın hangi FTP merkezinde olduğunu nasıl bulabilirim?
Bu işi yapan sistem ARCHIE olarak adlandırılır. Archie ile binlerce herkese açık (anonymous) FTP merkezindeki milyonlarca dosyanın kayıtlı olduğu veri tabanları taranır ve aranan dosyanın (eğer varsa) hangi FTP merkezlerinde olduğu ilgili alt dizinleriyle birlikte sorgulayan kişiye bildirilir. ARCHIE, dünyada bulunan değişik Archie servislerine (Archie Servers) ARCHIE programı ile doğrudan, yine bu servis sağlayıcılarına Telnet ile doğrudan bağlanarak kullanılabilir ve sorgulama yapılır. Archie sorgulaması e-mail ile de yapılabilir. Kullanımı özetlemek gerekirse,
Yerel bir Archie programı ile ARCHIE kullanımı :ARCHIE eudora --> isminde eudora olan tum dosyalari/alt dizinleri bulunduklari FTP merkez isimleri ile birlikte listeler.
Gopher içinden Archie : Gopher içinden ilgili Menüyü bulur, gelen tarama menüsünde ilgili kelimeyi girerek tarama yaptırısınız. Tarama sonucunda ilgili nesneler bir menü olarak sunulur. Menüden secilen dosyalar ftp ile alınır.
Web içinden Archie : Bir kaç tane archie'yi destekleyen CGI formu var. Web icinden biraz daha yeteneklidir; archie sunucusunu, taramanın türünü seçebilirsiniz. tarama sonucunda gene ftp ile istediğiniz dosyayı alabilirsiniz.
e-mail ile Archie kullanımı : Archie servis saglayıcısına bir e-mail mesaji icinde 'help' komutu gönderilirse e-mail erişimi ile kullanılabilen komutlar hakkında bilgi alinabilir.
Telnet ile ARCHIE kullanımı : Archie servis saglayıcısına Telnet yaptıktan sonra, kullanıcı ismi olarak 'archie' girilmesi gerekir. Daha sonra, help komutu ile kullanılan komutlar hakkında bilgi alınabilir.
Bazı archie servisleri şunlardır : archie.internic.net, archie.rutgers.edu, archie.sura.net, archie.doc.ic.ac.uk, archie.funet.fi, archie.th-darmstadt.de, archie.uqam.ca, archie.ans.net
Ayrıca, web üzerinden de benzeri taramalar yapabileceğiniz iyi bir servis var: FTP Search. http://ftpsearch.ntnu.no/ftpsearch Bu servis, iyi bir kullanıcı arayüzü ve zengin seçenekleri ile, aradığımız programların bulunduğu siteleri ve dizin bilgilerini bize vermektedir.
http://www.shareware.com servisi de, benzer amaçlar için kullanılabilir.
FTP ile bir dosyayı alırken, herhangi bir nedenle, bağlantı kesildi. Daha sonra kaldığım yerden aktarıma devam edebilir miyim?
Özellikle düşük hızlı bağlantılarda ve modem ile yapılan bağlantılarda karşılaştığımız bir problem!. Dosya aktarımı yarım kalmışsa, kaldığınız yerden aktarıma devam etme şansınız herzaman olmayabilir. Standart FTP buna izin vermez. Ancak, bazı ftp siteleri "bu tip yarım aktarımlara" izin verebilir. Bu durumda, kullandığınız FTP programında da (reget, resume vb) benzeri komutlar varsa, aktarıma kaldığınız yerden devam edebilirsiniz. Eğer win95/nt altından bağlantı yapıyorsanız, CuteFTP (http://www.cuteftp.com) bu tip sorunlarınızı çözecektir. Ayrıca, BulletProof FTP de benzer işi yapar. Aynı zamanda, web (http) transferlerinizi de doğrudan bu program üzerinde yapabilirsiniz. Daha fazla bilgi için adresi : http://www.bpftp.com . Her iki program da, aynı zamanda, Raksnet Tucows arşivinden alınabilir (http://tucows.raksnet.com.tr/tucows/window95.html)
FTP yaparken dikkat edilmesi gereken hususlar var mı?
Tabii ki var!! Aşağıdaki hususlara dikkat etmemek çoğunlukla bir sürü boşa giden zamana mal olacaktır.
EXE, .ZIP vb gibi dosyaları BINARY aktarın (transfer edin). FTP'de (genellikle) varsayılan aktarım biçimi ASCII dir.
Anonymous FTP'de, bir directory içine girdiğinizde, genellikle, oradaki dosyaların isim, byte olarak büyüklük, tarih ve içeriğini belirten kısa açıklama satırlarının olduğu 'okubeni (readme)' dosyaları (bazen de INDEX dosyaları) vardır. Öncelikle bu ASCII dosyaları alıp okumak size çok yardımcı olacaktır.
Anonymous FTP'de, şifre olarak LÜTFEN e-mail adresinizi doğru olarak girin. Bazı FTP merkezleri, e-mail adresinin uygunsuz girilmesi (ya da girilmeyip boş geçilmesi) durumunda FTP yapmanıza izin vermemektedir.
Unix'te küçük/büyük harf ayrımı olduğunu her zaman akılda bulundurun. Özellikle, aktaracağınız dosyaların isimlerini tam yazın ve küçük/büyük harf ayrımlarına dikkat edip aynısını yazın.
Kullandığınız bilgisayarın işletim sistemine özgü kısıt/özellikleri de bilmekte fayda var. (yerel dosya adı vermeler, dosya içeriği görme vb gibi özellikleri kullanabilmeniz icin -söz gelimi, DOS işletim sisteminde, dosya adı ve uzantısı için birtakım kısıtlamalar var).



Anonymous FTP'de dosya gönderilmesi ve incoming dizininin kullanımı

FTP'de bağlandığımız makinaya dosya göndermek istersek, bunu PUT komutu kullanarak yapıyoruz. Anonymous FTP'lerde bağlandığımız makinaya bir dosya gönderme (yani yazma) hakkımız -genellikle- yoktur. FTP siteleri, kullanıcıların belli bir süre dosyalarını koyabilmeleri için bir dizin açmışlardır : bu dizinin adı incoming. genellikle kök (root) dizininde, ya da pub'ın altında (pub/incoming) olarak bulunur. Anonymous FTP lerde, sadece incoming dizinine yazma yetkimiz vardır. Buraya alt dizin açabilir, program kopyalayabiliriz (PUT ile). incoming özellikle, kullanıcıların internet'te buldukları ilginç programları başkaları ile paylaşabilmeleri için güzel bir ortam. Bazı sitelerde incoming kullanımı kısıtlanmış olabilir. Bu kısıtlamalar değişiktir. Dizin açma, dosya upload etme (gönderme), dosya silme, incoming içindeki dosyaları görme, incoming içindeki dosya sayısı ve uzunluk limitleri vb gibi özelliklerden bir kısmı ya da tamamı iptal edilmiş olabilir.
Incoming kullanımında uymamız gereken bazı kurallar var :
Herşeyden önce, incoming dizini herkesin kullanımına açık. Bu yüzden, fazla sayıda ve büyüklükte dosyayı bu alanda TUTMAMALIYIZ.
incoming'e koyduğumuz bir dosyayı bir süre sonra silmeyi unutmamalıyız. Ancak, başkalarının upload ettiği dosyalara dokunmamamız lazım.
incomin içinde lisanslı yazılımlar, uygunsuz dosyalar, prpoaganda içeren dosyalar vb bulundurmamalıyız.
Eğer bir program koymuşsak (söz gelimi unzip.exe), aynı isimde kısa bir açıklama dosyası da koyup programın kısa bir tanımını burada vermeliyiz (söz gelimi, unzip.txt -dosya içinde, pkzip.exe'nin ZIP dosyalarını açan bir DOS programı olduğunu söyleyebiliriz).
incoming'in uygunsuz kullanımına rastladığımızda, ilgili FTP Sitesi yöneticisine haber vermeliyiz.

Internet erişimim yok. e-mail ile FTP yapabilir miyim?
Evet, yapabilirsiniz. e-mail ile FTP komutlarının gönderildiği servisler vardır. Bu servisler, komutları mail gönderen kişinin adına işlerler ve sonucu mail ile kullanıcıya gönderirler. Eğer kullanıcı bir dosya istemişse, bu, genellikle, uuencode edilmiş olarak küçük parçalar halinde e-mail ile gönderilir (encode/decode hakkındaki bilgiyi "Elektronik Posta (e-mail)" kısmında bulabilirsiniz. Turkiye'de böyle bir servis var. Bu servisin adı 'Bilserv (Bilkent Mail Server)'. Bilserv Servisi Bilkent Üniversitesi'nde çalışmaktadır.
Bilkent Mail Server:
Mail server otomatik cevaplama yeteneği olan bir programdır. bilkent-server@bilkent.edu.tr, ve bilserv@bilkent.edu.tr, ya da mail-server@bilkent.edu.tr adreslerine bir dosya içinde gönderilen komutlara göre bazı bilgi ve/veya dosyaları belirtilen adrese gönderir. Program, komutları belirli bir syntax'ta beklemektedir; gönderilen dosya'yı okuduktan sonra şayet ciddi bir hata yoksa istenen bilgi ve/veya dosyaları gönderecektir. Program HER ZAMAN bir alındı mesaji (dosya içinde) gönderecektir: Hatanın nerede olduğunu ve cok kısa bir komut özeti gönderecektir.
Mail Server çok yetenekli bir programdır ve FTP yanında size dosya temelli pek çok hizmet sunar. Bilkent Mail Server hakkında daha ayrıntılı bilgiyi, 'bilserv@bilkent.edu.tr' adresine bir e-mail mesaji içinde HELP komutunu göndererek elde edebilirsiniz. Ayrıca,
send bilkent-arsiv.txt
end
satırlarını bu adrese gönderirseniz, Bilserv'i ve Bilkent Arşivlerini anlatan bir dökumana da erişebilirsiniz.
Grafik Arabirimli FTP ne demektir?
Klasik anlamda FTP yaparken, klavye ile bir takım komutlar yazarız. Son yıllarda geliştirilen bazı programlar kullanıcının bu komutları vermesine gerek kalmadan grafik bir ara birim ile daha kolay FTP yapmasına olanak tanırlar. FTP komutları ya pull-down/pop-up menülerden alınır; ya da tek bir fare tıklatması ile değisik FTP komutları icra edilir. Bu tip programlara bir örnek, PC/Windows altında çalışan, John Junod'un geliştirdiği WS_FTP'dir. (http://www.ipswitch.com 'dan alınabilir). Unix ortamında xftp/oftp/mftp, ftptool gibi programlar vardir. Gopher ve Web içinden yapacağınız FTP de bu tip FTP'lere benzer. Aşağıda, WS_FTP (sürüm 4.10) için klasik ekran düzeni görülmektedir. Sol taraftaki bilgiler yerel diske ait, sağ taraftakiler ise bağlandığımız yere aittir. Kullanıcı, menü sistemi yardımıyla dosya transferi ve bazı temel FTP operasyonlarını gerçekleştirir.

Bir FTP seansı nasıl yürütülür?

FTP , birçok diğer Internet kaynağı gibi client/server modeliyle çalışır. Bu durumda FTP ’yi kullanmak için bir client (kullanıcı) programın kendi bilgisayarınızzda çalışması gerekir. Bir FTP seansına başlamak için bilgisayarınızdaki kullanıcı programı çalıştırır ve indirmek istediğiniz dosyaların bulunduğu FTP serverıyla kontak kurarsınız. FTP kullanıcı yazılımını temin edebileceğiniz yüzlerce yer vardır. Bunlardan biri de ZDNetin www.hotfiles.comdaki yazılım kütüphanesidir.

FTP deamon’u (cin) FTP serverı üzerinde çalışır. Bu deamon bütün FTP muamelelerini halleder. FTP kullanıcı bir serverla kontak kurduğu zaman, deamon bir hesap numarası ve şifre sorar. Birçok FTP sitesi herkesin giriş yapmasına ve dosya indirmesine müsaade eder. Bu tür FTP ’lere anonymous FTP denir. Ananymous (isimsiz) FTP’lerde hesap numarası yerine “ananymous”, şifre yerine de e-mail adresi kullanılır. Bazı FTP clientleri, FTP serverına bağlanıldığında bu işlemi otomatik olarak yaparlar.

Bir FTP serverına giriş yaptığınzda, command link (komut hattı) denilen bir bağlantı, server ve bilgisayarınız arasında kurulur. Bu hat sizin servera komut göndermenizi sağlarken, serverın da size bilgi ve mesaj göndermesini sağlar.

FTP serverındaki directorylerin değiştirilmesi istendiğinde kullanıcı yazılımınız komut hattını kullanarak FTP deamonuna bir emir gönderir. Deamon directoryi değiştirir ve komut hattı üzerinden o directorydeki dosyaların listesini gönderir. Bu dosyalardan birini
indirmek istediğinizde bu talep yine komut hattından iletilir.
Bir dosyayı indirmek için komut verildiğinde veril hattı (data link) denilen ikinci bir bağlantı kurulur. Bu bağlantı iki modda olabilir: ASCII ya da binar modu. ASCII modu metin dosyaları göndermek içindir ve satır boşluklarıyla, satır başlarında değişiklik olabilir. Binar
modu binar dosyaları değişikliğe uğramadan gönderir.

Dosya serverdan bilgisayarınıza veri hattı üzerinden indirilir. Dosya indirildikten sonra veri hattı otomatikman kapanır. Dosya indirilip veri hattı kapadıktan sonra komut hattı açık kalmaya devam eder. Böylece başka directorylere bakıp başka dosyalar indirebilir. İşiniz bittiğinde, çıkış yaparsınız ve komut hattı kapanır. Artık FTP serverıyla olan bağlantı kesilmiştir.


Dosya sıkıştırma

Sıkıştırma programları dosyaları küçülmek için algoritma-kompleks matematiksel formüller- kullanırlar. İlk aşamada algoritma sıkıştırılacak dosyayı inceler, tekrarlanmış veri desenleri arar.

Algoritma tekrarlı veri desenleri bulduğunda bunları daha ufak “işaret”lerle değiştirir. Fazla miktarda tekrarlı veri desenleri olan dosyalarda daha çok işaret olacağından bu dosyalar orijinalinden çok daha küçük bir boyuta sıkıştırabilirler.

Dosyaya istenirse bir başlık da eklenebilir. Bu başlıkta, dosya adı, dosya büyüklüğü ve sıkıştırma metodunu belirten bilgiler bulunur. Bu bilgiler dosyayı yeniden eski haline sokup, yeniden yapılanmasını sağlarken kullanılır.

PC’ler için olan PKZIP gibi bazı sıkıştırma yazılımları, birkaç sıkıştırılmış dosyayı bir araya getirerek arşiv dosyaları yaratabilirler. Ayrıca UNIX komutu olan TAR kullanılarak birçok dosya tek bir arşiv de birleştirilir.

Internette bulunduğunuz sıkıştırılmış bir dosyayı kullanmak için önce bunu Internet üzerinden kendi bilgisayarınıza transfer edin.

Bu dosyayı kullanabilmek için bunu eski haline getirecek bir yazılım gerekir. Bu yazılım başlığa bakar ve dosyadaki işaretleri (token) inceler. Bir açma algoritması kullanarak orijinal dosyayı, bilgisayarınızda kullanabileceğiniz şekilde yeniden oluşturur.

Dosya uzantıları dosyanın sıkıştırılmışsa nasıl sıkıştırıldığını belirtir.