Oneline單行Web服務Web服務,各個程式語言都有
有時候需要臨時啟動要給Web服務,用於臨時訪問或者提供檔案共享等。為此蟲蟲給大家整理了一下常見的單行命令啟動一個Web服務的總結。下面的單行命令,中的每一個都會在當前(或指定的)目錄中執行一個臨時http Web伺服器,監聽8000埠,各個語言版本基本上都已經覆蓋了,如有遺漏請留言告知。
Docker版本
先來一個基於容器的,這是一個真正容器版本的Apache伺服器,基礎映象包為httpd:2。4-alpine:
預設就是當前資料夾的列表頁面,啟動時候注意安全哦。
Python
Python 2和3版本差異較大,其內建的http服務亦有所差異。
2。x版本:
3。x版本:
除了語言自帶模組,還有大量的第三方模組也可以支援。
twisted (Python應用)
或者:
Ruby語言
同樣Ruby也有第三方http模組可以支援。
adsf(Ruby應用):
Sinatra (Ruby應用)
Perl語言
Plack (Perl應用)
Mojolicious (Perl應用)
Node.js
node-static(Node.js):
PHP
PHP在大於5。4的版本中內建了http服務,可以直接用-S選項啟動。
Erlang語言
Erlang語言實現比較麻煩一點,但是也能在單行中實現。
Golang
Golang語言無法直接用一句話實現,需要自己寫個main或者用第三方的模組。
然後啟動即可,也非常簡單,但是效能很好。
可以用golang應用,比如caddy,它支援的功能就比較強大了,但是可以簡單化使用。
caddy
Rust
Rust語言需要用https模組,由於Rust核心模組中幾乎不帶任何應用模組,需要先用cargo安裝:
然後直接就可以啟動。
R語言
R語言下也很簡單,用自帶的servr伺服器模組就可以。Serve是R語言與其他語言的通訊(TCP/IP)介面,客戶端由多種語言實現,像C/C++, Java等。
dart語言
dart語言自帶dhttpd可以實現:
Crystal語言
使用http/server和eval語言啟動:
OCaml語言
oCaml語言需要用cohttp和async模組實現:
或者cohttp,lwt和ssl模組也可以。
Tcl
Tcl語言需要版本8。6 ,Tcllib 1。19 更新版本才能支援,實現也較麻煩:
Java
Java語言基本上就是可以算是不支援,但是在JDK 1。7以上版本可以用折衷辦法,而且只支援一個使用者登陸,不能算是這個合格的Web服務。
.NET Core
dotnet core使用者可以用dotnet-serve模組,先安裝:
C
C語言寫的Web伺服器,可以用webfs:
彙編
組合語言的版本的asmttpd(github/nemasu/asmttpd),之前文章中提到過,這可能最小版本的Web伺服器了,大小隻有6k,不過麻雀雖小功能很全,支援多執行緒,多文件種類,多Http狀態和頭支援。
IIS Express:
IIS命令也強行湊一波熱鬧:
Gawk
Oneline應用怎麼能少得了awk呢?雖然比較麻煩:
PowerShell
PowerShell表示雖然只是路過,但是不願意錯過。
從cmd啟動的PowerShell:
Cmd表示藉助孫子PS的魔法,我也可以,雖然啥也看不懂:
NC
NC表示我是網路界的瑞士軍刀:
busybox
busybox表示,咋啥也不說直接上程式碼就OK