|
| 1 | + |
| 2 | + |
| 3 | + |
| 4 | + var https = require('https'); |
| 5 | + var fs = require('fs'); |
| 6 | + |
| 7 | + var key = fs.readFileSync('key.pem'); |
| 8 | + var cert = fs.readFileSync('cert.pem'); |
| 9 | + var server = https.createServer({key,cert},onrequest).listen(81); |
| 10 | + console.log(`listening 127.0.0.1:81`); |
| 11 | + server.on('secureConnection',socket=>{ |
| 12 | + console.log('*** connection ***'); |
| 13 | + socket.req = ''; |
| 14 | + socket.res = ''; |
| 15 | + |
| 16 | + socket.on('data',data=>{ |
| 17 | + |
| 18 | + socket.req += data.toString(); |
| 19 | + |
| 20 | + }); |
| 21 | + |
| 22 | + var write = socket.write; |
| 23 | + socket.write = function(data,encoding,callback){ |
| 24 | + |
| 25 | + socket.res += data.toString(); |
| 26 | + write.apply(socket,arguments); |
| 27 | + |
| 28 | + }//write |
| 29 | + |
| 30 | + }); |
| 31 | + |
| 32 | + |
| 33 | + function onrequest(req,res){ |
| 34 | + console.log(req.method,req.url); |
| 35 | + res.on('finish',()=>{ |
| 36 | + |
| 37 | + console.log('--- request ---'); |
| 38 | + console.log('['+req.socket.req+']'); |
| 39 | + console.log(); |
| 40 | + console.log('--- response ---'); |
| 41 | + console.log('['+req.socket.res+']'); |
| 42 | + |
| 43 | + }); |
| 44 | + console.log(JSON.stringify(req.headers,null,4)); |
| 45 | + var body = ''; |
| 46 | + req.on('data',data=>body+=data); |
| 47 | + |
| 48 | + req.on('end',()=>{ |
| 49 | + |
| 50 | + if(req.url!='/'){ |
| 51 | + res.writeHead(404).end('not fouund'); |
| 52 | + return; |
| 53 | + } |
| 54 | + |
| 55 | + var csp = `default-src 'self';connect-src 'self';script-src 'self' 'unsafe-inline';`; |
| 56 | + res.writeHead(200,{'content-type':'text/html','content-security-policy':csp}); |
| 57 | + res.end(html) |
| 58 | + |
| 59 | + }); |
| 60 | + |
| 61 | + }//onresquest |
| 62 | + |
| 63 | + |
| 64 | + var html = ` |
| 65 | + <h3>it works!</h3> |
| 66 | + <script> |
| 67 | + console.clear(); |
| 68 | + fetch('/').then(res=>res.headers.forEach((value,key)=>console.log(key,value))); |
| 69 | + </script> |
| 70 | + `; |
0 commit comments