İçeriğe atla

Kullanıcı:Kutay/deneme tahtası

Vikipedi, özgür ansiklopedi
Bilgisayar istemcileri yalnıza statik içerik sunan bir web sunucusu aracılığıyla ağ üzerinden iletişim gerçekleştiriyor.

Web sunucusu, HTTP (Hypertext Transfer Protocol) veya uzantısı olan HTTPS (HTTP Secure) üzerinden gelen istemcilerin (web tarayıcıları veya arama robotları) taleplerini kabul eden bir bilgisayar yazılımı ve altyapı donanımını ifade eder. Web sunucularının temel işlevi, istemcilerden gelen istekleri istenen web sayfalarının veya diğer kaynakların içeriğini sunmak veya hata mesajlarıyla yanıt vermektir.

Bir Dell PowerEdge sunucusunun önü ve içi. Bu tarz bilgisayarlar bir rafa monte edilmek için tasarlanmıştır. Buna benzer sunucular genellikle web sunucusu olarak kullanılır.

Web sunucusundan gönderilen kaynak, var olan bir dosya (statik içerik) olabilir, ya da isteğin gönderildiği an sunucu yazılımıyla iletişime geçen başka bir program tarafından oluşturulabilir (dinamik içerik). Statik içerik tekrarlayan istekler için daha hızlı servis edilebilir ve önbelleğe alması daha kolaydır. Dinamik içerik daha geniş bir yelpazede servis sunulabilmesini sağlar.

Çalışma prensibi

[değiştir | kaynağı değiştir]

Bir web sunucusu çalıştırmak için gereken donanım, gelen isteklerin hacmine göre değişiklik gösterebilir. Donanım aralığının alt ucunda, bir yönlendiricinin yapılandırma arayüzü olarak küçük bir web sunucusu çalıştırması gibi gömülü sistemler bulunur. Yoğun trafikli bir internet sitesi ise istekleri yüksek hızlı bilgisayarlardan oluşan raflarda çalışan yüzlerce sunucuyla işleyebilir.

İletişim Süreci

[değiştir | kaynağı değiştir]

Bu iletişim süreci, istemcinin belirli bir URL (Uniform Resource Locator) ile kaynak talep etmesiyle başlar. Bu istek, sunucuya HTTP protokolü kullanılarak iletilir. Web sunucusu, talep edilen içeriği bulur ve bunu istemciye geri gönderir. Bu süreçte yanıt, istemcinin talebine göre değişiklik gösterebilir. Örneğin, istenen kaynak başarıyla bulunduğunda "200 OK" durumu ile yanıt verilirken kaynak bulunamazsa 404, yetkisiz erişim durumunda 403, fiziksel sunucu kaynaklı bir hata durumda 503 vb. hata kodları ile geri dönüş yapılır.

REST ve SOAP gibi HTTP'yi bilgisayarlar arası genel iletişim için temel alan teknolojiler ve WebDAV eklentilerine sunulan destekler, web sunucularının uygulama alanını, insan tarafından okunabilir sayfalar sunma gibi asıl amacının çok ötesine genişletmiştir.

WWW projesi (1989–1991)

[değiştir | kaynağı değiştir]

Mart 1989 tarihinde, Sir Tim Berners-Lee, CERN bilim insanları arasındaki bilgi alışverişini kolaylaştırmak amacıyla bir hiper metin sistemi kullanarak yeni bir proje önerdi. "HyperText (HTTP) ve CERN" başlıklı bu öneri, görüş almak üzere sunuldu. Ekim 1990'da öneri yeniden düzenlenip (Robert Cailliau eş-yazar olarak yer aldı) ve onaylandı.[1][2][3]

1990 sonları ile 1991 başları arasında, proje Berners-Lee ve geliştiricilerinin birkaç yazılım kütüphanesinin yanı sıra, ilk olarak NeXT iş istasyonlarına kurulu NeXTSTEP işletim sistemi üzerinde çalışan üç program yazmaları ve test etmeleriyle sonuçlandı:[4] [5] [6]

  • WorldWideWeb (WWW) adında grafiksel bir web tarayıcısı;
  • Modlu web tarayıcısı;
  • CERN httpd olarak bir web sunucusu.

