Node.js 构建HTTP服务

Node中的HTTP模块

  • TCP和UDP都属于网络传输协议,如果要构架高效的网络应用,就应该从传输层着手,但是对于经典的浏览器网页和服务器端通信场景,如果单纯的使用更底层的传输协议则会变得麻烦。
  • 所以对于经典的B(browser)S(server)通信,基于传输层之上专门制定了更上一层的通信协议:HTTP,用于浏览器和服务端进行通信,由于HTTP协议本身并不考虑数据如何传输及其他细节问题,所以属于应用层协议。
  • Node提供了基于HTTP和HTTPS模块用于HTPP和HTTPS的封装。
count http = require('http')
const server = http.createServer()

server 实例

API:

  • event:close ,服务关闭时触发
  • event: reques,收到请求消息时触发
  • event: close(),关闭服务
  • event: listening, 获取服务状态

请求对象

API:

  • request.method,请求方法
  • request.url,请求路径
  • request.headers,请求头
  • request.httpVersion,请求http协议版本

响应对象

API:

  • response.end(), 结束响应
  • response.setHeader(name, value),设置响应头
  • response.removeHeader(name, value),删除响应头
  • response.statusCode,设置响应状态码
  • response.statusMessage,设置响应状态码
  • response.write(),写入响应数据
  • response.writeHead(),写入响应头

示例:

const http = require('http')

const hostname = '127.0.0.1'
const port = '20000'

const server = http.createServer((req, res) => {
  res.statusCode = 200
  res.setHeader('Content-Type', 'text/plain')
  res.end('Hello World\n')
})

server.listen(port, hostname, () => {
  console.log(`Server running at http://${hostname}:${port}`)
})

html:

const http = require('http')

const hostname = '127.0.0.1'
const port = '20001'

const server = http.createServer((req, res) => {
  // 响应文本类型的html,响应格式 utf-8
  res.setHeader('Content-Type', 'text/html; charset=utf-8')
  res.end(`<h1>hello你好,世界</h1>`)
})

server.listen(port, hostname, () => {
  console.log(`Server running at http://${hostname}:${port}/`)
})

原文地址:https://www.cnblogs.com/liea/p/11832573.html

时间: 2024-11-09 01:02:03

Node.js 构建HTTP服务的相关文章

Node.js 构建TCP服务

构建TCP服务 三次握手连接: 1.客户端请求连接 2.服务器响应 3.开始传输 服务端 // 构建TCP服务 服务端 const net = require('net') const server = net.createServer() server.on('connection', clientSocket => { console.log('有新的客户端连接了') //服务端通过 clientSocket 监听 data 事件 clientSocket.on('data', data =

Node.js之HTPP服务一

几乎每门编程语言都会包括网络这块,Node.js也不例外.今天主要是熟悉下Node.js中HTTP服务.其实HTTP模块是相当低层次的,它不提供路由.cookie.缓存等,像Web开发中不会直接使用,但还是要熟悉下,这样也方便以后的学习. 一.统一资源标识符URL 这个是非常常见的,在Node.js中有几种处理. http://user:[email protected]:80/resource/path/?query=string#hash 协议://身份认证@主机名.com:端口/路径/搜索

Node.js发布http服务

Node.js发布http服务 2018-11-09 09:43:03   Visit  0 简单服务 var http = require(\'http\'); http.createServer(function (request, response) { // 发送 HTTP 头部 // HTTP 状态值: 200 : OK // 内容类型: text/plain response.writeHead(200, {\'Content-Type\': \'text/plain\'}); //

使用Node.js构建命令行工具

使用Node.js和npm构建脚本或命令行工具. 一.包装shell命令 第一步:创建一个npm项目 npm init; 第二步:创建一个js文件(index.js),包含要运行的脚本 !/usr/bin/env node console.log('Hello, world!'); 需要注意的是,需要添加片段标识符"!/usr/bin/env node",告知脚本使用Node执行. 第三步:在package.json文件中补充bin部分 { ... "author"

基于OpenResty和Node.js的微服务架构实践

什么是微服务? 传统的单体服务架构是单独服务包,共享代码与数据,开发成本较高,可维护性.伸缩性较差,技术转型.跨语言配合相对困难.而微服务架构强调一个服务负责一项业务,服务可以单独部署,独立进行技术选型和开发,服务间松耦合,服务依赖的数据也独立维护管理.虽然微服务存在部署复杂.运维难度较大.分布式事务控制难.容错要求高等缺点,但总体而言,微服务的优点远大于其复杂性. 微服务架构需要注意哪些问题? 微服务架构,首先考虑客户端与服务端之间的通信问题.有两种解决办法,一是客户端与多个服务端直接进行通信

LINUX下用Nginx和Node.js构建一个简单的项目(1)

由于我之前租了一个阿里云服务器,最近又开始学学Node.js,因此准备写点东西把过程记录一下.至于服务器上的Web环境安装阿里云有十分详细的安装说明,这里就略过了... 以下是我的Web环境: 服务器系统为LINUX 64位 Web:nginx Nginx:1.4.4 Php:5.3.29 Mysql:5.1.73 1.安装Nodejs 首先需要查看系统的Python和Make版本信息是否符合Node.js的安装环境.指令如下: # python # make -v 在官网下载nodejs(ht

node js构建一个vue并启动它

安装node js,到运行VUE的简单过程 1.安装node js 下载地址:http://nodejs.cn/download/2.安装完成后运行Node.js command prompt(node -v查看安装版本) 3.安装npm(由于现在版本的nodejs已经集成npm所以无需安装,可以用npm -v 查看版本) 4.注册cnpm来代替npm 使用命令:npm install cnpm -g --registry=https://registry.npm.taobao.org5.安装v

Node.js部署到服务器之后台守护进程管理器Forever

我们不可能直接通过node命令来管理远程站点,这样无法保证网站的可持续运行.我们用Forever来解决这个问题,它可以将NodeJS应用以后台守护进程的方式运行,我们还可以将NodeJS应用设成随系统启动而自动运行. 首先,安装Forever: npm install forever -gd 这样Forever就安装好了,我们可以直接运行Forever命令: forever --help forever start app.js forever stop app.js 上面命令先查看Foreve

node.js 调用第三方服务

node作为客户端调用第三方服务   nodejs.cn/api 1. let http = require('http'); let util = require("util"); http.get('http://www.imooc.com/u/card',(res)=>{ let data = ""'; res.on("data",(chunk)=>{ data += chunk; }); res.on("end&qu