nodejs http模块

在网络节点中,负责消费资源的电脑 叫客户端,

负责对外提供网络资源的电脑,叫服务端。

http 模块是 Node.js 官方提供的、用来创建 web 服务器的模块。

服务器和普通电脑区别在于。服务器上安装了 web服务器软件,如IIS、Apache

就能把普通电脑变成一台服务器

服务器相关概念

ip地址

互联网上每台计算机的唯一地址,具有唯一性,只有知道对方的ip地址,才能与对应的电脑间进行通信

ip地址格式

"点分十进制"如 a.b.c.d ,其中 a,b,c,d 都是0~255之间的十进制整数,如 192.168.1.1

互联网中每台服务器,都有自己的ip地址 ,在windows终端运行 ping www.baidu.com,可查看百度服务器的ip地址

测试时,127.0.0.1可以把自己电脑当成服务器来访问

域名和域名服务器

域名就是ip地址的别名

又称网域,是由一串用点分隔的名字组成的互联网上某一台计算机或计算机组的名称,用于在数据传输时对计算机的定位标识(有时也指地理位置)

ip和域名是一一对应的关系,这份对应关系存放在一种叫域名解析服务器(DNS)的电脑中

dns域名解析服务器 就是提供ip地址和域名之间的转换 服务的服务器,即将域名解析为ip地址去访问

开发期间 127.0.0.1对应的域名是localhost

端口号

一台电脑中可以运行多个服务,不同的服务用端口号去标识,每个web服务对应唯一的一个端口号

每个端口号不能同时被多个服务占用,

url的80端口可以被省略

nodejs创建基本的服务器

  1. 导入http模块
  2. 创建web服务器实例
  3. 为服务器实例绑定request事件
  4. 启动服务器
const http=require('http');
//创建web服务器实例
const server=http.createServer();

server.on("request",(req,res)=>{//只要由客户端请求我们的服务器,就会触发request事件,从而调用这个事件处理函数
    console.log('somenone visit out web server');
})
server.listen(2000, function () {
    console.log('server running at http://127.0.0.1:2000')
  })

request事件

只要由客户端请求我们的服务器,就会触发server.on绑定的request事件处理函数

req请求对象

如果想在request事件处理函数中,访问和客户端相关的数据或属性,可使用req请求对象

req是请求对象,包含了与客户端相关的数据和属性,例如

req.url 客户端请求的url

req.method 客户端的method 请求类型

server.on("request",(req,res)=>{//只要由客户端请求我们的服务器,就会触发request事件,从而调用这个事件处理函数
    console.log('somenone visit out web server');
    // req是请求对象,包含了与客户端相关的数据和属性,例如
    // req.url  客户端请求的url
    // req.method  客户端的method 请求类型

})

访问url 为 http://127.0.0.1:2000/index.html,显示如下

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

使用postman 发起一个post请求

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

显示为

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

res响应对象

如果想在request事件处理函数中,访问和服务器相关的数据或属性,可使用res请求对象

req是响应对象,包含了与服务器相关的数据和属性,例如要发送到客户端的字符串

res.end()方法的作用:
向客户端发送指定的内容,并结束这次请求的处理过程

const http=require('http');

const server=http.createServer();

server.on("request",(req,res)=>{//只要由客户端请求我们的服务器,就会触发request事件,从而调用这个事件处理函数
    // req是响应对象,包含了与服务器相关的数据和属性,例如
    // 要发送到客户端的字符串
    const str=`Your request url is ${req.url},and request method is ${req.method}`;
    // res.end()方法的作用
    //向客户端发送指定的内容,并结束这次请求的处理过程
    res.end(str);//在浏览器访问 http://127.0.0.1:600 地址 后,得到响应数据:Your request url is /,and request method is GET 
})
server.listen(600, function () {

    console.log('server running at http://127.0.0.1:600');

  })
解决res.end() 返回数据中文乱码问题

res.end(),向客户发送中文内容时,会 出现乱码,需要手动设置内容的编码格式

res.setHeader(‘Content-Type’,“text/html; charset=utf-8”)

调用 res.setHeader() 方法,设置Content-Type响应头,解决中文乱码的问题

 const str="你好世界";
    res.end(str);//返回:浣犲ソ涓栫晫 出现乱码  
    
    
// res.end(),向客户发送中文内容时,会 出现乱码,需要手动设置内容的编码格式
const str="你好世界";
 res.setHeader('Content-Type',"text/html; charset=utf-8")
res.end(str);

    
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值