Bu ilk tarayıcılar, basit bir HTML formunda yazılmış web sayfalarını, HTTP 0.9 olarak adlandırılan yeni bir temel iletişim protokolünü kullanarak web sunucularından alıyordu.

Ağustos 1991’de Tim Berners-Lee, WWW teknolojisinin doğuşunu duyurdu ve bilim insanlarını bu teknolojiyi benimsemeye ve geliştirmeye teşvik etti.[7] Kısa bir süre sonra, bu programlar ve kaynak kodları, ilgilenenlerin kullanımına sunuldu. Her ne kadar kaynak kodu resmi olarak lisanslanmamış veya kamuya mal edilmemiş olsa da, CERN, kullanıcıların ve geliştiricilerin bu kodlar üzerinde deney yapmasına ve onları daha da geliştirmesine gayri resmi olarak izin verdi. Berners-Lee, bu programların benimsenmesini, kullanılmasını ve diğer işletim sistemlerine uyarlanmasını teşvik etmeye başladı.[8]

Gelişim Süreci (1991–1995)

[değiştir | kaynağı değiştir]

Aralık 1991'de, Avrupa dışındaki ilk web sunucusu ABD'deki SLAC laboratuvarında kuruldu.[9] Bu, web tarayıcıları ve web sunucuları arasında kıtalar arası iletişimin başlaması açısından önemli bir olaydı.1991–1993 yılları arasında, CERN web sunucusu programı www grubu tarafından aktif olarak geliştirilmeye devam etti. Aynı zamanda, kaynak kodunun ve HTTP protokolünün kamuya açık spesifikasyonlarının bulunması sayesinde, başka birçok web sunucusu uygulaması geliştirilmeye başlandı.

Dünyanın ilk web sunucusu, Ethernet bağlantısına sahip bir NeXT Computer iş istasyonu, 1990. Kasa üzerindeki etiket şöyle yazıyordu: “Bu makine bir sunucudur. KAPATMAYIN!!”

Nisan 1993’te CERN, Web yazılımının üç bileşeninin (temel satır istemci, web sunucusu ve ortak kod kitaplığı) kaynak kodlarıyla birlikte kamuya mal edildiğini belirten resmi bir bildiri yayınladı.[10] Bu açıklama, web sunucusu geliştiricilerini, bu kaynak koda dayalı türev işler geliştirme konusunda olası yasal sorunlardan muaf tuttu.

1994 yılının başında, yeni web sunucuları arasında öne çıkanlardan biri, çeşitli Unix tabanlı işletim sistemlerinde çalışabilen ve POST HTTP yöntemini ve CGI’yi dış programlarla iletişim kurmak için uygulayarak dinamik içerik sunabilen NCSA httpd idi. Bu özellikler, HTML FORM alanlarını yönetebilen ve web sunucusuna veri gönderebilen NCSA'nın Mosaic tarayıcısının multimedya özellikleri ile birlikte, web teknolojisinin yayıncılık ve bilişim uygulamaları için potansiyelini ortaya koydu.

1994'ün ikinci yarısında, NCSA httpd'nin gelişimi durma noktasına geldi. Bu durum, NCSA httpd kaynak kodunun kamuya açık olmasından yararlanan bir grup yazılım geliştiricinin, web yöneticilerinin ve diğer profesyonellerin yamalar yazıp bir araya getirmesine yol açtı. 1995’in başında bu yamalar NCSA kaynak kodunun son sürümüne uygulandı ve çeşitli testlerden sonra Apache HTTP sunucu projesi başlatıldı.

1994 yılının sonunda, Netscape tarafından geliştirilen ve özel özelliklere sahip ilk ticari web sunucusu olan Netsite piyasaya sürüldü. Bu ürün, önce Netscape, ardından Sun Microsystems ve en sonunda Oracle Corporation tarafından geliştirilen benzer ürünlerin ilk örneğiydi.

