首页 » 网站建设 » iisexpress与php技巧_Oneline单行Web做事各个编程措辞都有

iisexpress与php技巧_Oneline单行Web做事各个编程措辞都有

访客 2024-11-08 0

扫一扫用手机浏览

文章目录 [+]

Docker版本

先来一个基于容器的,这是一个真正容器版本的Apache做事器,根本镜像包为httpd:2.4-alpine:

iisexpress与php技巧_Oneline单行Web做事各个编程措辞都有

docker run -d -p 8000:80 --name CC-web -v "$PWD":/usr/local/apache2/htdocs/ httpd:2.4-alpine

默认便是当前文件夹的列表页面,启动时候把稳安全哦。

iisexpress与php技巧_Oneline单行Web做事各个编程措辞都有
(图片来自网络侵删)

Python

Python 2和3版本差异较大,其内置的http做事亦有所差异。

2.x版本:

python -m SimpleHTTPServer 8000

3.x版本:

python -m http.server 8000

除了措辞自带模块,还有大量的第三方模块也可以支持。

twisted (Python运用)

twisted -n web -p 8000 --path .

或者:

python -c 'from twisted.web.server import Site; from twisted.web.static import File; from twisted.internet import reactor; reactor.listenTCP(8000, Site(File("."))); reactor.run()'Ruby措辞

ruby -rwebrick -e'WEBrick::HTTPServer.new(:Port => 8000, :DocumentRoot => Dir.pwd).start'

同样Ruby也有第三方http模块可以支持。

adsf(Ruby运用):

gem install adsfadsf -p 8000Sinatra (Ruby运用)

gem install sinatraruby -rsinatra -e'set :public_folder, "."; set :port, 8000'Perl措辞

cpan HTTP::Server::Brickperl -MHTTP::Server::Brick -e '$s=HTTP::Server::Brick->new(port=>8000); $s->mount("/"=>{path=>"."}); $s->start'Plack (Perl运用)

cpan Plackplackup -MPlack::App::Directory -e 'Plack::App::Directory->new(root=>".");' -p 8000Mojolicious (Perl运用)

cpan Mojolicious::Liteperl -MMojolicious::Lite -MCwd -e 'app->static->paths->[0]=getcwd; app->start' daemon -l http://:8000Node.js

npm install -g http-serverhttp-server -p 8000node-static(Node.js):

npm install -g node-staticstatic -p 8000PHP

PHP在大于5.4的版本中内置了http做事,可以直接用-S选项启动。

php -S 127.0.0.1:8000Erlang措辞

Erlang措辞实现比较麻烦一点,但是也能在单行中实现。

erl -s inets -eval 'inets:start(httpd,[{server_name,"NAME"},{document_root, "."},{server_root, "."},{port, 8000},{mime_types,[{"html","text/html"},{"htm","text/html"},{"js","text/javascript"},{"css","text/css"},{"gif","image/gif"},{"jpg","image/jpeg"},{"jpeg","image/jpeg"},{"png","image/png"}]}]).'Golang

Golang措辞无法直接用一句话实现,须要自己写个main或者用第三方的模块。

main.goimport "net/http"func main() {http.ListenAndServe(":8000", http.FileServer(http.Dir(".")))}

然后启动即可,也非常大略,但是性能很好。

go run main.go

可以用golang运用,比如caddy,它支持的功能就比较强大了,但是可以大略化利用。

caddy

yum install yum-plugin-copryum copr enable @caddy/caddyyum install caddycaddy -port 8000Rust

Rust措辞须要用https模块,由于Rust核心模块中险些不带任何运用模块,须要先用cargo安装:

cargo install https

然后直接就可以启动。

httpR措辞

R措辞下也很大略,用自带的servr做事器模块就可以。
Serve是R措辞与其他措辞的通信(TCP/IP)接口,客户端由多种措辞实现,像C/C++, Java等。

Rscript -e 'servr::httd()' -p8000dart措辞

dart措辞自带dhttpd可以实现:

pub global activate dhttpd[if not in PATH: pub global run] dhttpdCrystal措辞

利用http/server和eval措辞启动:

crystal eval 'require "http/server"; HTTP::Server.new([HTTP::StaticFileHandler.new(".")]).listen(8000)'OCaml措辞

oCaml措辞须要用cohttp和async模块实现:

opam install cohttp asynccohttp-server-async

或者cohttp,lwt和ssl模块也可以。

opam install cohttp lwt sslcohttp-server-lwtTcl

Tcl措辞须要版本8.6 ,Tcllib 1.19 更新版本才能支持,实现也较麻烦:

echo 'package require httpd 4; ::httpd::server create HTTPD port 8000 myaddr 127.0.0.1 doc_root [pwd]; vwait forever' | tclshJava

Java措辞基本上便是可以算是不支持,但是在JDK 1.7以上版本可以用折衷办法,而且只支持一个用户上岸,不能算是这个合格的Web做事。

echo -e 'import java.net.;import java.nio.file.;public class M{public static void main(String[] args)throws Exception{byte[]b=new byte[16777215];ServerSocket s=new ServerSocket(8000);for(;;)try{Socket c=s.accept();c.getInputStream().read(b);c.getOutputStream().write(("HTTP/1.1 200 OK\\r\\n\\r\\n"+new String(Files.readAllBytes(Paths.get(new String(b).split(" ")[1].substring(1))))).getBytes());c.getOutputStream().flush();c.close();}catch(Exception e){}}}'>M.java;javac M.java;java M.NET Core

Dotnet core用户可以用dotnet-serve模块,先安装:

dotnet tool install --global dotnet-servedotnet serve -p 8000C

C措辞写的web做事器,可以用webfs:

webfsd -F -p 8000汇编

汇编措辞的版本的asmttpd(github/nemasu/asmttpd),之前文章中提到过,这可能最小版本的Web做事器了,大小只有6k,不过麻雀虽小功能很全,支持多线程,多文档种类,多Http状态和头支持。

asmttpd . 8000IIS Express:

IIS命令也强行凑一波热闹:

C:\> "C:\Program Files (x86)\IIS Express\iisexpress.exe" /path:C:\MyWeb /port:8000Gawk

Oneline运用怎么能少得了awk呢?虽然比较麻烦:

gawk '@load"filefuncs";@load"readfile";func send(s,e,d,t,b){print"HTTP/1.0 "s" "e|&S;print"Content-Length: "b|&S;print"Content-Type: "t|&S;print d|&S;close(S);}func cf(x){split(x,y,"/");for(z in y){print "FOUND "y[z];if(y[z]==".."){return 0;}}return 1;}func mt(f){c="file -b --mime-type "f;r="";while((c|getline z)>0){r=r z;}close(c);return r;}BEGIN{if(ARGV[1]!=""){if(chdir(ARGV[1])){print "Failed to chdir to "ARGV[1];exit;}ARGC=1;}RS=ORS="\r\n";while(1){S="/inet/tcp/8080/0/0";while((S|&getline l)>0){split(l,f," ");if(f[1]=="GET"){p=substr(f[2],2)}if(p==""){p="index.html"}stat(p,s);if(cf(p)&&s["type"]=="file"){m=mt(p);o=readfile(p);send(200,"OK",o,m,s["size"]);break;}n="<html>Not Found</html>";send(404,"Not Found",n,"text/html"RS,length(n));break;}}}'PowerShell

PowerShell表示虽然只是途经,但是不愿意错过。

Hso=New-Object Net.HttpListener;$Hso.Prefixes.Add("http://+:8000/");$Hso.Start();While ($Hso.IsListening){$HC=$Hso.GetContext();$HRes=$HC.Response;$HRes.Headers.Add("Content-Type","text/plain");$Buf=[Text.Encoding]::UTF8.GetBytes((GC (Join-Path $Pwd ($HC.Request).RawUrl)));$HRes.ContentLength64=$Buf.Length;$HRes.OutputStream.Write($Buf,0,$Buf.Length);$HRes.Close()};$Hso.Stop()从cmd启动的PowerShell:

Cmd表示借助孙子PS的邪术,我也可以,虽然啥也看不懂:

PowerShell.exe -nop -enc JABIAHMAbwA9AE4AZQB3AC0ATwBiAGoAZQBjAHQAIABOAGUAdAAuAEgAdAB0AHAATABpAHMAdABlAG4AZQByADsAJABIAHMAbwAuAFAAcgBlAGYAaQB4AGUAcwAuAEEAZABkACgAIgBoAHQAdABwADoALwAvACsAOgA4ADAAMAAwAC8AIgApADsAJABIAHMAbwAuAFMAdABhAHIAdAAoACkAOwBXAGgAaQBsAGUAIAAoACQASABzAG8ALgBJAHMATABpAHMAdABlAG4AaQBuAGcAKQB7ACQASABDAD0AJABIAHMAbwAuAEcAZQB0AEMAbwBuAHQAZQB4AHQAKAApADsAJABIAFIAZQBzAD0AJABIAEMALgBSAGUAcwBwAG8AbgBzAGUAOwAkAEgAUgBlAHMALgBIAGUAYQBkAGUAcgBzAC4AQQBkAGQAKAAiAEMAbwBuAHQAZQBuAHQALQBUAHkAcABlACIALAAiAHQAZQB4AHQALwBwAGwAYQBpAG4AIgApADsAJABCAHUAZgA9AFsAVABlAHgAdAAuAEUAbgBjAG8AZABpAG4AZwBdADoAOgBVAFQARgA4AC4ARwBlAHQAQgB5AHQAZQBzACgAKABHAEMAIAAoAEoAbwBpAG4ALQBQAGEAdABoACAAJABQAHcAZAAgACgAJABIAEMALgBSAGUAcQB1AGUAcwB0ACkALgBSAGEAdwBVAHIAbAApACkAKQA7ACQASABSAGUAcwAuAEMAbwBuAHQAZQBuAHQATABlAG4AZwB0AGgANgA0AD0AJABCAHUAZgAuAEwAZQBuAGcAdABoADsAJABIAFIAZQBzAC4ATwB1AHQAcAB1AHQAUwB0AHIAZQBhAG0ALgBXAHIAaQB0AGUAKAAkAEIAdQBmACwAMAAsACQAQgB1AGYALgBMAGUAbgBnAHQAaAApADsAJABIAFIAZQBzAC4AQwBsAG8AcwBlACgAKQB9ADsAJABIAHMAbwAuAFMAdABvAHAAKAApAA==NC

NC表示我是网络界的瑞士军刀:

while true ; do nc -l 8080 < test.html ; donebusybox

busybox表示,咋啥也不说直接上代码就OK

busybox httpd -f -p 8000

标签:

相关文章

云监控,智慧时代的企业安全守护神

随着互联网技术的飞速发展,云计算逐渐成为企业数字化转型的重要驱动力。在云计算时代,数据安全成为企业关注的焦点。云监控作为一种高效、...

网站建设 2025-01-01 阅读0 评论0

全方位提升网速,介绍网络加速的奥秘

随着互联网的普及,网络已经成为我们生活中不可或缺的一部分。网速慢、网络不稳定等问题时常困扰着我们。如何提高网速呢?本文将从多个角度...

网站建设 2025-01-01 阅读0 评论0