上海企业网站建设价格,清远新闻最新,网站建设合同注意,返利网站程序Node.js什么是客户端#xff0c;什么是服务器服务器和普通电脑的区别什么是http模块导入http模块服务器相关概念创建web服务器的基本步骤req请求对象req响应对象解决中文乱码根据不同的url响应不同的html内容什么是客户端#xff0c;什么是服务器
客户端在网络节点中#x…
Node.js什么是客户端什么是服务器服务器和普通电脑的区别什么是http模块导入http模块服务器相关概念创建web服务器的基本步骤req请求对象req响应对象解决中文乱码根据不同的url响应不同的html内容什么是客户端什么是服务器
客户端在网络节点中负责消费资源的电脑叫做客户端服务器负责对外提供网络资源的电脑叫做服务器
服务器和普通电脑的区别
服务器上安装了web服务软件例如IISApache等通过安装这些服务器软件外网服务器就把普通电脑变成web服务器了在node.js中我们不需要使用第三方外网服务器软件因为我们可以基于node.js提供的http模块通过几行代码手写一个服务器从而对外提供web服务
什么是http模块
http模块是Node.js官方提供的用来创建web服务器的模块通过http模块提供的http.createServer()方法就能方便的把一台普通的电脑变成一台web服务器从而对外提供web资源服务
导入http模块
const http require(http)服务器相关概念
IP地址,就是互联网上每台计算机的唯一地址IP地址具有唯一性域名地址因为IP地址是一长串数字不便于记忆于是人们使用另一套字符型的地址方案即域名地址DNS域名服务器IP地址和域名是一一对应的关系这个关系存放在DNS域名服务器的电脑中可以实现之间的转化例如127.0.0.1对应的域名是localhost端口号类似现实生活中的门牌号一台电脑运行n个web服务每个服务对应唯一一个端口号客户端发送的请求通过端口号可以准确的交给对应的web服务进行处理每个端口号只能被一个web服务占用实际应用中url的80端口可以被省略
创建web服务器的基本步骤
//步骤一导入http模块
const http require(http)
//步骤二创建web服务器实例
const server http.createServer()
//步骤一为服务器实例绑定reqest事件监听客户端的请求
server.on(request,(req,res){ //参数一是事件的名称参数二是触发事件的回调//只要有客户端请求我们服务器就会触发reqest事件从而调用这个事件处理函数console.log(请求了)
})
//步骤四启动服务器
server.listen(80,(){ //参数一是端口号让服务器运作在80端口处参数二请求成功的回调console.log(启动成功)
})
//运行时cmd运行node 文件名
//vscode运行,终端-新建终端-运行如果报错别慌只是你现在用的端口被占用了
req请求对象
只要服务器接收到了客户端的请求就会调用server.on()为服务器绑定的reqest事件处理函数如果想在事件处理函数中处理与客户端相关的数据或属性可以使用下面方法
server.on(request,(req){ //参数一是事件的名称参数二是触发事件的回调//req是请求对象它包含了与客户端相关的数据和属性//req.url是客户端请求的URl地址//req。mrthod是客户端的method请求类型console.log(请求了)
})
//点击下方地址就可请求
server.listen(80, () { //参数一是端口号让服务器运作在80端口处参数二请求成功的回调console.log(启动成功http://127.0.0.1)
})req响应对象
在服务器的reqest事件处理函数中如果想访问与服务器相关的数据或属性
server.on(request,(reqres){ //参数一是事件的名称参数二是触发事件的回调//res是响应对象它包含了与服务端相关的数据和属性//要发送到客户端的字符串const str 想发送的字符串//res.end()方法的作用//向客户端发送指定的内容并结束这次请求res.end(str)
})解决中文乱码
当调用res.end方法时候向客户端发送中文内容的时候会出现乱码问题此时需要手动设置内容的编码格式需要设置响应头
server.on(request,(reqres){ //要发送到客户端的字符串const str 想发送的字符串res.setHeader(Content-Type,text/html;charsetUTF-8)//res.end()方法的作用res.end(str)
})根据不同的url响应不同的html内容
获取请求的url地址设置默认的响应内容为404 Not found判断用户的请求是否为想要的页面设置Contant-Type响应头防止中文乱码使用res.end()把内容响应给客户端
server.on(request, (req, res) {const url res.urllet content h1404 Not found/h1if(url/||url/index/html){content h1首页/h1}else{content h1编程/h1}res.setHeader(Content-Type,text/html;charsetUTF-8)res.end(content)
})
server.listen(80, () { //点击链接进行请求console.log(启动成功http://127.0.0.1)
})