{"id":115346,"date":"2023-11-24T13:27:34","date_gmt":"2023-11-24T16:27:34","guid":{"rendered":"https:\/\/fluency.io\/br\/blog\/python-http-server-como-criar-um-servidor-http-em-python\/"},"modified":"2023-11-24T13:27:34","modified_gmt":"2023-11-24T16:27:34","slug":"python-http-server-como-criar-um-servidor-http-em-python","status":"publish","type":"post","link":"https:\/\/homolog.fluency.io\/br\/blog\/python-http-server-como-criar-um-servidor-http-em-python\/","title":{"rendered":"Python HTTP Server: Como criar um servidor HTTP em Python"},"content":{"rendered":"<p><body><\/p>\n<h1>O que \u00e9 um servidor HTTP em Python?<\/h1>\n<p>Um servidor HTTP em Python \u00e9 uma aplica\u00e7\u00e3o que permite a comunica\u00e7\u00e3o entre clientes e servidores por meio do protocolo HTTP (Hypertext Transfer Protocol). Com o uso da linguagem de programa\u00e7\u00e3o Python, \u00e9 poss\u00edvel criar um servidor HTTP personalizado, capaz de receber e responder a requisi\u00e7\u00f5es dos clientes.<\/p>\n<h2>Como criar um servidor HTTP em Python?<\/h2>\n<p>Para criar um servidor HTTP em Python, podemos utilizar a biblioteca <code>http.server<\/code>. Primeiramente, \u00e9 necess\u00e1rio importar essa biblioteca no nosso c\u00f3digo. Em seguida, podemos criar uma classe que herda da classe <code>http.server.BaseHTTPRequestHandler<\/code> e implementar os m\u00e9todos necess\u00e1rios para lidar com as requisi\u00e7\u00f5es HTTP.<\/p>\n<p>Um exemplo de c\u00f3digo para criar um servidor HTTP b\u00e1sico em Python utilizando a biblioteca <code>http.server<\/code> pode ser visto abaixo:<\/p>\n<pre><code>import http.server\n\nclass MeuServidor(http.server.BaseHTTPRequestHandler):\n    def do_GET(self):\n        self.send_response(200)\n        self.send_header('Content-type', 'text\/html')\n        self.end_headers()\n        self.wfile.write(b'<h1>Ol\u00e1, mundo!<\/h1>')\n    \n    def do_POST(self):\n        # Implemente aqui a l\u00f3gica para lidar com requisi\u00e7\u00f5es POST\n        pass\n\nservidor = http.server.HTTPServer(('localhost', 8000), MeuServidor)\nservidor.serve_forever()\n<\/code><\/pre>\n<p>Nesse exemplo, temos uma classe <code>MeuServidor<\/code> que herda da classe <code>http.server.BaseHTTPRequestHandler<\/code>. Essa classe implementa os m\u00e9todos <code>do_GET<\/code> e <code>do_POST<\/code>, que s\u00e3o respons\u00e1veis por lidar com as requisi\u00e7\u00f5es GET e POST, respectivamente. No m\u00e9todo <code>do_GET<\/code>, estamos enviando uma resposta HTML simples para o cliente.<\/p>\n<h2>Principais funcionalidades do servidor HTTP em Python<\/h2>\n<ul>\n<li>\n<h3>Roteamento de URL:<\/h3>\n<p> Com um servidor HTTP em Python, \u00e9 poss\u00edvel definir rotas para diferentes URLs e direcionar as requisi\u00e7\u00f5es para o c\u00f3digo correspondente. Isso permite a cria\u00e7\u00e3o de aplicativos web com diferentes p\u00e1ginas e funcionalidades.<\/li>\n<li>\n<h3>Manipula\u00e7\u00e3o de par\u00e2metros:<\/h3>\n<p> \u00c9 poss\u00edvel extrair par\u00e2metros das requisi\u00e7\u00f5es HTTP, como os valores enviados em formul\u00e1rios HTML ou os par\u00e2metros passados na URL. Com isso, \u00e9 poss\u00edvel implementar l\u00f3gicas personalizadas com base nos par\u00e2metros recebidos.<\/li>\n<li>\n<h3>Manipula\u00e7\u00e3o de arquivos:<\/h3>\n<p> Um servidor HTTP em Python permite a leitura e escrita de arquivos no servidor. Isso possibilita o envio de arquivos est\u00e1ticos, como imagens, CSS e JavaScript, para os clientes, al\u00e9m de permitir a cria\u00e7\u00e3o e manipula\u00e7\u00e3o de arquivos dinamicamente.<\/li>\n<li>\n<h3>Autentica\u00e7\u00e3o e autoriza\u00e7\u00e3o:<\/h3>\n<p> Com o uso de bibliotecas adicionais, \u00e9 poss\u00edvel implementar sistemas de autentica\u00e7\u00e3o e autoriza\u00e7\u00e3o em um servidor HTTP em Python. Isso permite restringir o acesso a determinadas p\u00e1ginas ou recursos apenas para usu\u00e1rios autenticados e autorizados.<\/li>\n<\/ul>\n<h2>Exemplos pr\u00e1ticos de utiliza\u00e7\u00e3o do servidor HTTP em Python<\/h2>\n<ol>\n<li>\n<h3>Cria\u00e7\u00e3o de um sistema de blog:<\/h3>\n<p> Com um servidor HTTP em Python, \u00e9 poss\u00edvel criar um sistema de blog completo, onde os usu\u00e1rios podem criar, visualizar e editar postagens. O servidor pode ser respons\u00e1vel por receber as requisi\u00e7\u00f5es dos usu\u00e1rios, processar as a\u00e7\u00f5es solicitadas e armazenar as postagens em um banco de dados.<\/li>\n<li>\n<h3>Desenvolvimento de uma API REST:<\/h3>\n<p> Um servidor HTTP em Python pode ser utilizado para desenvolver uma API REST, que permite a comunica\u00e7\u00e3o entre diferentes sistemas por meio de requisi\u00e7\u00f5es HTTP. Essa API pode fornecer acesso a recursos e funcionalidades de um sistema, permitindo a integra\u00e7\u00e3o com outros aplicativos.<\/li>\n<li>\n<h3>Implementa\u00e7\u00e3o de um chat em tempo real:<\/h3>\n<p> Com o uso de bibliotecas adicionais, como o <code>WebSocket<\/code>, \u00e9 poss\u00edvel criar um servidor HTTP em Python capaz de suportar comunica\u00e7\u00e3o em tempo real, como um chat. O servidor pode gerenciar as conex\u00f5es dos usu\u00e1rios e transmitir as mensagens entre os participantes do chat.<\/li>\n<\/ol>\n<p>Conclus\u00e3o<\/p>\n<p>Um servidor HTTP em Python \u00e9 uma ferramenta poderosa para criar aplicativos web personalizados. Com a biblioteca <code>http.server<\/code> e outras bibliotecas adicionais dispon\u00edveis, \u00e9 poss\u00edvel desenvolver servidores HTTP com diversas funcionalidades, desde a cria\u00e7\u00e3o de p\u00e1ginas est\u00e1ticas at\u00e9 a implementa\u00e7\u00e3o de APIs REST e sistemas em tempo real. A flexibilidade e simplicidade do Python tornam a cria\u00e7\u00e3o de servidores HTTP acess\u00edvel a desenvolvedores de todos os n\u00edveis de experi\u00eancia. Experimente criar seu pr\u00f3prio servidor HTTP em Python e explore todas as possibilidades que essa tecnologia oferece.<\/p>\n<h2>A <a target=\"_blank\" href=\"https:\/\/fluency.io\/br\/blog\/cursos\/#ci\u00eancia de dados\/?utm_source=blog\" rel=\"noopener\">Awari<\/a> \u00e9 a melhor plataforma para aprender sobre ci\u00eancia de dados no Brasil.<\/h2>\n<p>Aqui voc\u00ea encontra cursos com aulas ao vivo, mentorias individuais com os melhores profissionais do mercado e suporte de carreira personalizado para dar seu pr\u00f3ximo passo profissional e aprender habilidades como Data Science, Data Analytics, Machine Learning e mais.<\/p>\n<p>J\u00e1 pensou em aprender de maneira individualizada com profissionais que atuam em empresas como Nubank, Amazon e Google? <a target=\"_blank\" href=\"https:\/\/app.fluency.io\/br\/blog\/candidatura?&#038;utm_source=blog&#038;utm_campaign=paragrafofinal\" rel=\"noopener\">Clique aqui<\/a> para se inscrever na Awari e come\u00e7ar a construir agora mesmo o pr\u00f3ximo cap\u00edtulo da sua carreira em dados.<\/p>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Neste artigo, vamos explorar o que \u00e9 um servidor HTTP em Python e como criar um servidor HTTP personalizado utilizando a biblioteca `http.server`. Vamos discutir as principais funcionalidades de um servidor HTTP em Python, como roteamento de URL, manipula\u00e7\u00e3o de par\u00e2metros, manipula\u00e7\u00e3o de arquivos e autentica\u00e7\u00e3o e autoriza\u00e7\u00e3o. Al\u00e9m disso, apresentaremos exemplos pr\u00e1ticos de utiliza\u00e7\u00e3o do servidor HTTP em Python, como a cria\u00e7\u00e3o de um sistema de blog, o desenvolvimento de uma API REST e a implementa\u00e7\u00e3o de um chat em tempo real. Com a flexibilidade e simplicidade do Python, a cria\u00e7\u00e3o de servidores HTTP personalizados se torna acess\u00edvel a desenvolvedores de todos os n\u00edveis de experi\u00eancia. Experimente criar seu pr\u00f3prio servidor HTTP em Python e explore todas as possibilidades que essa tecnologia oferece.<\/p>\n","protected":false},"author":9,"featured_media":27563,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":[186],"meta":{"inline_featured_image":false,"footnotes":""},"categories":[229],"tags":[],"trilha":[],"class_list":["post-115346","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-skills","format-artigos"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Python HTTP Server: Como criar um servidor HTTP em Python - Fluency.io Brasil<\/title>\n<meta name=\"description\" content=\"Neste artigo, vamos explorar o que \u00e9 um servidor HTTP em Python e como criar um servidor HTTP personalizado utilizando a biblioteca `http.server`. Vamos di...\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fluency.io\/br\/blog\/python-http-server-como-criar-um-servidor-http-em-python\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Python HTTP Server: Como criar um servidor HTTP em Python - Fluency.io Brasil\" \/>\n<meta property=\"og:description\" content=\"Neste artigo, vamos explorar o que \u00e9 um servidor HTTP em Python e como criar um servidor HTTP personalizado utilizando a biblioteca `http.server`. Vamos di...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fluency.io\/br\/blog\/python-http-server-como-criar-um-servidor-http-em-python\/\" \/>\n<meta property=\"og:site_name\" content=\"Fluency.io Brasil\" \/>\n<meta property=\"article:published_time\" content=\"2023-11-24T16:27:34+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"kaue\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. tempo de leitura\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fluency.io\/br\/blog\/python-http-server-como-criar-um-servidor-http-em-python\/\",\"url\":\"https:\/\/fluency.io\/br\/blog\/python-http-server-como-criar-um-servidor-http-em-python\/\",\"name\":\"Python HTTP Server: Como criar um servidor HTTP em Python - Fluency.io Brasil\",\"isPartOf\":{\"@id\":\"https:\/\/fluency.io\/br\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/fluency.io\/br\/blog\/python-http-server-como-criar-um-servidor-http-em-python\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/fluency.io\/br\/blog\/python-http-server-como-criar-um-servidor-http-em-python\/#primaryimage\"},\"thumbnailUrl\":\"\",\"datePublished\":\"2023-11-24T16:27:34+00:00\",\"author\":{\"@id\":\"https:\/\/fluency.io\/br\/#\/schema\/person\/7b3b2b50ba17b7f2ad0cce0a40bfa00a\"},\"description\":\"Neste artigo, vamos explorar o que \u00e9 um servidor HTTP em Python e como criar um servidor HTTP personalizado utilizando a biblioteca `http.server`. Vamos di...\",\"breadcrumb\":{\"@id\":\"https:\/\/fluency.io\/br\/blog\/python-http-server-como-criar-um-servidor-http-em-python\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fluency.io\/br\/blog\/python-http-server-como-criar-um-servidor-http-em-python\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/fluency.io\/br\/blog\/python-http-server-como-criar-um-servidor-http-em-python\/#primaryimage\",\"url\":\"\",\"contentUrl\":\"\",\"width\":1027,\"height\":420},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fluency.io\/br\/blog\/python-http-server-como-criar-um-servidor-http-em-python\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"In\u00edcio\",\"item\":\"https:\/\/homolog.fluency.io\/br\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Python HTTP Server: Como criar um servidor HTTP em Python\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fluency.io\/br\/#website\",\"url\":\"https:\/\/fluency.io\/br\/\",\"name\":\"Fluency.io Brasil\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fluency.io\/br\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/fluency.io\/br\/#\/schema\/person\/7b3b2b50ba17b7f2ad0cce0a40bfa00a\",\"name\":\"kaue\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/fluency.io\/br\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/bdd3958fa53019cfd8f789c0a49a730e7ba40a1d20cb42c9ced7646285842479?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/bdd3958fa53019cfd8f789c0a49a730e7ba40a1d20cb42c9ced7646285842479?s=96&d=mm&r=g\",\"caption\":\"kaue\"},\"url\":\"https:\/\/homolog.fluency.io\/br\/author\/kaue\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Python HTTP Server: Como criar um servidor HTTP em Python - Fluency.io Brasil","description":"Neste artigo, vamos explorar o que \u00e9 um servidor HTTP em Python e como criar um servidor HTTP personalizado utilizando a biblioteca `http.server`. Vamos di...","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:\/\/fluency.io\/br\/blog\/python-http-server-como-criar-um-servidor-http-em-python\/","og_locale":"pt_BR","og_type":"article","og_title":"Python HTTP Server: Como criar um servidor HTTP em Python - Fluency.io Brasil","og_description":"Neste artigo, vamos explorar o que \u00e9 um servidor HTTP em Python e como criar um servidor HTTP personalizado utilizando a biblioteca `http.server`. Vamos di...","og_url":"https:\/\/fluency.io\/br\/blog\/python-http-server-como-criar-um-servidor-http-em-python\/","og_site_name":"Fluency.io Brasil","article_published_time":"2023-11-24T16:27:34+00:00","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"kaue","Est. tempo de leitura":"4 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/fluency.io\/br\/blog\/python-http-server-como-criar-um-servidor-http-em-python\/","url":"https:\/\/fluency.io\/br\/blog\/python-http-server-como-criar-um-servidor-http-em-python\/","name":"Python HTTP Server: Como criar um servidor HTTP em Python - Fluency.io Brasil","isPartOf":{"@id":"https:\/\/fluency.io\/br\/#website"},"primaryImageOfPage":{"@id":"https:\/\/fluency.io\/br\/blog\/python-http-server-como-criar-um-servidor-http-em-python\/#primaryimage"},"image":{"@id":"https:\/\/fluency.io\/br\/blog\/python-http-server-como-criar-um-servidor-http-em-python\/#primaryimage"},"thumbnailUrl":"","datePublished":"2023-11-24T16:27:34+00:00","author":{"@id":"https:\/\/fluency.io\/br\/#\/schema\/person\/7b3b2b50ba17b7f2ad0cce0a40bfa00a"},"description":"Neste artigo, vamos explorar o que \u00e9 um servidor HTTP em Python e como criar um servidor HTTP personalizado utilizando a biblioteca `http.server`. Vamos di...","breadcrumb":{"@id":"https:\/\/fluency.io\/br\/blog\/python-http-server-como-criar-um-servidor-http-em-python\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fluency.io\/br\/blog\/python-http-server-como-criar-um-servidor-http-em-python\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/fluency.io\/br\/blog\/python-http-server-como-criar-um-servidor-http-em-python\/#primaryimage","url":"","contentUrl":"","width":1027,"height":420},{"@type":"BreadcrumbList","@id":"https:\/\/fluency.io\/br\/blog\/python-http-server-como-criar-um-servidor-http-em-python\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"In\u00edcio","item":"https:\/\/homolog.fluency.io\/br\/"},{"@type":"ListItem","position":2,"name":"Python HTTP Server: Como criar um servidor HTTP em Python"}]},{"@type":"WebSite","@id":"https:\/\/fluency.io\/br\/#website","url":"https:\/\/fluency.io\/br\/","name":"Fluency.io Brasil","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fluency.io\/br\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-BR"},{"@type":"Person","@id":"https:\/\/fluency.io\/br\/#\/schema\/person\/7b3b2b50ba17b7f2ad0cce0a40bfa00a","name":"kaue","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/fluency.io\/br\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/bdd3958fa53019cfd8f789c0a49a730e7ba40a1d20cb42c9ced7646285842479?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/bdd3958fa53019cfd8f789c0a49a730e7ba40a1d20cb42c9ced7646285842479?s=96&d=mm&r=g","caption":"kaue"},"url":"https:\/\/homolog.fluency.io\/br\/author\/kaue\/"}]}},"_links":{"self":[{"href":"https:\/\/homolog.fluency.io\/br\/wp-json\/wp\/v2\/posts\/115346","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/homolog.fluency.io\/br\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/homolog.fluency.io\/br\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/homolog.fluency.io\/br\/wp-json\/wp\/v2\/users\/9"}],"replies":[{"embeddable":true,"href":"https:\/\/homolog.fluency.io\/br\/wp-json\/wp\/v2\/comments?post=115346"}],"version-history":[{"count":0,"href":"https:\/\/homolog.fluency.io\/br\/wp-json\/wp\/v2\/posts\/115346\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/homolog.fluency.io\/br\/wp-json\/"}],"wp:attachment":[{"href":"https:\/\/homolog.fluency.io\/br\/wp-json\/wp\/v2\/media?parent=115346"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/homolog.fluency.io\/br\/wp-json\/wp\/v2\/categories?post=115346"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/homolog.fluency.io\/br\/wp-json\/wp\/v2\/tags?post=115346"},{"taxonomy":"format","embeddable":true,"href":"https:\/\/homolog.fluency.io\/br\/wp-json\/wp\/v2\/format?post=115346"},{"taxonomy":"trilha","embeddable":true,"href":"https:\/\/homolog.fluency.io\/br\/wp-json\/wp\/v2\/trilha?post=115346"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}