{"id":29736,"date":"2025-09-19T04:20:44","date_gmt":"2025-09-19T01:20:44","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/pythonda-basit-bir-http-sunucusu-nasil-olusturulur\/"},"modified":"2025-09-19T04:20:44","modified_gmt":"2025-09-19T01:20:44","slug":"pythonda-basit-bir-http-sunucusu-nasil-olusturulur","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/pythonda-basit-bir-http-sunucusu-nasil-olusturulur\/","title":{"rendered":"Python&#8217;da Basit Bir HTTP Sunucusu Nas\u0131l Olu\u015fturulur"},"content":{"rendered":"<p># Python ile Basit HTTP Sunucusu Olu\u015fturma<\/p>\n<p>Web geli\u015ftirme d\u00fcnyas\u0131nda, h\u0131zl\u0131 prototipleme veya k\u00fc\u00e7\u00fck \u00f6l\u00e7ekli uygulamalar i\u00e7in basit bir HTTP sunucusuna ihtiya\u00e7 duyabilirsiniz.  Python&#8217;\u0131n sundu\u011fu g\u00fc\u00e7l\u00fc k\u00fct\u00fcphaneler sayesinde, birka\u00e7 sat\u0131r kodla kendi HTTP sunucunuzu kolayca olu\u015fturabilirsiniz. Bu makalede, Python kullanarak basit bir HTTP sunucusu olu\u015fturmay\u0131, optimize etmeyi ve olas\u0131 sorunlar\u0131 \u00e7\u00f6zmeyi ad\u0131m ad\u0131m \u00f6\u011freneceksiniz.  Python&#8217;\u0131n sundu\u011fu esneklik sayesinde, statik dosyalar sunmaktan dinamik i\u00e7erik \u00fcretmeye kadar bir\u00e7ok farkl\u0131 senaryoda kullanabilece\u011finiz bir sunucu geli\u015ftirebilirsiniz.<\/p>\n<p><strong>\u00d6\u011frenme Yol Haritas\u0131<\/strong><\/p>\n<p>Bu makale, Python ile HTTP sunucusu olu\u015fturmay\u0131 \u00fc\u00e7 seviyede ele almaktad\u0131r:<\/p>\n<p>* <strong>Yeni Ba\u015flayan:<\/strong> Ad\u0131m ad\u0131m a\u00e7\u0131klama, basit kod \u00f6rne\u011fi ve temel kavramlar.<br \/>\n* <strong>Orta:<\/strong> Ger\u00e7ek d\u00fcnya senaryolar\u0131, optimizasyon ipu\u00e7lar\u0131 ve daha geli\u015fmi\u015f \u00f6zellikler.<br \/>\n* <strong>\u0130leri D\u00fczey:<\/strong> Performans analizi, hata y\u00f6netimi ve edge case&#8217;ler.<\/p>\n<p><strong>1. Temel Kavramlar: HTTP ve Python&#8217;\u0131n Rol\u00fc<\/strong><\/p>\n<p>HTTP (Hypertext Transfer Protocol), web taray\u0131c\u0131lar\u0131 ve web sunucular\u0131 aras\u0131nda veri al\u0131\u015fveri\u015fini sa\u011flayan bir ileti\u015fim protokol\u00fcd\u00fcr.  Bir web taray\u0131c\u0131s\u0131 bir web sitesini istedi\u011finde, HTTP protokol\u00fc \u00fczerinden sunucuya bir istek g\u00f6nderir. Sunucu bu iste\u011fi i\u015fleyerek, ilgili sayfay\u0131 veya di\u011fer kaynaklar\u0131 HTTP yan\u0131t\u0131 olarak geri g\u00f6nderir.<\/p>\n<p>Python, bu s\u00fcre\u00e7te g\u00fc\u00e7l\u00fc bir ara\u00e7t\u0131r.  <code class=\"language-\">http.server<\/code> mod\u00fcl\u00fc, basit bir HTTP sunucusu olu\u015fturmak i\u00e7in gerekli i\u015flevleri sa\u011flar.  Bu mod\u00fcl, gelen istekleri i\u015fleyerek, belirtilen dizindeki dosyalar\u0131 veya statik i\u00e7eri\u011fi taray\u0131c\u0131lara g\u00f6nderir.  Ayr\u0131ca, Python&#8217;\u0131n di\u011fer k\u00fct\u00fcphaneleri ile entegre edilerek, daha karma\u015f\u0131k ve dinamik HTTP sunucular\u0131 geli\u015ftirebilirsiniz.  \u00d6rne\u011fin, <code class=\"language-\">Flask<\/code> veya <code class=\"language-\">Django<\/code> gibi web framework&#8217;leri, daha b\u00fcy\u00fck \u00f6l\u00e7ekli ve \u00f6zellikli web uygulamalar\u0131 olu\u015fturmak i\u00e7in kullan\u0131l\u0131r.<\/p>\n<p><strong>2. Basit Bir HTTP Sunucusu Nas\u0131l Olu\u015fturulur? (Yeni Ba\u015flayan)<\/strong><\/p>\n<p>En basit HTTP sunucusunu olu\u015fturmak i\u00e7in <code class=\"language-\">http.server<\/code> mod\u00fcl\u00fcn\u00fc kullanaca\u011f\u0131z.  A\u015fa\u011f\u0131daki kod, mevcut dizindeki dosyalar\u0131 sunan bir sunucu ba\u015flat\u0131r:<\/p>\n<pre class=\"language-python\"><code>import http.server\nimport socketserver\n\nPORT = 8000\n\nHandler = http.server.SimpleHTTPRequestHandler\n\nwith socketserver.TCPServer((&quot;&quot;, PORT), Handler) as httpd:\n    print(&quot;Sunucu http:\/\/localhost:{} adresinde \u00e7al\u0131\u015f\u0131yor...&quot;.format(PORT))\n    httpd.serve_forever()<\/code><\/pre>\n<p>Bu kod, <code class=\"language-\">PORT<\/code> de\u011fi\u015fkeninde belirtilen portta (varsay\u0131lan 8000) bir sunucu ba\u015flat\u0131r. <code class=\"language-\">SimpleHTTPRequestHandler<\/code> s\u0131n\u0131f\u0131, gelen istekleri i\u015fleyerek ilgili dosyalar\u0131 sunar. <code class=\"language-\">serve_forever()<\/code> metodu, sunucunun sonsuza kadar \u00e7al\u0131\u015fmas\u0131n\u0131 sa\u011flar.  Sunucuyu durdurmak i\u00e7in, terminal penceresinde Ctrl+C tu\u015flar\u0131na basman\u0131z yeterlidir.  Bu kod par\u00e7as\u0131n\u0131 \u00e7al\u0131\u015ft\u0131rmadan \u00f6nce, sunucunun dosyalar\u0131 sunaca\u011f\u0131 dizinde oldu\u011funuzdan emin olun.<\/p>\n<p><strong>\u00d6rnek Senaryo:<\/strong>  Bir blog yaz\u0131s\u0131n\u0131n statik HTML dosyas\u0131n\u0131 sunmak i\u00e7in, bu dosyay\u0131 \u00e7al\u0131\u015ft\u0131r\u0131lan Python dosyas\u0131yla ayn\u0131 dizine yerle\u015ftirip sunucuyu \u00e7al\u0131\u015ft\u0131rabilirsiniz.  Taray\u0131c\u0131n\u0131zda <code class=\"language-\">http:\/\/localhost:8000<\/code> adresini ziyaret ederek dosyay\u0131 g\u00f6rebilirsiniz.<\/p>\n<p><strong>3. Ger\u00e7ek D\u00fcnya Senaryolar\u0131 ve Optimizasyon \u0130pu\u00e7lar\u0131 (Orta)<\/strong><\/p>\n<p>Yukar\u0131daki \u00f6rnek olduk\u00e7a basittir.  Ger\u00e7ek d\u00fcnya uygulamalar\u0131nda, daha geli\u015fmi\u015f \u00f6zelliklere ihtiya\u00e7 duyabilirsiniz. \u00d6rne\u011fin, belirli bir dizini sunmak, \u00f6zel port numaralar\u0131 kullanmak veya hata y\u00f6netimi eklemek gerekebilir.<\/p>\n<p><strong>\u00d6zel Dizin Belirleme:<\/strong>  <code class=\"language-\">SimpleHTTPRequestHandler<\/code> s\u0131n\u0131f\u0131n\u0131 \u00f6zelle\u015ftirerek, sunucunun belirli bir dizindeki dosyalar\u0131 sunmas\u0131n\u0131 sa\u011flayabilirsiniz.<\/p>\n<pre class=\"language-python\"><code>import http.server\nimport socketserver\nimport os\n\nPORT = 8000\nDIZIN = &quot;\/path\/to\/your\/directory&quot; # Sunulacak dizinin yolu\n\nclass MyHandler(http.server.SimpleHTTPRequestHandler):\n    def __init__(self, *args, **kwargs):\n        super().__init__(*args, directory=DIZIN, **kwargs)\n\nwith socketserver.TCPServer((&quot;&quot;, PORT), MyHandler) as httpd:\n    print(&quot;Sunucu http:\/\/localhost:{} adresinde \u00e7al\u0131\u015f\u0131yor...&quot;.format(PORT))\n    httpd.serve_forever()<\/code><\/pre>\n<p>Bu \u00f6rnekte, <code class=\"language-\">MyHandler<\/code> s\u0131n\u0131f\u0131 <code class=\"language-\">SimpleHTTPRequestHandler<\/code> s\u0131n\u0131f\u0131ndan t\u00fcretilmi\u015ftir ve <code class=\"language-\">directory<\/code> parametresi kullan\u0131larak sunulacak dizin belirtilmi\u015ftir.  <code class=\"language-\">DIZIN<\/code> de\u011fi\u015fkenini kendi dizin yolunuzla de\u011fi\u015ftirin.<\/p>\n<p><strong>Performans Optimizasyonu:<\/strong>  B\u00fcy\u00fck dosyalar i\u00e7in, sunucunun performans\u0131n\u0131 art\u0131rmak \u00f6nemlidir.  Bunun i\u00e7in, <code class=\"language-\">http.server<\/code> yerine daha performansl\u0131 k\u00fct\u00fcphaneler kullanabilirsiniz.  \u00d6rne\u011fin, <code class=\"language-\">aiohttp<\/code> gibi asenkron k\u00fct\u00fcphaneler, ayn\u0131 anda birden fazla istek i\u015fleyebilir ve performans\u0131 art\u0131rabilir.<\/p>\n<p><strong>4.  Hata Y\u00f6netimi ve G\u00fcvenlik (Orta)<\/strong><\/p>\n<p>Ger\u00e7ek d\u00fcnya uygulamalar\u0131nda, hata y\u00f6netimi ve g\u00fcvenlik son derece \u00f6nemlidir.  \u00d6rne\u011fin, bir dosya bulunamad\u0131\u011f\u0131nda uygun bir hata mesaj\u0131 g\u00f6stermek veya yetkisiz eri\u015fimi \u00f6nlemek gereklidir.<\/p>\n<p><strong>Hata Y\u00f6netimi:<\/strong>  <code class=\"language-\">try-except<\/code> bloklar\u0131 kullanarak olas\u0131 hatalar\u0131 yakalayabilir ve uygun bir \u015fekilde yan\u0131t verebilirsiniz.<\/p>\n<p><strong>G\u00fcvenlik:<\/strong>  Basit HTTP sunucular\u0131 g\u00fcvenlik a\u00e7\u0131s\u0131ndan riskli olabilir.  \u00dcretim ortamlar\u0131nda kullanmadan \u00f6nce, g\u00fcvenlik a\u00e7\u0131klar\u0131n\u0131 gidermek i\u00e7in gerekli \u00f6nlemleri almal\u0131s\u0131n\u0131z.<\/p>\n<p><strong>5.  Daha Geli\u015fmi\u015f \u00d6zellikler: Dinamik \u0130\u00e7erik Olu\u015fturma (\u0130leri D\u00fczey)<\/strong><\/p>\n<p><code class=\"language-\">http.server<\/code> mod\u00fcl\u00fc statik dosyalar i\u00e7in uygundur, ancak dinamik i\u00e7erik \u00fcretmek i\u00e7in daha geli\u015fmi\u015f k\u00fct\u00fcphaneler kullanman\u0131z gerekir.  <code class=\"language-\">Flask<\/code> veya <code class=\"language-\">Django<\/code> gibi framework&#8217;ler, dinamik web uygulamalar\u0131 olu\u015fturmak i\u00e7in idealdir.  Bu framework&#8217;ler, veritaban\u0131 entegrasyonu, \u015fablonlama motorlar\u0131 ve g\u00fcvenlik \u00f6zellikleri gibi bir\u00e7ok avantaj sunar.<\/p>\n<p><strong>6. Performans Analizi ve Optimizasyonu (\u0130leri D\u00fczey)<\/strong><\/p>\n<p>Sunucunun performans\u0131n\u0131 analiz etmek ve iyile\u015ftirmek i\u00e7in \u00e7e\u015fitli ara\u00e7lar kullanabilirsiniz.  <code class=\"language-\">cProfile<\/code> mod\u00fcl\u00fc, kodun hangi b\u00f6l\u00fcmlerinin en fazla zaman ald\u0131\u011f\u0131n\u0131 belirlemenize yard\u0131mc\u0131 olur.  Ayr\u0131ca, sunucuyu farkl\u0131 y\u00fck seviyelerinde test ederek performans\u0131n\u0131 de\u011ferlendirebilirsiniz.  Performans optimizasyonu i\u00e7in, asenkron programlama, \u00f6nbellekleme ve veritaban\u0131 optimizasyonu gibi teknikleri kullanabilirsiniz.<\/p>\n<p><strong>7. Edge Case&#8217;ler ve Hata Ay\u0131klama (\u0130leri D\u00fczey)<\/strong><\/p>\n<p>Herhangi bir yaz\u0131l\u0131mda oldu\u011fu gibi, HTTP sunucular\u0131nda da beklenmedik durumlar (edge case&#8217;ler) ortaya \u00e7\u0131kabilir.  Bu durumlar\u0131 ele almak ve hatalar\u0131 ay\u0131klamak i\u00e7in, detayl\u0131 hata kay\u0131tlar\u0131 tutmak ve test senaryolar\u0131 olu\u015fturmak \u00f6nemlidir.  Ayr\u0131ca, farkl\u0131 taray\u0131c\u0131lar ve i\u015fletim sistemlerinde sunucunun davran\u0131\u015f\u0131n\u0131 test etmek de gereklidir.<\/p>\n<p><strong>8.  Ger\u00e7ek D\u00fcnya Vaka Analizi:  Bir Statik Web Sitesi Sunucusu<\/strong><\/p>\n<p>K\u00fc\u00e7\u00fck bir i\u015fletmenin statik bir web sitesini bar\u0131nd\u0131rmas\u0131 gerekti\u011fini varsayal\u0131m.  Bu durumda, <code class=\"language-\">http.server<\/code> mod\u00fcl\u00fc kullan\u0131larak basit bir sunucu olu\u015fturulabilir.  Web sitesinin t\u00fcm dosyalar\u0131 (HTML, CSS, JavaScript, resimler) belirli bir dizine yerle\u015ftirilir ve sunucu bu dizini sunacak \u015fekilde yap\u0131land\u0131r\u0131l\u0131r.  G\u00fcvenlik i\u00e7in, sunucu yaln\u0131zca g\u00fcvenli bir a\u011f i\u00e7inde \u00e7al\u0131\u015ft\u0131r\u0131labilir veya bir ters proxy sunucusu kullan\u0131labilir.  Performans optimizasyonu i\u00e7in, sunucunun \u00f6nbelle\u011fe alma \u00f6zelliklerini kullanabilir veya daha performansl\u0131 bir k\u00fct\u00fcphane kullanabilirsiniz.  Bu durumda, <code class=\"language-\">http.server<\/code> mod\u00fcl\u00fcn\u00fcn basitli\u011fi ve kolay kurulumu b\u00fcy\u00fck bir avantaj olacakt\u0131r.<\/p>\n<p><strong>Sonu\u00e7<\/strong><\/p>\n<p>Python ile basit bir HTTP sunucusu olu\u015fturmak, <code class=\"language-\">http.server<\/code> mod\u00fcl\u00fc sayesinde olduk\u00e7a kolayd\u0131r.  Ancak, ger\u00e7ek d\u00fcnya uygulamalar\u0131 i\u00e7in, performans optimizasyonu, hata y\u00f6netimi ve g\u00fcvenlik \u00f6nlemleri almak \u00f6nemlidir.  Daha karma\u015f\u0131k uygulamalar i\u00e7in, <code class=\"language-\">Flask<\/code> veya <code class=\"language-\">Django<\/code> gibi framework&#8217;leri kullanman\u0131z daha uygun olabilir.  Bu makalede ele ald\u0131\u011f\u0131m\u0131z konular, Python ile HTTP sunucusu geli\u015ftirme konusunda sa\u011flam bir temel olu\u015fturman\u0131za yard\u0131mc\u0131 olacakt\u0131r.  Daha fazla bilgi ve ileri seviye teknikler i\u00e7in [fatihsoysal.com](https:\/\/fatihsoysal.com) sitesini ziyaret edebilirsiniz.<\/p>\n<p><strong>S\u0131k\u00e7a Sorulan Sorular:<\/strong><\/p>\n<p>1. <strong>Sunucuyu nas\u0131l durdururum?<\/strong>  Terminal penceresinde Ctrl+C tu\u015flar\u0131na bas\u0131n.<br \/>\n2. <strong>Farkl\u0131 bir port numaras\u0131 nas\u0131l kullan\u0131r\u0131m?<\/strong>  <code class=\"language-\">PORT<\/code> de\u011fi\u015fkenini istedi\u011finiz port numaras\u0131yla de\u011fi\u015ftirin.<br \/>\n3. <strong>Sunucuyu ba\u015fka bir dizini sunacak \u015fekilde nas\u0131l yap\u0131land\u0131r\u0131r\u0131m?<\/strong>  <code class=\"language-\">MyHandler<\/code> s\u0131n\u0131f\u0131ndaki <code class=\"language-\">directory<\/code> parametresini de\u011fi\u015ftirin.<br \/>\n4. <strong>Daha performansl\u0131 bir HTTP sunucusu nas\u0131l olu\u015ftururum?<\/strong>  <code class=\"language-\">aiohttp<\/code> gibi asenkron k\u00fct\u00fcphaneleri kullan\u0131n.<br \/>\n5. <strong>G\u00fcvenlik a\u00e7\u0131klar\u0131n\u0131 nas\u0131l \u00f6nlerim?<\/strong>  Sunucuyu g\u00fcvenli bir a\u011fda \u00e7al\u0131\u015ft\u0131r\u0131n, ters proxy kullan\u0131n ve g\u00fcvenlik a\u00e7\u0131klar\u0131n\u0131 d\u00fczenli olarak kontrol edin.<\/p>\n<p>Yazar: Fatih Soysal<\/p>\n","protected":false},"excerpt":{"rendered":"# Python ile Basit HTTP Sunucusu Olu\u015fturma Web geli\u015ftirme d\u00fcnyas\u0131nda, h\u0131zl\u0131 prototipleme veya k\u00fc\u00e7\u00fck \u00f6l\u00e7ekli uygulamalar i\u00e7in basit&hellip;","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1403],"tags":[],"class_list":{"0":"post-29736","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-python","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Python&#039;da Basit Bir HTTP Sunucusu Nas\u0131l Olu\u015fturulur<\/title>\n<meta name=\"description\" content=\"Hi\u00e7bir etiketi bulunamad\u0131.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/pythonda-basit-bir-http-sunucusu-nasil-olusturulur\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Python&#039;da Basit Bir HTTP Sunucusu Nas\u0131l Olu\u015fturulur\" \/>\n<meta property=\"og:description\" content=\"Hi\u00e7bir etiketi bulunamad\u0131.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/pythonda-basit-bir-http-sunucusu-nasil-olusturulur\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-09-19T01:20:44+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/pythonda-basit-bir-http-sunucusu-nasil-olusturulur\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/pythonda-basit-bir-http-sunucusu-nasil-olusturulur\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Python&#8217;da Basit Bir HTTP Sunucusu Nas\u0131l Olu\u015fturulur\",\"datePublished\":\"2025-09-19T01:20:44+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/pythonda-basit-bir-http-sunucusu-nasil-olusturulur\/\"},\"wordCount\":1196,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"Python\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/pythonda-basit-bir-http-sunucusu-nasil-olusturulur\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/pythonda-basit-bir-http-sunucusu-nasil-olusturulur\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/pythonda-basit-bir-http-sunucusu-nasil-olusturulur\/\",\"name\":\"Python'da Basit Bir HTTP Sunucusu Nas\u0131l Olu\u015fturulur\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-09-19T01:20:44+00:00\",\"description\":\"Hi\u00e7bir etiketi bulunamad\u0131.\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/pythonda-basit-bir-http-sunucusu-nasil-olusturulur\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/pythonda-basit-bir-http-sunucusu-nasil-olusturulur\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/pythonda-basit-bir-http-sunucusu-nasil-olusturulur\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Python&#8217;da Basit Bir HTTP Sunucusu Nas\u0131l Olu\u015fturulur\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Python'da Basit Bir HTTP Sunucusu Nas\u0131l Olu\u015fturulur","description":"Hi\u00e7bir etiketi bulunamad\u0131.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/pythonda-basit-bir-http-sunucusu-nasil-olusturulur\/","og_locale":"tr_TR","og_type":"article","og_title":"Python'da Basit Bir HTTP Sunucusu Nas\u0131l Olu\u015fturulur","og_description":"Hi\u00e7bir etiketi bulunamad\u0131.","og_url":"https:\/\/fatihsoysal.com\/blog\/pythonda-basit-bir-http-sunucusu-nasil-olusturulur\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-09-19T01:20:44+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"7 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/pythonda-basit-bir-http-sunucusu-nasil-olusturulur\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/pythonda-basit-bir-http-sunucusu-nasil-olusturulur\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Python&#8217;da Basit Bir HTTP Sunucusu Nas\u0131l Olu\u015fturulur","datePublished":"2025-09-19T01:20:44+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/pythonda-basit-bir-http-sunucusu-nasil-olusturulur\/"},"wordCount":1196,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["Python"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/pythonda-basit-bir-http-sunucusu-nasil-olusturulur\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/pythonda-basit-bir-http-sunucusu-nasil-olusturulur\/","url":"https:\/\/fatihsoysal.com\/blog\/pythonda-basit-bir-http-sunucusu-nasil-olusturulur\/","name":"Python'da Basit Bir HTTP Sunucusu Nas\u0131l Olu\u015fturulur","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-09-19T01:20:44+00:00","description":"Hi\u00e7bir etiketi bulunamad\u0131.","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/pythonda-basit-bir-http-sunucusu-nasil-olusturulur\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/pythonda-basit-bir-http-sunucusu-nasil-olusturulur\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/pythonda-basit-bir-http-sunucusu-nasil-olusturulur\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Python&#8217;da Basit Bir HTTP Sunucusu Nas\u0131l Olu\u015fturulur"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/29736","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=29736"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/29736\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=29736"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=29736"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=29736"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}