1995’in ortasında, Microsoft tarafından Windows NT işletim sistemi için geliştirilen IIS’in ilk sürümü yayınlandı. Bu, web teknolojileri alanına hem istemci hem de sunucu tarafında önemli bir rol oynayan büyük bir ticari geliştirici ve satıcının girmesini simgeliyordu.

1995'in ikinci yarısında CERN ve NCSA web sunucularının (küresel kullanım oranı olarak) düşüşe geçmesi, daha hızlı geliştirme döngüsüne, daha fazla özelliğe, daha çok hata düzeltmesine ve daha yüksek performansa sahip yeni web sunucularının yaygın olarak benimsenmesi nedeniyle gerçekleşti.

Büyüme Süreci (1996–2014)

[değiştir | kaynağı değiştir]
Sun'ın Cobalt Qube 3'ü – bir bilgisayar sunucu cihazıdır (2002, kullanımda değil)

1996 yılının sonunda, internet alan adı sahibi olmak veya web siteleri barındırmak isteyen herkesin erişimine açık olan elliden fazla farklı web sunucu yazılımı zaten mevcuttu.[11] Bu yazılımların birçoğu kısa ömürlüydü ve yerini başka web sunucularına bırakıyordu.

HTTP/1.0 (1996) ve HTTP/1.1 (1997, 1999) hakkında yayınlanan RFC'ler, çoğu web sunucusunu bu standartlara uymaya zorladı. TCP/IP sürekli bağlantı kullanımını (HTTP/1.1) gerektirdiğinden, web sunucularının hem izin verilen eşzamanlı bağlantı sayısını artırması hem de ölçeklenebilirlik seviyelerini geliştirmesi gerekiyordu.

1996 ile 1999 arasında Netscape Enterprise Server ve Microsoft IIS, önde gelen ticari seçenekler arasında ortaya çıkarken, serbest ve açık kaynak programlar arasında Apache HTTP Server, güvenilirliği ve sunduğu birçok özellik nedeniyle tercih edilen sunucu olarak liderliğini sürdürdü.

Bu yıllarda, pazarda mevcut olan en hızlı ve ölçeklenebilir web sunucularından biri olarak bilinen ve düşük kullanım yüzdesine sahip olan başka bir ticari ve yenilikçi web sunucusu olan Zeus'da dikkat çekiyordu.

Apache, 1996 ortalarından 2015 sonuna kadar en çok kullanılan web sunucusu olmuştur; 2015'ten sonra birkaç yıl süren bir düşüşün ardından, öncelikle IIS tarafından daha sonra da Nginx tarafından geride bırakıldı. Daha sonra IIS, Apache'nin çok daha düşük kullanım yüzdelerine düştü.

2005-2006 yıllarında Apache, yeni performans özellikleri (Event MPM ve yeni içerik önbelleği) tanıtarak hızını ve ölçeklenebilirlik seviyesini geliştirmeye başladı.[12][13] Bu yeni performans iyileştirmeleri başlangıçta deneysel olarak işaretlendiği için kullanıcıları tarafından uzun süre etkinleştirilmedi ve bu nedenle Apache, ticari sunucuların ve özellikle gelişimlerinin başlangıcında çok daha yüksek performanslar sunan diğer açık kaynak sunucuların rekabetine daha fazla maruz kaldı.

Aslında, 2000 sonrası yıllarda, yalnızca diğer ticari ve yüksek rekabetçi web sunucuları (örneğin, LiteSpeed) değil, aynı zamanda çok kaliteli ve yüksek performans sunan birçok diğer açık kaynak programı da ortaya çıkmıştı.

Bunlar arasında;

  • Hiawatha,
  • Cherokee HTTP sunucusu,
  • Lighttpd,
  • Nginx

gibi web sunucuları ticari destek sağlasa da, mevcut olan diğer türev ve ilişkili ürünler de dikkate alınmalıdır.

2007-2008 civarında, en popüler web tarayıcıları önceki önerilen RFC-2616'daki her bir ana bilgisayar alanı için 2 sürekli bağlantı limitini 4, 6 veya 8'e çıkardılar. Bu değişiklik, birçok görüntü içeren ağır web sayfalarının geri alımını hızlandırmak ve dinamik nesneler için ayrılmış sürekli bağlantı eksikliği sorununu hafifletmek amacıyla yapıldı.[14]

