HTTP协议javascript
包含请求报文,响应报文css
let msg = "<h1>hello world</h1>"; //构造响应报文 let responseText = "HTTP/1.1 200 OK\r\n"; responseText += "Server: mynodeserver 1.0\r\n"; responseText += "Content-Length:"+ msg.length +"\r\n"; responseText += "Content-Type: text/html;charset=utf-8\r\n"; responseText += "\r\n"; responseText += msg; socket.write(responseText); socket.end();
"use strict"; const http = require("http"); let server = http.createServer((req,res)=>{ //获取请求头 req.headers //获取http的版本 req.httpVersion //请求的方法 req.method //请求的路径 req.url console.log(req.headers); console.log(req.httpVersion); console.log(req.method); console.log(req.url); res.write("hhhhhh中文"); res.end(); }).listen(8888,()=>{ console.log("开始监听..."); });
请求对象的经常使用属性html
响应对象的经常使用方法java
请求会有不少不少,若是一个请求出错会致使服务器挂掉,别的请求没法访问服务器. 因此再作服务器开发的时候要保证若是一个请求出错,不影响其余请求 如何处理异常: try{ }catch(err){ console.log("出错了:" + err); //此处要写日志,让程序员发现错误,进行修改 }
const http = require("http"); const fs= require("fs"); const path = require("path"); let server = http.createServer((req,res)=>{ if(req.url.trim() === "/" || req.url.includes("index.html")) { //读取模板html文件 fs.readFile("./template/tmp.html", (err, content)=>{ let tmp = content.toString(); let dataArr = require("./data.json"); //变量数据,替换模板 let array = []; for (var i = 0; i < dataArr.length; i++) { let item = dataArr[i]; array.push("<li>"+item+"</li>"); } tmp = tmp.replace("${list}",array.join("")); tmp = tmp.replace("${title}","列表"); res.write(tmp); //结束请求 res.end(); }); }else if(req.url.includes(".css")){ //加载css fs.readFile(path.join("template",req.url) ,(err,content)=>{ res.setHeader("Content-Type","text/css;charset=utf8"); res.end(content); }); }else if(req.url.includes(".jpg")) { //加载jpg的图片 fs.readFile(path.join("image",req.url) ,(err,content)=>{ res.setHeader("Content-Type","image/jpeg"); res.end(content); }); }else{ res.end("你闹啥呢"); } }).listen(8888,()=>{ console.log("开启监听..."); });