(五)Node里面的HTTP

使用 Node 进行 Web 开发 加载 http模块

  • 浏览器机制

  • (1) 用户通过浏览器发送一个http请求指定的主机
  • (2) 服务器接收到请求后,对该请求进行分析和处理
  • (3) 服务器处理完成后,返回对应的数据到用户的机器
  • (4) 浏览器接受服务器返回的数据,并根据接收的数据进行分析和处理

总结:由客户端发送一个HTTP请求到指定的服务器->服务端接收并处理请求->返回数据给客户端

http模块 - require('http')

  • 首先第一步必须要 var http = require('http');

  • 第二步创建对象: var server = http.createServer([requestListener]);

    • 创建并返回一个HTTP服务器对象
    • requestListener : 监听到客户端连接的回调函数
  • server.listen(port,[hostname],[backlog],[callback])

    • 监听客户端连接请求:只有当调用了listen方法后,服务器才开始工作
    • port:监听端口
    • hostname:主机名(IP/域名)
    • backlog:允许的最大并发数,一般情况不填
    • callback: 调用listen方法并成功开启监听以后,会触发一个listening事件。callback将作为该事件的执行函数。

var http = require('http');
var server = http.createServer();
server.listen(8888,'localhost',function(){
// console.log('开始监听'); //要是不写回调函数的话可以直接用listening
})
server.on('listening',function(){
console.log('开始监听中');
})

  • server.on('listening',function(){}) 等价于listen后面的回调函数

server.on('listening',function(){
console.log('开始监听中');
})

  • server.on('error',function(err){console.log(err)}) 当服务器开启失败的时候触发事件

  • 参数 err: 具体的错误对象

server.on('error',function(err){
console.log(err);
})

  • request事件 :当有客户端发送请求到该主机和端口的请求时触发

    • 参数 request : 获取这次请求的用户信息
    • 参数 reponse : 通过它向请求的客户端返回信息

var http = require('http');
var server = http.createServer();
server.listen(8888,'127.0.0.1',function(){ //监听端口号和,主机name

});
server.on('request',function(req,rep){ //req表示用户信息,res表示输出信息
console.log(req.httpVersion); //获取到http协议版本
console.log(req.url); //获取到URL就是.com后面的/地址
console.log(req.method); //获取到请求的方法
console.log(req.headers); //获取到请求的头信息
})

response开始

var http = require('http');
var server = http.createServer(function(req,res){
//req表示请求,接后续req.method和req.url
//res表示结果,接后续的res.write(),res.end()里面只能是字符串
});
server.listen(8888,'127.0.0.1',function(err){
console.log(err);
}) //必须要有监听
//要是createServer里面有回调函数了。此函数就不用写了
server.on('request',function(req,res){
//设置头信息。可以不写。我这个就是表示解析成纯文本
res.writeHead(200,{'content-type':'text/plain'});
//要是HTML可写成:
res.writeHead(200, {'content-type': 'text/html;charset=utf-8'})
//输出什么,后面加编码不加默认就是utf-8
res.write("<h1>技术在提高</h1>","utf-8");
//结束的时候语句
res.end();//最后必须写end
})

总结

  • 方便记忆 第一步加载http模块 var http = require('http');
  • 第二部因为HTTP复杂,所以需要var server = http.createServer();
  • 监听端口 server.listen(端口号,主机名,回调函数或者linstening方法)
  • 捕获到请求 server.on('request',function(rep,res){
  • console.log(rep.headers);
  • console.log(rep.method);
  • console.log(rep.url);
  • res.writeHead(200,头信息)
  • res.write('输出内容','utf-8');
  • res.end(); //必须添加
  • })
  • 简称4-3-3步骤
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容