Bir yıl içinde, bu değişiklikler, ortalama olarak, web sunucularının yönetmesi gereken sürekli bağlantıların sayısını neredeyse üç kat artırdı. Bu trend, daha yavaş web sunucularının önünde ters proxy'lerin benimsenmesine güçlü bir teşvik sağladı ve çok sayıda eşzamanlı bağlantıyı yönetebilen yeni web sunucularının hızını ve yeteneklerini göstermesi için bir fırsat daha sundu.[15]

  1. ^ Zolfagharifard, Ellie (2018-11-24). "'Father of the web' Sir Tim Berners-Lee on his plan to fight fake news". The Telegraph (İngilizce). London. ISSN 0307-1235. 11 January 2022 tarihinde kaynağından arşivlendi. Erişim tarihi: 2019-02-01.  Geçersiz |url-erişimi=subscription (yardım)
  2. ^ "History of Computers and Computing, Internet, Birth, The World Wide Web of Tim Berners-Lee". history-computer.com. 4 January 2019 tarihinde kaynağından arşivlendi. Erişim tarihi: 2019-02-01. 
  3. ^ Tim Berner-Lee (1992). "WWW Project History (original)". CERN (World Wide Web project). 8 December 2021 tarihinde kaynağından arşivlendi. Erişim tarihi: 2021-12-20. 
  4. ^ Tim Berner-Lee (1991-08-20). "WorldWideWeb wide-area hypertext app available (announcement)". CERN (World Wide Web project). 2 December 2021 tarihinde kaynağından arşivlendi. Erişim tarihi: 2021-10-16. 
  5. ^ Web Administrator. "Web History". CERN (World Wide Web project). 2 December 2021 tarihinde kaynağından arşivlendi. Erişim tarihi: 2021-10-16. 
  6. ^ Tim Berner-Lee (1992). "WWW Project History (original)". CERN (World Wide Web project). 8 December 2021 tarihinde kaynağından arşivlendi. Erişim tarihi: 2021-12-20. 
  7. ^ Tim Berner-Lee (1991-08-02). "Qualifiers on hypertext links ..." CERN (World Wide Web project). 7 December 2021 tarihinde kaynağından arşivlendi. Erişim tarihi: 2021-10-16. 
  8. ^ Tim Berner-Lee (1992). "WWW Project History (original)". CERN (World Wide Web project). 8 December 2021 tarihinde kaynağından arşivlendi. Erişim tarihi: 2021-12-20. 
  9. ^ Web Administrator. "Web History". CERN (World Wide Web project). 2 December 2021 tarihinde kaynağından arşivlendi. Erişim tarihi: 2021-10-16. 
  10. ^ Tim Smith; François Flückiger. "Licensing the Web". CERN (World Wide Web project). 6 December 2021 tarihinde kaynağından arşivlendi. Erişim tarihi: 2021-10-16. 
  11. ^ "Netcraft: web server software (1996)". Netcraft (web archive). 30 December 1996 tarihinde kaynağından arşivlendi. Erişim tarihi: 2021-12-16. 
  12. ^ "Overview of new features in Apache 2.2" (İngilizce). Apache: HTTPd server project. 2005. 27 November 2021 tarihinde kaynağından arşivlendi. Erişim tarihi: 2021-12-16. 
  13. ^ "Overview of new features in Apache 2.4" (İngilizce). Apache: HTTPd server project. 2012. 26 November 2021 tarihinde kaynağından arşivlendi. Erişim tarihi: 2021-12-16. 
  14. ^ "Maximum concurrent connections to the same domain for browsers". 2017. 21 December 2021 tarihinde kaynağından arşivlendi. Erişim tarihi: 2021-12-21. 
  15. ^ "Linux Web Server Performance Benchmark - 2016 results". RootUsers. 8 March 2016. 23 December 2021 tarihinde kaynağından arşivlendi. Erişim tarihi: 2021-12-22.