node . js使用http模块创建服务器和客户端完整示例

  

本文实例讲述了node . js使用http模块创建服务器和客户端。分享给大家供大家参考,具体如下:

  

节点。js中的http模块提供了创建服务器和客户端的方法,http全称是超文本传输协议,基于tcp之上,属于应用层协议。

  

<强>一、创建http服务器

        const http=要求(“http”);//创建一个http服务器   让服务器=http.createServer ();//监听端口   服务器。听(8888年,“0.0.0.0”);//设置超时时间   服务器。setTimeout (2 * 60 * 1000);//服务器监听时触发   服务器。(“倾听”,函数(){   console.log(“监听开始”);   });//接收到客户端请求时触发   服务器。(“请求”,函数(点播,res) {//请求表示客户端请求对象,是http.IncomingMessage类的实例,可读流。//res表示服务端响应对象,是http.ServerResponse类的实例,可写流。//请求方法   console.log (req.method);//请求url   console.log (req.url);//请求的头信息   console.log (req.headers);//请求的http版本   console.log (req.httpVersion);//请求对象的套接字对象   console.log (req.socket);   res.end('你好');   });//连接建立时触发   服务器。(“连接”,函数(插座){   console.log(“建立连接的);   });//客户端向服务器发送连接请求时触发   服务器。(“连接”功能(要求、插座、头){   console.log(“客户端连接”);   });//服务器关闭时触发,调用关闭()方法。   服务器。(“关闭”功能(){   console.log(“服务器关闭”);   });//发生错误时触发   服务器。(“错误”,函数(err) {   console.log(错);   });//如果连接超过指定时间没有响应,则触发。//超时后,不可再复用已建立的连接,需发请求重新建立连接   服务器。(“超时”,函数(插座){   console.log(“连接已超时');   });      之前      

请求对象点播里保存了客户端的详细信息,包括url,请求参数等,为了方便的解析这些参数,我们可以使用url.parse()方法。

        const http=要求(“http”);   const url=要求(url);//创建一个http服务器   让服务器=http.createServer ();//监听端口   服务器。听(8888年,“0.0.0.0”);//接收到客户端请求时触发   服务器。(“请求”,函数(点播,res) {//解析url返回一个url对象//如果参数二设为true,则url对象中查询的属性将通过querystring.parse()生成一个对象   让params=url.parse(点播。url,真实);//完整url地址   控制台。日志(“href”, params.href);//主机名,包含端口   控制台。日志(“主机”,params.host);//主机名,不包含端口   控制台。日志(主机名,params.hostname);//端口   控制台。日志(“端口”,params.port);//协议   控制台。日志(“协议”,params.protocol);//路径,包含查询字符串   控制台。日志(“路径”,params.path);//路径,不包含查询字符串   控制台。日志(“路径”,params.pathname);//查询字符串,不包含& # 63;   控制台。日志(‘查询’,params.query);//查询字符串,包含& # 63;   控制台。日志(‘搜索’,params.search);//散列字符串,包含#   控制台。日志(散列,params.hash);   res.end(“结束”);   });      之前      

响应对象res可以设置服务器响应给客户端的一些参数。

        const http=要求(“http”);   const url=要求(url);//创建一个http服务器   让服务器=http.createServer ();//监听端口   服务器。听(8888年,“0.0.0.0”);//接收到客户端请求时触发   服务器。(“请求”,函数(点播,res) {//设置响应头信息   res.setHeader(“内容类型”、“text/html; charset=utf - 8”);//获取响应头信息   res.getHeader(“内容编码”);   res.setHeader(“测试”、“测试”);//删除响应头信息   res.removeHeader(测试);//判断响应头是否已发送   console.log (res。headersSent & # 63;“已发送的:“未发送的);//注意writeHead()与setHeader()的区别,setHeader()并不会立即发送响应头。//而writeHead()会发送,writeHead()设置的响应头比setHeader()的优先。   res.writeHead(200年,{   ' aaa ': ' aaa '   });//判断响应头是否已发送   console.log (res。headersSent & # 63;“已发送的:“未发送的);//如何不发送日期日期,设置为错误将不发送的日期   res.sendDate=false;//设置响应的超时时间   res.setTimeout (30 * 1000);   res.on(“超时”,函数(){   console.log('响应超时');   });//向客户端发送数据//由于res响应对象也是一个流,所以可以使用写()来写数据   res.write (Buffer.from(你的好'));   res.write (Buffer.from(“欢迎'));   res.end(“结束”);   });      

node . js使用http模块创建服务器和客户端完整示例