Node.js创建服务器和模拟客户端请求

1. 何为服务器

服务器是某种长期运行,等待请求资源的应用程序

2. 常见Web应用架构

3. 如何创建web服务器

Web服务器是使用HTTP协议,等待客户端连接后请求资源的驻守应用程序;HTTP协议是应用层的协议,在传输层依然是使用TCP或者UDP协议,一般来说是使用Socket来绑定TCP或者UDP,总的来说创建服务器就是创建一个Socket:

创建服务器的流程:

(1)创建Socket

(2)为Socket绑定参数

(3)Socket等候请求

(4)处理请求,返回资源

(5)关闭资源

4. 使用Node.js创建服务器

server.js

var http = require(‘http‘);
var fs = require(‘fs‘);
var url = require(‘url‘);

// 创建服务器
http.createServer( function (request, response) {
   // 解析请求,包括文件名
   var pathname = url.parse(request.url).pathname;

   // 输出请求的文件名
   console.log("Request for " + pathname + " received.");

   // 从文件系统中读取请求的文件内容
   fs.readFile(pathname.substr(1), function (err, data) {
      if (err) {
         console.log(err);
         // HTTP 状态码: 404 : NOT FOUND
         // Content Type: text/plain
         response.writeHead(404, {‘Content-Type‘: ‘text/html‘});
      }else{
         // HTTP 状态码: 200 : OK
         // Content Type: text/plain
         response.writeHead(200, {‘Content-Type‘: ‘text/html‘});    

         // 响应文件内容
         response.write(data.toString());
      }
      //  发送响应数据
      response.end();
   });
}).listen(8080);

// 控制台会输出以下信息
console.log(‘Server running at http://127.0.0.1:8080/‘);

Node.js已经封装好了创建服务器的函数,可直接调用

5. 模拟客户端发送请求

client.js

var http = require(‘http‘);

// 用于请求的选项
var options = {
   host: ‘localhost‘,
   port: ‘8080‘,
   path: ‘/index.html‘
};

// 处理响应的回调函数
var callback = function(response){
   // 不断更新数据
   var body = ‘‘;
   response.on(‘data‘, function(data) {
      body += data;
   });

   response.on(‘end‘, function() {
      // 数据接收完成
      console.log(body);
   });
}
// 向服务端发送请求
var req = http.request(options, callback);
req.end();

原文地址:https://www.cnblogs.com/liuzhiqaingxyz/p/10525119.html

时间: 2024-10-12 20:51:00

Node.js创建服务器和模拟客户端请求的相关文章

node.js在windows下的学习笔记(5)---用NODE.JS创建服务器和客户端

//引入http模块 var http = require('http'); //调用http的createServer的方法,这个方法有一个回调函数,这个回调数 //的作用是没到那个有请求发送给服务器的时候,就执行这个回调函数 http.createServer(function (req, res) { //发送 res.end('Hello World\n'); }).listen(3000, "127.0.0.1");//端口和IP的绑定 console.log('Server

node.js创建服务器报错

创建nodeTest.js如下: 1 var http = require('http'); 2 http.createServer(function (request, response){ 3 response.writeHead(200, {'Content-Type' : 'text/plain'}); 4 response.end('hello world\n'); 5 }).listen(80); 6 7 console.log('server running at http://1

原生node.js创建服务器

var http = require('http'); var fs = require('fs'); var path = require('path'); var server = http.createServer((req, res) => { console.log("req.url: ", req.url); if (req.url === '/') { readFileSend('./index.html') } else { readFileSend(req.ur

Node.js 创建HTTP服务器(经过测试,这篇文章是靠谱的T_T)

Node.js 创建HTTP服务器 如果我们使用PHP来编写后端的代码时,需要Apache 或者 Nginx 的HTTP 服务器,并配上 mod_php5 模块和php-cgi. 从这个角度看,整个"接收 HTTP 请求并提供 Web 页面"的需求根本不需 要 PHP 来处理. 不过对 Node.js 来说,概念完全不一样了.使用 Node.js 时,我们不仅仅 在实现一个应用,同时还实现了整个 HTTP 服务器.事实上,我们的 Web 应用以及对应的 Web 服务器基本上是一样的.

2:Node.js 创建HTTP服务器

原文出自:http://www.w3cschool.cc/nodejs/nodejs-http-server.html ===================================================== Node.js 创建HTTP服务器 如果我们使用PHP来编写后端的代码时,需要Apache 或者 Nginx 的HTTP 服务器,并配上 mod_php5 模块和php-cgi. 从这个角度看,整个"接收 HTTP 请求并提供 Web 页面"的需求根本不需 要

[转]用Node.js创建自签名的HTTPS服务器

用Node.js创建自签名的HTTPS服务器 创建自己的CA机构 创建服务器端证书 创建客户端证书 将证书打包 创建自己的CA机构 为CA生成私钥 openssl genrsa -out ca-key.pem -des 1024 通过CA私钥生成CSR openssl req -new -key ca-key.pem -out ca-csr.pem 通过CSR文件和私钥生成CA证书 openssl x509 -req -in ca-csr.pem -signkey ca-key.pem -out

Node.js创建自签名的HTTPS服务器

https://cnodejs.org/topic/54745ac22804a0997d38b32d 用Node.js创建自签名的HTTPS服务器 发布于 4 年前  作者 eeandrew  689290 次浏览  最后一次编辑是 2 年前  来自 分享 用Node.js创建自签名的HTTPS服务器 创建自己的CA机构 创建服务器端证书 创建客户端证书 将证书打包 创建自己的CA机构 为CA生成私钥 openssl genrsa -out ca-key.pem -des 1024 通过CA私钥

用http-server 创建node.js 静态服务器

今天做一本书上的例子,结果代码不能正常运行,查询了一下,是语法过时了,书其实是新买的,出版不久. 过时代码如下 var connect=require('connect'); connect.createServer( connect.static("../angularjs") ).listen(5000); 错误提示:connect.static不是一个方法 由于我的目的是练习angularjs,不是学习nodejs,所以不去深究,只要能建立一个简单的服务器就行 在网上搜到的方法是

node.js 创建HTTP服务器

这个才是我们学node.js的真正原因,服务器! 1.新建一个 index.js 写下 var myhttp=require('http'); myhttp.createServer(function(req,res){ res.writeHead(200,{'Content-Type':''text/thml''}); res.write('<h1>my http</h1>'); res.write('<p>he he</p>'); res.end(<