当前位置: 首页 > 编程笔记 >

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

罗波鸿
2023-03-14
本文向大家介绍Node.js实现一个HTTP服务器的方法示例,包括了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()
}

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

 类似资料:
  • 本文向大家介绍node.js 核心http模块,起一个服务器,返回一个页面的实例,包括了node.js 核心http模块,起一个服务器,返回一个页面的实例的使用技巧和注意事项,需要的朋友参考一下 如下所示: 看上面代码,我们需要先创建三个文件 index.html index.css index.js html文件里面,我们要引进css和js文件 我们运行上面js文件时候,就会创建一个静态服务器,

  • 本文向大家介绍node.js+Ajax实现获取HTTP服务器返回数据,包括了node.js+Ajax实现获取HTTP服务器返回数据的使用技巧和注意事项,需要的朋友参考一下 我们看一个HTML5页面中通过AJAX请求的方式获取HTTP服务器返回数据的代码示例.由于我们把服务器的端口指定为1337,并将从端口为80的网站中运行HTML5页面,因此这是一种跨域操作,需要在HTTP响应头部中添加Acces

  • 本文向大家介绍Python实现telnet服务器的方法,包括了Python实现telnet服务器的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Python实现telnet服务器的方法。分享给大家供大家参考。具体实现方法如下: 希望本文所述对大家的Python程序设计有所帮助。

  • 本文向大家介绍go语言实现一个最简单的http文件服务器实例,包括了go语言实现一个最简单的http文件服务器实例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了go语言实现一个最简单的http文件服务器的方法。分享给大家供大家参考。具体实现方法如下: 希望本文所述对大家的Go语言程序设计有所帮助。

  • 本文向大家介绍C++实现简单的HTTP服务器,包括了C++实现简单的HTTP服务器的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了C++实现HTTP服务器的相关代码,供大家参考,具体内容如下 以上就是本文的全部内容,希望对大家的学习有所帮助。

  • 本文向大家介绍go语言实现简单http服务的方法,包括了go语言实现简单http服务的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了go语言实现简单http服务的方法。分享给大家供大家参考。具体实现方法如下: 希望本文所述对大家的Go语言程序设计有所帮助。

  • 本文向大家介绍Node.js实现简单聊天服务器,包括了Node.js实现简单聊天服务器的使用技巧和注意事项,需要的朋友参考一下 使用Nodejs是如此简单的实现了一个简单的聊天服务器 实现代码如下: 使用过程就是: 启动js 连接方式:telnet

  • 问题内容: 这是我正在使用的简单网络服务器 除了保持活力外,效果很好。当第一个请求进入时,被调用。但是过程并没有结束。实际上,TCP连接仍处于打开状态,这允许另一个请求通过,这是我试图避免的。 如何关闭现有的保持活动连接? 问题答案: 您可以调用响应回调。这将关闭请求连接。 由于没有什么可做的,它也将结束您的过程,最终结果与在那里进行调用相同。