Python Web Server Nasıl Oluşturulur?
  1. Anasayfa
  2. Yazılım

Python Web Server Nasıl Oluşturulur?

4

Web Server nedir? Sorusuyla başlamak daha doğru olur. Web Server, oluşturmak istediğimiz web sitesini internette yayımlamak için gerekli alanın ayrılmasıdır bu ayırma işlemine Hosting de denebilir. Bizim burada yapacağımız şey Python’un belli kütüphanelerini kullanarak kendi web sitemizi hostlayacağız peki bunu nasıl ve neleri kullanarak yapacağız. Aslında gereken şeyler çok da zor değil bir tane Python IDE’si ve bu idenin içinde “http. serverPackage’nin yüklü olması yeterli ondan sonrası bizim yazacağımız kodlara kalıyor isterseniz artık yazmaya başlayalım.

Resim- 1

Package’ımızı tanımlayarak başlıyoruz. Burada as h’ı bilmeyenler olabilir diye söylüyorum takma ad gibi düşünebiliriz her seferinde http.server yazmak yerine h yazmamız yeterli ayrıca h yerine istediğimiz kısaltmayı tanımlamamız mümkün.

Resim- 2

Buradaki adımda ise “BaseHTTPRequstHandler” sınıfıyla aynı özellikleri taşıyan “ecoHandler” adında kendi sınıfımızı oluşturuyoruz. Bu sınıfı oluşturmamızın sebebi ise kullanacağımız bazı metotların bizden bir Handler sınıf isteyecek olması. Bizim burada yaptığımız işlem de bir Handler sınıfı oluşturmak.

Resim- 3

“send_response” metodunu cevap gönder diye Türkçeleştirebiliriz. Bu metodun içine yazdığımız 200 sayısı neden 200 diye soracaksanız eğer size şu şekilde açıklayayım. Bu metodun üstüne gelip sağ tıklayıp önce “go to” ardından da “declaration or usage” kısmına tıklayarak bu metodun nasıl oluştuğunu görmüş olursunuz. Bu kodların nasıl yazıldığını biraz karıştırdıktan sonra aşağıdaki görseli buldum. Bu görselde parametre olarak girdiğimiz sayıların anlamları bulunmaktadır. Bu anlamlara göre size lazım olan sayıyı seçebilirsiniz.

Resim- 4

Resim- 5

Resim-5’de “send_header” metodunu görüyoruz bu metot anahtar kelime (Keyword) bir de değer (Value) olmak üzere 2 parametre alır. Bu parametreler hostlayacağımız web sayfasında görünürde hiçbir değişikliğe yol açmaz fakat yapılması zorunlu bir işlemdir burada bir başlık seçeriz ve bu başlık dahili bir ara bellekte saklanır. Ayrıca “send header” metodunu kullanıldığınız takdirde sonunda “end_headers” metodunun kullanmanız zorunludur.

Resim- 6

Bu görselde web sayfamızı test amaçlı ekrana etki edecek şekilde bir yazı yazmasını sağlıyoruz.

Resim- 7

Port dediğimiz şey nedir ilk olarak ondan bahsedeyim. Port belli bir işleme ait olan mantıksal bir yapıdır. Bir port, bir aktarım katmanı protokolünden ve 16 bitlik “port numarasından” oluşur. 16 bitlik port numarasından oluştuğu için neden bir sayı değeri olarak tanımladığımızı açıklıyoruz.

Resim- 8

Bu işlemde gerçekleşen şey HTTPServer metodunun içine bir adres (PORT NO) bir de Handler sınıfı (Bizim kodumuza göre ismi: “ecoHandler”) alır bu sınıfı da yukarıda kendimiz oluşturmuştuk. Bunları metoda yazarak Serverımız için gerekli olan özellikleri girmiş oluyoruz.

Resim- 9

Resim 9’daki metot hostladığımız Serverın, biz kapayana kadar açık kalmasını sağlar.

Resim- 10

Resim 10’da gördüğümüz gibi kodları yazdıktan sonra kodumuzu çalıştırıyoruz. İnternet tarayıcısına “localhost:PORT NO” – Bizim yazdığımız koda göre yazılması gereken (“localhost:7000”) – yazıyoruz. Ardından açılan sayfa bizim hostladığımız kendi internet sayfamızdır. Bu sayfanın neden internette gördüğümüz internet sayfaları gibi olmadığını soracak olursanız eğer, bizim burada yaptığımız işlem web sayfası tasarlamak değil sunucu oluşturmak ve var olan dosyayı hostlamak.

Bu konuyla ilgili sorularınızı alt kısımda bulunan yorumlar alanını kullanarak sorabilirsiniz.

Referanslar:

https://www.mshowto.org

https://docs.python.org/3/library/http.server.html

TAGs: Web, Python, Web server, Web Geliştirme, Hosting, Localhost.

Bu İçeriğe Tepkin Ne Oldu?
  • 37
    harika_
    Harika!!
  • 3
    be_enmedim
    Beğenmedim
  • 1
    _ok_iyi
    Çok iyi
  • 1
    sevdim_
    Sevdim!
  • 1
    bilemedim_
    Bilemedim!
  • 1
    olmad_
    Olmadı!
  • 1
    k_zd_m_
    Kızdım!

Kaan Kasap, İstanbul'da 2001 yılında dünyaya geldim. Yüksek öğretimimi Kocaeli Üniversitesi Bilişim Sistemleri Mühendisliği bölümünde devam ettirmekteyim. Üniversite kulübü olan BİTEK'de başkan yardımcısı olarak görev alıyorum. Son olarak ilgi alanlarım Cloud, Machine Learning, web ve Siber güvenlik.

Yazarın Profili
İlginizi Çekebilir

Bültenimize Katılın

Tıklayın, üyemiz olun ve yeni güncellemelerden haberdar olan ilk kişi siz olun.

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Yorumlar (4)

  1. 08/03/2021

    Güzel anlatımınız için teşekkür ederim.

  2. 10/03/2021

    Ellerine sağlık Kaan, çok güzel bir içerik olmuş.

  3. 11/03/2021

    Bir web developer olarak python’un web tarafı hep ilgimi çekmiştir. Bu makale ilerleyen süreçte işime yarayabilir. Teşekkürler.

  4. 12/03/2021

    Güzel bir yazı olmuş. Elinize sağlık.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir