在Windows 7/10或Ubuntu上可以通过python2.x或python3.x来快速搭建一个简单的HTTP服务器。
如果python为2.x,则可执行:$ python -m SimpleHTTPServer 或 $ python2 -m SimpleHTTPServer
如果python为3.x,则可执行:$ python -m http.server 或 $ python3 -m http.server
如下图所示,windows上执行:
若不指定端口,则默认均为8000,也可以更改默认端口,即在以上命令后加端口号,如使用端口号为9000,则执行:$ python3 -m http.server 9000
如下图所示,ubuntu上执行:
使用SimpleHTTPServer或http.server模块可以将任何目录转换为简单的HTTP Web服务器。python2附带的SimpleHTTPServer模块或python3的http.server模块是一个简单的HTTP服务器,它提供标准的GET和HEAD请求处理程序,仅支持两种HTTP方法GET和HEAD。内置HTTP服务器的一个优点是你不必安装和配置任何东西,你仅需在本地已安装了python2.x或python3.x即可。它是通过网络共享文件的绝佳工具。
如果在python3.x中,使用python -m SimpleHTTPServer尝试启动HTTP服务,那么将会报错,No module named SimpleHTTPServer,这是因为在python3中它已与http.server模块合并。
可在浏览器中通过输入127.0.0.1:8000来显示当前目录下的内容,或者输入本机ip地址,如10.1.86.124:8000,如果打不开,可能是由于代理或防火墙导致,如下图所示:
假如我在windows上启动了端口号为8000的HTTP服务,那么我在Ubuntu上就可以通过wget命令将windows上启动HTTP服务所在目录的文件即C:\Users\spring目录下的文件拷贝到ubuntu上,如下图所示:
在ubunt上,通过Ctrl+z并不能终止HTTP服务,如果再次执行同样的命令,会提示” Address already in use”的error,如下图所示:
解决方法:如果确定使用的端口号,可通过执行”lsof -i :8000”来查看哪个进程在监听此端口,然后再通过”kill -9 2897”命令kill掉该进程,如下图所示:
如果不确定使用的端口号,可通过执行”ps -fA | grep python”命令,然后再通过”kill -9 2849”命令kill掉该进程,如下图所示: