{"id":12795,"date":"2017-10-09T09:55:58","date_gmt":"2017-10-09T07:55:58","guid":{"rendered":"http:\/\/www.devapp.it\/wordpress\/?p=12795"},"modified":"2017-10-09T09:55:58","modified_gmt":"2017-10-09T07:55:58","slug":"server-web-sempre-pronto-grazie-a-python","status":"publish","type":"post","link":"https:\/\/www.devapp.it\/wordpress\/server-web-sempre-pronto-grazie-a-python\/","title":{"rendered":"Server web sempre pronto grazie a Python"},"content":{"rendered":"<p>A volte pu\u00f2 capitare di avere bisogno di un server web, per condividere contenuti o solo per provare funzionalit\u00e0 dell&#8217;applicazione in sviluppo. Approntarne uno in locale non \u00e8 una pratica particolarmente complicata, ma pu\u00f2 risultare dispendioso in termini di tempo, comprendendo scaricamento del necessario ed installazione, pur accontentandosi delle configurazioni di default. Un&#8217;alternativa rapida se si ha a disposizione il linguaggio Python &#8211; di serie, in molte distribuzioni Linux &#8211; pu\u00f2 essere l&#8217;avvio di un server HTTP gi\u00e0 incluso in esso.<br \/>\nCon il comando:<\/p>\n<pre class=\"lang:sh decode:true\">python -m SimpleHTTPServer<\/pre>\n<p>vedremo il cursore del terminale rimanere in sospeso &#8211; segno che qualcosa \u00e8 stato avviato &#8211; e l&#8217;apparizione del messaggio <em>&#8220;Serving HTTP on 0.0.0.0 port 8000 &#8230;&#8221;\u00a0<\/em><br \/>\nche <strong>segnala l&#8217;avvio di un server HTTP sulla porta 8000\/TCP<\/strong>.<br \/>\nInvocando l&#8217;indirizzo <em>http:\/\/localhost:8000<\/em> vedremo elencato il contenuto della cartella da cui \u00e8 stato lanciato il server (nel nostro caso, tre file ed una cartella).<\/p>\n<p><a href=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2017\/01\/python-http-server-web-simplehttpserver_img_02.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-12798\" src=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2017\/01\/python-http-server-web-simplehttpserver_img_02-300x203.jpg\" alt=\"\" width=\"300\" height=\"203\" srcset=\"https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2017\/01\/python-http-server-web-simplehttpserver_img_02-300x203.jpg 300w, https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2017\/01\/python-http-server-web-simplehttpserver_img_02.jpg 624w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>Il filesystem sar\u00e0 navigabile ed i file accessibili come link.\u00a0Inoltre, tutto ci\u00f2 che faremo verr\u00e0 menzionato in messaggi di log che saranno prodotti nella finestra in cui abbiamo<br \/>\nlanciato il server.<\/p>\n<p><a href=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2017\/01\/python-http-server-web-simplehttpserver_img_04.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-12797\" src=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2017\/01\/python-http-server-web-simplehttpserver_img_04-300x67.jpg\" alt=\"\" width=\"300\" height=\"67\" srcset=\"https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2017\/01\/python-http-server-web-simplehttpserver_img_04-300x67.jpg 300w, https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2017\/01\/python-http-server-web-simplehttpserver_img_04-642x146.jpg 642w, https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2017\/01\/python-http-server-web-simplehttpserver_img_04.jpg 656w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><br \/>\nIn alternativa, si pu\u00f2 scegliere un&#8217;altra porta TCP in cui mettere il servizio in ascolto:<\/p>\n<pre class=\"lang:java decode:true\">python -m SimpleHTTPServer 7654<\/pre>\n<p>Il messaggio in output si adeguer\u00e0 di conseguenza offrendo il contenuto<br \/>\n<em>&#8220;Serving HTTP on 0.0.0.0 port 7654 &#8230;&#8221;.<\/em><\/p>\n<p>Per esigenze che non richiedono infrastrutture particolari, SimpleHTTPServer di Python pu\u00f2 essere una soluzione molto rapida (oltre tutto, non richiede la conoscenza del linguaggio) e ci far\u00e0 pentire di tutte le volte in cui, solo per provare lo scaricamento di un file via HTTP, abbiamo installato un intero server web Apache nella nostra macchina di sviluppo.<\/p>\n<p>Alla prossima!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A volte pu\u00f2 capitare di avere bisogno di un server web, per condividere contenuti o solo per&#8230;<\/p>\n","protected":false},"author":561,"featured_media":13284,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[481],"tags":[1527,1667,1876,1875],"class_list":["post-12795","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-risorse-utili","tag-http","tag-python","tag-server-http","tag-server-web"],"acf":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts\/12795","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/users\/561"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/comments?post=12795"}],"version-history":[{"count":5,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts\/12795\/revisions"}],"predecessor-version":[{"id":13285,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts\/12795\/revisions\/13285"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/media\/13284"}],"wp:attachment":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/media?parent=12795"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/categories?post=12795"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/tags?post=12795"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}