Node.js实现一个HTTP服务器的方法示例

 更新时间:2019年05月13日 09:18:16   作者:凡沸  
这篇文章主要介绍了Node.js实现一个HTTP服务器的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

项目地址

http server

题目

设计一个模拟HTTP服务端程序

自己设计一个WEB的程序,监听80端口。支持多客户端连接,能满足客户的HTTP请求(浏览器访问),包括以下功能:

1.基本功能:get、post(带数据请求)、head请求

2.模拟登陆访问,页面redirector功能(设计登陆页面login.html、主页index.html,如果直接访问index.html则跳转到登陆页面,只有登陆后才能打开主页)

3.其他(如cookie)

效果展示

思路

用户打开网址 127.0.0.1:8080 时,客户端发起 get 请求,请求路径为 / ,服务端返回 login.html 页面。

if (request.url === '/') {
 fs.readFile('./login.html', function (err, data) {
  if (!err) {
   response.writeHead(200, { "Content-Type": "text/html;charset=UTF-8" });
   response.end(data)
  } else {
   throw err;
  }
 });
}

当用户试图通过浏览器地址访问 /index 时,服务端会判断请求头是否携带 cookie ,若没有则将请求重定向到 /

if (!request.headers.cookie) {
 response.writeHead(301, { 'Location': '/' })
 response.end()
}

如果有携带 cookie ,则将浏览器重定向到 index.html 页面

window.location.href = '/index'

用户在 login.html 界面输入用户名并点击登录,客户端会携带用户名发起一个 post 请求

let input = {
 name: document.querySelector('.input').value
}
let request = new XMLHttpRequest(); // 新建XMLHttpRequest对象
request.open('POST', '/login', true)
request.send(JSON.stringify(input))

服务端接收参数,设置 cookie

let input = {
 name: document.querySelector('.input').value
}
let request = new XMLHttpRequest(); // 新建XMLHttpRequest对象
request.open('POST', '/login', true)
request.send(JSON.stringify(input))

如果客户端发情 HEAD 请求,只返回相应头

if (request.url === '/getHead') {
 response.writeHead(200);
 response.end()
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • nodejs修复ipa处理过的png图片

    nodejs修复ipa处理过的png图片

    ipa本身是一个zip文件改后缀后解压缩就能看到应用内使用的资源文件,其中png图片资源xcode打包的时候做了些手脚下面我们来看看如何修复这些问题
    2016-02-02
  • Node.js 日志处理模块log4js

    Node.js 日志处理模块log4js

    今天和大家分享一下NodeJS中写日志的一个常用第三方包:Log4js.下面我们就来详细探讨下吧
    2016-08-08
  • NodeJs基本语法和类型

    NodeJs基本语法和类型

    这篇文章主要介绍了NodeJs基本语法和类型的相关资料,需要的朋友可以参考下
    2015-02-02
  • Node.js查找当前目录下文件夹实例代码

    Node.js查找当前目录下文件夹实例代码

    本篇文章主要介绍了Node.js查找当前目录下文件夹实例代码,具有一定的参考价值,有兴趣的可以了解一下。
    2017-03-03
  • Mac中安装nvm的教程分享

    Mac中安装nvm的教程分享

    下面小编就为大家分享一篇Mac中安装nvm的教程,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2017-12-12
  • Node.js Express 框架 POST方法详解

    Node.js Express 框架 POST方法详解

    这篇文章主要介绍了Node.js Express 框架 POST方法详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-01-01
  • 简单实现node.js图片上传

    简单实现node.js图片上传

    这篇文章主要为大家详细介绍了node.js图片上传的简单实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-12-12
  • Node.js实现mysql连接池使用事务自动回收连接的方法示例

    Node.js实现mysql连接池使用事务自动回收连接的方法示例

    这篇文章主要介绍了Node.js实现mysql连接池使用事务自动回收连接的方法,结合实例形式分析了node.js操作mysql连接池实现基于事务的连接回收操作相关技巧,需要的朋友可以参考下
    2018-02-02
  • node.js利用redis数据库缓存数据的方法

    node.js利用redis数据库缓存数据的方法

    Redis数据库采用极简的设计思想,最新版的源码包还不到2Mb。其在使用上也有别于一般的数据库。下面这篇文章就来给大家介绍了node.js利用redis数据库缓存数据的方法,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-03-03
  • Node.js 子线程Crash 问题的排查方法

    Node.js 子线程Crash 问题的排查方法

    这篇文章主要介绍了Node.js 子线程Crash 问题的排查,本文通过代码例子给大家详细讲解,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-06-06

最新评论