diff --git a/pic/favicon.ico b/pic/favicon.ico new file mode 100644 index 0000000..d977481 Binary files /dev/null and b/pic/favicon.ico differ 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