{"id":18040,"date":"2023-05-30T10:40:38","date_gmt":"2023-05-30T10:40:38","guid":{"rendered":"https:\/\/soloweb.com.br\/blog\/?p=18040"},"modified":"2023-06-01T09:28:17","modified_gmt":"2023-06-01T09:28:17","slug":"iniciar-servidor-http-com-python-em-uma-linha","status":"publish","type":"post","link":"https:\/\/soloweb.com.br\/blog\/2023\/05\/30\/iniciar-servidor-http-com-python-em-uma-linha\/","title":{"rendered":"Iniciar servidor HTTP com Python em uma linha"},"content":{"rendered":"\n<p>No post de hoje vamos mostrar como iniciar um servi\u00e7o de servidor HTTP com Python em poucas linhas de c\u00f3digo. Geralmente para este servi\u00e7os precisamos instalar e configurar servi\u00e7os de servidor web completo como Apache, NGINX e outros. Mas voc\u00ea pode aproveitar um servidor HTTP b\u00e1sico incorporado ao Python para evitar todo esse trabalho.<\/p>\n\n\n\n<p>O servidor HTTP do Python pode ser \u00fatil quando voc\u00ea deseja compartilhar rapidamente v\u00e1rios arquivos com alunos em uma sala de aula ou qualquer outra pessoa conectada \u00e0 mesma rede que voc\u00ea. Talvez voc\u00ea precise hospedar recursos est\u00e1ticos baixados da Internet para desenvolvimento off-line de um aplicativo PyScript ou ativar um servidor Web local para experimentar o protocolo HTTP em seu terminal. Voc\u00ea tamb\u00e9m pode ter um script Python que deve ser acionado remotamente.<\/p>\n\n\n\n<p><em>Caso precise de um servidor com um ambiente Python entre em contato conosco.<\/em><\/p>\n\n\n\n<p>Voc\u00ea pode fazer tudo isso com um \u00fanico comando, gra\u00e7as ao <strong>http.server<\/strong> m\u00f3dulo que acompanha a biblioteca padr\u00e3o do Python!<\/p>\n\n\n\n<p><strong>Como iniciar o Python http.server na linha de comando<\/strong><\/p>\n\n\n\n<p>Abra um prompt de comando ou janela de terminal e navegue at\u00e9 o diret\u00f3rio onde deseja iniciar o servidor HTTP. Como alternativa, na maioria dos sistemas operacionais modernos, voc\u00ea pode clicar com o bot\u00e3o direito do mouse em uma determinada pasta e optar por abrir o terminal l\u00e1. Quando estiver no local correto, digite e execute o seguinte comando:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ python3 -m http.server<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"779\" height=\"103\" src=\"https:\/\/soloweb.com.br\/blog\/wp-content\/uploads\/2023\/05\/image-19.png\" alt=\"\" class=\"wp-image-18041\" srcset=\"https:\/\/soloweb.com.br\/blog\/wp-content\/uploads\/2023\/05\/image-19.png 779w, https:\/\/soloweb.com.br\/blog\/wp-content\/uploads\/2023\/05\/image-19-300x40.png 300w, https:\/\/soloweb.com.br\/blog\/wp-content\/uploads\/2023\/05\/image-19-768x102.png 768w, https:\/\/soloweb.com.br\/blog\/wp-content\/uploads\/2023\/05\/image-19-150x20.png 150w\" sizes=\"auto, (max-width: 779px) 100vw, 779px\" \/><\/figure>\n\n\n\n<p>E com seu servidor HTTP j\u00e1 estar\u00e1 dispon\u00edvel, listando o conte\u00fado do diret\u00f3rio que iniciou o servi\u00e7o, isso \u00e9 o funcionamento padr\u00e3o, mas vamos ver mais na frente que podermos tamb\u00e9m alterar isso:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"443\" height=\"228\" src=\"https:\/\/soloweb.com.br\/blog\/wp-content\/uploads\/2023\/05\/image-20.png\" alt=\"\" class=\"wp-image-18043\" srcset=\"https:\/\/soloweb.com.br\/blog\/wp-content\/uploads\/2023\/05\/image-20.png 443w, https:\/\/soloweb.com.br\/blog\/wp-content\/uploads\/2023\/05\/image-20-300x154.png 300w, https:\/\/soloweb.com.br\/blog\/wp-content\/uploads\/2023\/05\/image-20-150x77.png 150w\" sizes=\"auto, (max-width: 443px) 100vw, 443px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-embed is-type-wp-embed is-provider-soloweb-tecnologia wp-block-embed-soloweb-tecnologia\"><div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"wp-embedded-content\" data-secret=\"vfCj9Uk71X\"><a href=\"https:\/\/soloweb.com.br\/blog\/2022\/11\/22\/como-baixar-videos-do-youtube-com-python\/\">Como baixar v\u00eddeos do YouTube com Python<\/a><\/blockquote><iframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; clip: rect(1px, 1px, 1px, 1px);\" title=\"&#8220;Como baixar v\u00eddeos do YouTube com Python&#8221; &#8212; SOLOWEB Tecnologia\" src=\"https:\/\/soloweb.com.br\/blog\/2022\/11\/22\/como-baixar-videos-do-youtube-com-python\/embed\/#?secret=OR0PA4t52k#?secret=vfCj9Uk71X\" data-secret=\"vfCj9Uk71X\" width=\"600\" height=\"338\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe>\n<\/div><figcaption class=\"wp-element-caption\">Veja tamb\u00e9m<\/figcaption><\/figure>\n\n\n\n<p>E poder\u00e1 monitorar as requisi\u00e7\u00f5es que seu servidor est\u00e1 recebendo pelo terminal:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"885\" height=\"226\" src=\"https:\/\/soloweb.com.br\/blog\/wp-content\/uploads\/2023\/05\/image-21.png\" alt=\"\" class=\"wp-image-18044\" srcset=\"https:\/\/soloweb.com.br\/blog\/wp-content\/uploads\/2023\/05\/image-21.png 885w, https:\/\/soloweb.com.br\/blog\/wp-content\/uploads\/2023\/05\/image-21-300x77.png 300w, https:\/\/soloweb.com.br\/blog\/wp-content\/uploads\/2023\/05\/image-21-768x196.png 768w, https:\/\/soloweb.com.br\/blog\/wp-content\/uploads\/2023\/05\/image-21-150x38.png 150w\" sizes=\"auto, (max-width: 885px) 100vw, 885px\" \/><\/figure>\n\n\n\n<p>O Python inicia um servidor HTTP na porta 8000 e o vincula a todas as interfaces de rede dispon\u00edveis em sua m\u00e1quina, que s\u00e3o indicadas com um endere\u00e7o IP especial . Dependendo da prefer\u00eancia do seu sistema operacional, pode optar por se vincular ao endere\u00e7o IPv4 0.0.0.0 ou ao endere\u00e7o IPv6 ::. De qualquer forma, qualquer pessoa na sua rede pode usar o endere\u00e7o IP do seu computador para acessar o servidor HTTP que voc\u00ea acabou de iniciar.<\/p>\n\n\n\n<p>Se o n\u00famero da porta padr\u00e3o, 8000, n\u00e3o estiver dispon\u00edvel, voc\u00ea ver\u00e1 o seguinte erro ao tentar iniciar o servidor:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ python3 -m http.server\nTraceback (most recent call last):\n  ...\nOSError: &#91;Errno 98] Address already in use<\/code><\/pre>\n\n\n\n<p>Isso significa que outro programa est\u00e1 ocupando essa porta no momento. Para corrigir esse problema, voc\u00ea pode encontrar o programa ofensivo e interromp\u00ea-lo \u00e0 for\u00e7a. No entanto, como isso nem sempre \u00e9 desej\u00e1vel, voc\u00ea tamb\u00e9m pode atribuir uma porta diferente ao seu servidor. Para definir explicitamente o n\u00famero da porta em que seu servidor HTTP deve estar escutando, anexe-o como um par\u00e2metro:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ python3 -m http.server 8080<\/code><\/pre>\n\n\n\n<p>Por motivos de seguran\u00e7a, voc\u00ea pode restringir o acesso ao seu servidor HTTP executando-o em um endere\u00e7o pertencente \u00e0 interface de loopback virtual ou localhost, com o qual ningu\u00e9m, exceto voc\u00ea, poder\u00e1 falar. Voc\u00ea pode vincular uma interface de rede espec\u00edfica ou endere\u00e7o IP usando a op\u00e7\u00e3o -b :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ python3 -m http.server -b 127.0.0.42 8080<\/code><\/pre>\n\n\n\n<p>Nesse caso, voc\u00ea combina a -b op\u00e7\u00e3o, que vincula um endere\u00e7o espec\u00edfico na interface de loopback, com um argumento posicional determinando o n\u00famero da porta. Esses par\u00e2metros garantem que seu servidor s\u00f3 seja acess\u00edvel a partir da m\u00e1quina local.<\/p>\n\n\n\n<p>Por padr\u00e3o, Python serve os arquivos localizados em seu diret\u00f3rio de trabalho atual onde voc\u00ea executou o comando para iniciar o servidor. Portanto, quando voc\u00ea visitar o endere\u00e7o residencial ( \/ ) do seu servidor em um navegador da Web, ver\u00e1 todos os arquivos e pastas no diret\u00f3rio correspondente.<\/p>\n\n\n\n<p>Voc\u00ea pode instruir o servidor a associar seu endere\u00e7o residencial ( \/ ) a um diret\u00f3rio completamente diferente especificando o par\u00e2metro -d :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ python3 -m http.server -d ~\/projetos\/<\/code><\/pre>\n\n\n\n<p>Agora, o servidor listar\u00e1 as imagens em uma das subpastas do seu diret\u00f3rio projetos. Seu shell expande o caractere til ( ~ ) no diret\u00f3rio inicial do usu\u00e1rio atual. Observe que voc\u00ea pode usar caminhos relativos e absolutos para indicar um diret\u00f3rio para servir em HTTP.<\/p>\n\n\n\n<p>A op\u00e7\u00e3o -d pode ser sua \u00fanica escolha em alguns casos. Por exemplo, se voc\u00ea tentar iniciar o servidor HTTP em um diret\u00f3rio onde instalou seu interpretador Python, poder\u00e1 enfrentar o seguinte problema:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ cd \/usr\/lib\/python3.8\/\n$ python3 -m http.server\nTraceback (most recent call last):\n  ...\nAssertionError: SRE module mismatch<\/code><\/pre>\n\n\n\n<p>Python importa e executa o m\u00f3dulo http.server de um arquivo local encontrado no diret\u00f3rio atual. \u00c9 assim que as regras de importa\u00e7\u00e3o padr\u00e3o funcionam no Python. Os arquivos locais sempre t\u00eam preced\u00eancia sobre os m\u00f3dulos com o mesmo nome empacotados com o interpretador.<\/p>\n\n\n\n<p><strong>Executar um script remotamente por meio da Common Gateway Interface (CGI)<\/strong><\/p>\n\n\n\n<p>Nesta se\u00e7\u00e3o, voc\u00ea aprender\u00e1 como executar um script remotamente por meio da Common Gateway Interface (CGI) , uma tecnologia mais antiga que foi amplamente substitu\u00edda por padr\u00f5es mais novos. Embora o CGI n\u00e3o seja amplamente usado no desenvolvimento da Web moderno, entender como ele funciona pode fornecer informa\u00e7\u00f5es valiosas sobre a evolu\u00e7\u00e3o das tecnologias da Web e pode at\u00e9 mesmo ajud\u00e1-lo ao trabalhar com sistemas legados.<\/p>\n\n\n\n<p>A Common Gateway Interface (CGI) era um padr\u00e3o popular para implementar aplicativos da Web com linguagens de script como PHP, Perl ou Python muito antes de as especifica\u00e7\u00f5es WSGI e ASGI serem definidas para unificar as estruturas da Web do Python. Esse mecanismo permitiu que os servidores da Web produzissem conte\u00fado din\u00e2mico , processassem formul\u00e1rios HTML ou autenticassem usu\u00e1rios nos primeiros dias da Internet.<\/p>\n\n\n\n<p>Ao contr\u00e1rio dos frameworks web, que se concentram exclusivamente em uma linguagem e podem se tornar bastante complexos, o CGI era uma tecnologia relativamente simples que definia uma interface comum . Contanto que seu programa pudesse ler dados da entrada padr\u00e3o ( stdin ), imprimir na sa\u00edda padr\u00e3o ( stdout ) e acessar vari\u00e1veis \u200b\u200bde ambiente , voc\u00ea poderia us\u00e1-lo como um script CGI.<\/p>\n\n\n\n<p>Primeiro, crie uma subpasta especial dedicada a armazenar scripts CGI no diret\u00f3rio de trabalho atual:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ mkdir cgi-bin<\/code><\/pre>\n\n\n\n<p>O servidor da Web n\u00e3o permitir\u00e1 que voc\u00ea navegue pelo conte\u00fado desta pasta, mas permitir\u00e1 que voc\u00ea acesse os arquivos individuais, desde que saiba seus nomes espec\u00edficos.<\/p>\n\n\n\n<p>Em seguida, crie um script Python chamado, digamos, hello.py dentro desse diret\u00f3rio. Ele geralmente deve imprimir uma resposta bruta, incluindo os cabe\u00e7alhos HTTP, na sa\u00edda padr\u00e3o. Voc\u00ea expandir\u00e1 seu c\u00f3digo-fonte um pouco mais tarde, mas, por enquanto, deixe o script retornar uma mensagem Hello, World!<\/p>\n\n\n\n<p>No arquivo hello.py coloque um c\u00f3digo simples como este:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#!\/usr\/bin\/env python3\n\nprint(\n    \"\"\"\\\nContent-Type: text\/html\n\n&lt;!DOCTYPE html&gt;\n&lt;html&gt;\n&lt;body&gt;\n&lt;h1&gt;Hello, World!&lt;\/h1&gt;\n&lt;\/body&gt;\n&lt;\/html&gt;\"\"\"\n)<\/code><\/pre>\n\n\n\n<p>\u00c9 essencialmente uma \u00fanica chamada para a fun\u00e7\u00e3o print() , que gera os cabe\u00e7alhos HTTP seguidos por uma linha em branco e um corpo de mensagem. Lembre-se de incluir um shebang ( #! ) em seu script se estiver no macOS ou Linux. Caso contr\u00e1rio, o servidor web n\u00e3o conseguir\u00e1 executar o arquivo corretamente, pensando que \u00e9 um shell script.<\/p>\n\n\n\n<p>Al\u00e9m disso, em sistemas operacionais do tipo Unix, torne o script execut\u00e1vel alterando o modo de arquivo correspondente:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ chmod +x cgi-bin\/hello.py<\/code><\/pre>\n\n\n\n<p>Isso permitir\u00e1 que o servidor da Web execute o script e colete sua sa\u00edda.<\/p>\n\n\n\n<p>Agora voc\u00ea pode iniciar o servidor com o &#8211;cgi:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ python3 -m http.server --cgi<\/code><\/pre>\n\n\n\n<p>Antes de fazer isso, vale a pena certificar-se de que o diret\u00f3rio de trabalho atual inclui uma cgi-bin\/subpasta.<\/p>\n\n\n\n<p>Por fim, navegue em seu navegador da Web at\u00e9 http:\/\/0.0.0.0:8000\/cgi-bin\/hello.py, alterando o nome do host e o n\u00famero da porta, se necess\u00e1rio. Contanto que tudo corra bem, seu navegador deve renderizar uma parte da marca\u00e7\u00e3o HTML , que seu script Python gerou dinamicamente.<\/p>\n\n\n\n<p>Observe que, se voc\u00ea estiver no Windows, poder\u00e1 se safar n\u00e3o especificando a linha shebang, que \u00e9 espec\u00edfica do Unix, al\u00e9m de definir o arquivo como execut\u00e1vel. Quando voc\u00ea instala o Python no Windows, o sistema operacional associa automaticamente a extens\u00e3o do arquivo .py ao interpretador Python. No entanto, se o seu script CGI tiver uma extens\u00e3o diferente, voc\u00ea receber\u00e1 um erro ao tentar acess\u00e1-lo no Windows.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>No post de hoje vamos mostrar como iniciar um servi\u00e7o de servidor HTTP com Python em poucas linhas de c\u00f3digo.<\/p>\n","protected":false},"author":4,"featured_media":18045,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"colormag_page_container_layout":"default_layout","colormag_page_sidebar_layout":"default_layout","_editorskit_title_hidden":false,"_editorskit_reading_time":0,"_editorskit_is_block_options_detached":false,"_editorskit_block_options_position":"{}","footnotes":""},"categories":[106,302,303],"tags":[402,257],"class_list":["post-18040","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-desenvolvimento","category-destaque-principal","category-destaque-secundario","tag-cgi","tag-python"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Iniciar servidor HTTP com Python em uma linha - SOLOWEB Tecnologia<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/soloweb.com.br\/blog\/2023\/05\/30\/iniciar-servidor-http-com-python-em-uma-linha\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Iniciar servidor HTTP com Python em uma linha - SOLOWEB Tecnologia\" \/>\n<meta property=\"og:description\" content=\"No post de hoje vamos mostrar como iniciar um servi\u00e7o de servidor HTTP com Python em poucas linhas de c\u00f3digo.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/soloweb.com.br\/blog\/2023\/05\/30\/iniciar-servidor-http-com-python-em-uma-linha\/\" \/>\n<meta property=\"og:site_name\" content=\"SOLOWEB Tecnologia\" \/>\n<meta property=\"article:published_time\" content=\"2023-05-30T10:40:38+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-06-01T09:28:17+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/soloweb.com.br\/blog\/wp-content\/uploads\/2023\/05\/WhatsApp-Image-2023-05-30-at-06.48.31.jpeg\" \/>\n\t<meta property=\"og:image:width\" content=\"940\" \/>\n\t<meta property=\"og:image:height\" content=\"787\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Carlos Rolim\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Carlos Rolim\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. tempo de leitura\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/soloweb.com.br\\\/blog\\\/2023\\\/05\\\/30\\\/iniciar-servidor-http-com-python-em-uma-linha\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/soloweb.com.br\\\/blog\\\/2023\\\/05\\\/30\\\/iniciar-servidor-http-com-python-em-uma-linha\\\/\"},\"author\":{\"name\":\"Carlos Rolim\",\"@id\":\"https:\\\/\\\/soloweb.com.br\\\/blog\\\/#\\\/schema\\\/person\\\/b10ff5bc260b411c2d82b19fad8ae3f1\"},\"headline\":\"Iniciar servidor HTTP com Python em uma linha\",\"datePublished\":\"2023-05-30T10:40:38+00:00\",\"dateModified\":\"2023-06-01T09:28:17+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/soloweb.com.br\\\/blog\\\/2023\\\/05\\\/30\\\/iniciar-servidor-http-com-python-em-uma-linha\\\/\"},\"wordCount\":1352,\"publisher\":{\"@id\":\"https:\\\/\\\/soloweb.com.br\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/soloweb.com.br\\\/blog\\\/2023\\\/05\\\/30\\\/iniciar-servidor-http-com-python-em-uma-linha\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/soloweb.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/05\\\/WhatsApp-Image-2023-05-30-at-06.48.31.jpeg\",\"keywords\":[\"cgi\",\"python\"],\"articleSection\":[\"Desenvolvimento\",\"Destaque Principal\",\"Destaque Secund\u00e1rio\"],\"inLanguage\":\"pt-BR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/soloweb.com.br\\\/blog\\\/2023\\\/05\\\/30\\\/iniciar-servidor-http-com-python-em-uma-linha\\\/\",\"url\":\"https:\\\/\\\/soloweb.com.br\\\/blog\\\/2023\\\/05\\\/30\\\/iniciar-servidor-http-com-python-em-uma-linha\\\/\",\"name\":\"Iniciar servidor HTTP com Python em uma linha - SOLOWEB Tecnologia\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/soloweb.com.br\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/soloweb.com.br\\\/blog\\\/2023\\\/05\\\/30\\\/iniciar-servidor-http-com-python-em-uma-linha\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/soloweb.com.br\\\/blog\\\/2023\\\/05\\\/30\\\/iniciar-servidor-http-com-python-em-uma-linha\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/soloweb.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/05\\\/WhatsApp-Image-2023-05-30-at-06.48.31.jpeg\",\"datePublished\":\"2023-05-30T10:40:38+00:00\",\"dateModified\":\"2023-06-01T09:28:17+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/soloweb.com.br\\\/blog\\\/2023\\\/05\\\/30\\\/iniciar-servidor-http-com-python-em-uma-linha\\\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/soloweb.com.br\\\/blog\\\/2023\\\/05\\\/30\\\/iniciar-servidor-http-com-python-em-uma-linha\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\\\/\\\/soloweb.com.br\\\/blog\\\/2023\\\/05\\\/30\\\/iniciar-servidor-http-com-python-em-uma-linha\\\/#primaryimage\",\"url\":\"https:\\\/\\\/soloweb.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/05\\\/WhatsApp-Image-2023-05-30-at-06.48.31.jpeg\",\"contentUrl\":\"https:\\\/\\\/soloweb.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/05\\\/WhatsApp-Image-2023-05-30-at-06.48.31.jpeg\",\"width\":940,\"height\":787},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/soloweb.com.br\\\/blog\\\/2023\\\/05\\\/30\\\/iniciar-servidor-http-com-python-em-uma-linha\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"In\u00edcio\",\"item\":\"https:\\\/\\\/soloweb.com.br\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Iniciar servidor HTTP com Python em uma linha\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/soloweb.com.br\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/soloweb.com.br\\\/blog\\\/\",\"name\":\"SOLOWEB Tecnologia\",\"description\":\"SOLOWEB Tecnologia\",\"publisher\":{\"@id\":\"https:\\\/\\\/soloweb.com.br\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/soloweb.com.br\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/soloweb.com.br\\\/blog\\\/#organization\",\"name\":\"SOLOWEB Tecnologia\",\"url\":\"https:\\\/\\\/soloweb.com.br\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\\\/\\\/soloweb.com.br\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/soloweb.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/04\\\/cropped-solo.png\",\"contentUrl\":\"https:\\\/\\\/soloweb.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/04\\\/cropped-solo.png\",\"width\":341,\"height\":94,\"caption\":\"SOLOWEB Tecnologia\"},\"image\":{\"@id\":\"https:\\\/\\\/soloweb.com.br\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/soloweb.com.br\\\/blog\\\/#\\\/schema\\\/person\\\/b10ff5bc260b411c2d82b19fad8ae3f1\",\"name\":\"Carlos Rolim\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\\\/\\\/soloweb.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/01\\\/avatar_user_4_1674993909-96x96.png\",\"url\":\"https:\\\/\\\/soloweb.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/01\\\/avatar_user_4_1674993909-96x96.png\",\"contentUrl\":\"https:\\\/\\\/soloweb.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/01\\\/avatar_user_4_1674993909-96x96.png\",\"caption\":\"Carlos Rolim\"},\"sameAs\":[\"http:\\\/\\\/carlosrolim.com\"],\"url\":\"https:\\\/\\\/soloweb.com.br\\\/blog\\\/author\\\/carlos\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Iniciar servidor HTTP com Python em uma linha - SOLOWEB Tecnologia","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:\/\/soloweb.com.br\/blog\/2023\/05\/30\/iniciar-servidor-http-com-python-em-uma-linha\/","og_locale":"pt_BR","og_type":"article","og_title":"Iniciar servidor HTTP com Python em uma linha - SOLOWEB Tecnologia","og_description":"No post de hoje vamos mostrar como iniciar um servi\u00e7o de servidor HTTP com Python em poucas linhas de c\u00f3digo.","og_url":"https:\/\/soloweb.com.br\/blog\/2023\/05\/30\/iniciar-servidor-http-com-python-em-uma-linha\/","og_site_name":"SOLOWEB Tecnologia","article_published_time":"2023-05-30T10:40:38+00:00","article_modified_time":"2023-06-01T09:28:17+00:00","og_image":[{"width":940,"height":787,"url":"https:\/\/soloweb.com.br\/blog\/wp-content\/uploads\/2023\/05\/WhatsApp-Image-2023-05-30-at-06.48.31.jpeg","type":"image\/jpeg"}],"author":"Carlos Rolim","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"Carlos Rolim","Est. tempo de leitura":"8 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/soloweb.com.br\/blog\/2023\/05\/30\/iniciar-servidor-http-com-python-em-uma-linha\/#article","isPartOf":{"@id":"https:\/\/soloweb.com.br\/blog\/2023\/05\/30\/iniciar-servidor-http-com-python-em-uma-linha\/"},"author":{"name":"Carlos Rolim","@id":"https:\/\/soloweb.com.br\/blog\/#\/schema\/person\/b10ff5bc260b411c2d82b19fad8ae3f1"},"headline":"Iniciar servidor HTTP com Python em uma linha","datePublished":"2023-05-30T10:40:38+00:00","dateModified":"2023-06-01T09:28:17+00:00","mainEntityOfPage":{"@id":"https:\/\/soloweb.com.br\/blog\/2023\/05\/30\/iniciar-servidor-http-com-python-em-uma-linha\/"},"wordCount":1352,"publisher":{"@id":"https:\/\/soloweb.com.br\/blog\/#organization"},"image":{"@id":"https:\/\/soloweb.com.br\/blog\/2023\/05\/30\/iniciar-servidor-http-com-python-em-uma-linha\/#primaryimage"},"thumbnailUrl":"https:\/\/soloweb.com.br\/blog\/wp-content\/uploads\/2023\/05\/WhatsApp-Image-2023-05-30-at-06.48.31.jpeg","keywords":["cgi","python"],"articleSection":["Desenvolvimento","Destaque Principal","Destaque Secund\u00e1rio"],"inLanguage":"pt-BR"},{"@type":"WebPage","@id":"https:\/\/soloweb.com.br\/blog\/2023\/05\/30\/iniciar-servidor-http-com-python-em-uma-linha\/","url":"https:\/\/soloweb.com.br\/blog\/2023\/05\/30\/iniciar-servidor-http-com-python-em-uma-linha\/","name":"Iniciar servidor HTTP com Python em uma linha - SOLOWEB Tecnologia","isPartOf":{"@id":"https:\/\/soloweb.com.br\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/soloweb.com.br\/blog\/2023\/05\/30\/iniciar-servidor-http-com-python-em-uma-linha\/#primaryimage"},"image":{"@id":"https:\/\/soloweb.com.br\/blog\/2023\/05\/30\/iniciar-servidor-http-com-python-em-uma-linha\/#primaryimage"},"thumbnailUrl":"https:\/\/soloweb.com.br\/blog\/wp-content\/uploads\/2023\/05\/WhatsApp-Image-2023-05-30-at-06.48.31.jpeg","datePublished":"2023-05-30T10:40:38+00:00","dateModified":"2023-06-01T09:28:17+00:00","breadcrumb":{"@id":"https:\/\/soloweb.com.br\/blog\/2023\/05\/30\/iniciar-servidor-http-com-python-em-uma-linha\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/soloweb.com.br\/blog\/2023\/05\/30\/iniciar-servidor-http-com-python-em-uma-linha\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/soloweb.com.br\/blog\/2023\/05\/30\/iniciar-servidor-http-com-python-em-uma-linha\/#primaryimage","url":"https:\/\/soloweb.com.br\/blog\/wp-content\/uploads\/2023\/05\/WhatsApp-Image-2023-05-30-at-06.48.31.jpeg","contentUrl":"https:\/\/soloweb.com.br\/blog\/wp-content\/uploads\/2023\/05\/WhatsApp-Image-2023-05-30-at-06.48.31.jpeg","width":940,"height":787},{"@type":"BreadcrumbList","@id":"https:\/\/soloweb.com.br\/blog\/2023\/05\/30\/iniciar-servidor-http-com-python-em-uma-linha\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"In\u00edcio","item":"https:\/\/soloweb.com.br\/blog\/"},{"@type":"ListItem","position":2,"name":"Iniciar servidor HTTP com Python em uma linha"}]},{"@type":"WebSite","@id":"https:\/\/soloweb.com.br\/blog\/#website","url":"https:\/\/soloweb.com.br\/blog\/","name":"SOLOWEB Tecnologia","description":"SOLOWEB Tecnologia","publisher":{"@id":"https:\/\/soloweb.com.br\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/soloweb.com.br\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-BR"},{"@type":"Organization","@id":"https:\/\/soloweb.com.br\/blog\/#organization","name":"SOLOWEB Tecnologia","url":"https:\/\/soloweb.com.br\/blog\/","logo":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/soloweb.com.br\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/soloweb.com.br\/blog\/wp-content\/uploads\/2022\/04\/cropped-solo.png","contentUrl":"https:\/\/soloweb.com.br\/blog\/wp-content\/uploads\/2022\/04\/cropped-solo.png","width":341,"height":94,"caption":"SOLOWEB Tecnologia"},"image":{"@id":"https:\/\/soloweb.com.br\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/soloweb.com.br\/blog\/#\/schema\/person\/b10ff5bc260b411c2d82b19fad8ae3f1","name":"Carlos Rolim","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/soloweb.com.br\/blog\/wp-content\/uploads\/2023\/01\/avatar_user_4_1674993909-96x96.png","url":"https:\/\/soloweb.com.br\/blog\/wp-content\/uploads\/2023\/01\/avatar_user_4_1674993909-96x96.png","contentUrl":"https:\/\/soloweb.com.br\/blog\/wp-content\/uploads\/2023\/01\/avatar_user_4_1674993909-96x96.png","caption":"Carlos Rolim"},"sameAs":["http:\/\/carlosrolim.com"],"url":"https:\/\/soloweb.com.br\/blog\/author\/carlos\/"}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/soloweb.com.br\/blog\/wp-json\/wp\/v2\/posts\/18040","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/soloweb.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/soloweb.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/soloweb.com.br\/blog\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/soloweb.com.br\/blog\/wp-json\/wp\/v2\/comments?post=18040"}],"version-history":[{"count":2,"href":"https:\/\/soloweb.com.br\/blog\/wp-json\/wp\/v2\/posts\/18040\/revisions"}],"predecessor-version":[{"id":18047,"href":"https:\/\/soloweb.com.br\/blog\/wp-json\/wp\/v2\/posts\/18040\/revisions\/18047"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/soloweb.com.br\/blog\/wp-json\/wp\/v2\/media\/18045"}],"wp:attachment":[{"href":"https:\/\/soloweb.com.br\/blog\/wp-json\/wp\/v2\/media?parent=18040"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/soloweb.com.br\/blog\/wp-json\/wp\/v2\/categories?post=18040"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/soloweb.com.br\/blog\/wp-json\/wp\/v2\/tags?post=18040"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}