From 04806fc2c5d0badb6183b51abf8550d9db36171e Mon Sep 17 00:00:00 2001 From: ValKmjolnir Date: Wed, 8 Jun 2022 20:01:22 +0800 Subject: [PATCH] :memo: update test/httptest.nas --- pic/favicon.ico | Bin 0 -> 16958 bytes test/httptest.nas | 42 ++++++++++++++++++++++++++++++++---------- 2 files changed, 32 insertions(+), 10 deletions(-) create mode 100644 pic/favicon.ico diff --git a/pic/favicon.ico b/pic/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..d9774811d838773159db3285538fa460fc3a9423 GIT binary patch literal 16958 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 literal 0 HcmV?d00001 diff --git a/test/httptest.nas b/test/httptest.nas index 4933f4b..2d37c5d 100644 --- a/test/httptest.nas +++ b/test/httptest.nas @@ -4,13 +4,9 @@ var sd=socket.socket(socket.AF_INET,socket.SOCK_STREAM,socket.IPPROTO_IP); socket.bind(sd,"127.0.0.1",8080); socket.listen(sd,1); -var client=socket.accept(sd); -println("request ip: ",client.ip); -var rv=socket.recv(client.sd,1024); -println(rv.str); -socket.send(client.sd,"Http/1.1 200 OK - - +var httpheader="Http/1.1 200 OK\n\n"; +var httptail="\n"; +var index=" nasal-http-test-web @@ -27,8 +23,34 @@ socket.send(client.sd,"Http/1.1 200 OK Now this project uses MIT license(2021/5/4). Edit it if you want, use this project to learn or create more interesting things(But don't forget me XD). - +"; +var notfound=" + + nasal-http-test-web + + + + 404 NOT FOUND! + + +"; -"); -socket.closesocket(client.sd); +while(1){ + var client=socket.accept(sd); + var recieve_data=socket.recv(client.sd,1024); + if(!recieve_data.size){ + println("[",client.ip,"] request connection closed"); + break; + } + var first=split("\n",recieve_data.str)[0]; + var (type,path)=split(" ",first)[0,1]; + println("[",client.ip,"] request ",type," [",path,"]"); + if(path=="/") + socket.send(client.sd,httpheader~index~httptail); + elsif(path=="/favicon.ico") + socket.send(client.sd,httpheader~io.fin("pic/favicon.ico")~httptail); + else + socket.send(client.sd,httpheader~notfound~httptail); + socket.closesocket(client.sd); +} socket.closesocket(sd); \ No newline at end of file