Node.js 构建HTTP服务

更新日期: 2019-08-11 阅读: 2.2k 标签: 服务

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://fly63.com/article/detial/6382

为什么你的服务会变慢?

你开发了一个服务,调用它,它做了一些事情并返回结果。那么,它需要花多长时间?为什么有时候它花的时间比用户期望的要长?在这篇文章中,我将从最基础的讲起,然后逐步介绍一些标准的术语,同时着重强调一些需要知道的关键点。

服务出现明显的变慢,该如何诊断处理?

在日常工作中,应用出现性能问题是不可避免的,绝大部分公司都没有专门的性能团队,出现问题还是需要我们自己去排查处理,所以掌握基本的性能知识和技能就显得很有必要,也是开发工程师进阶的必要条件

Web服务要素之一:WSDL

一个PortType可以包含若干个Operation,而一个Operation则是指访问入口支持的一种类型的调用。以上三种结构描述了调用Web服务的抽象定义,这三部分与具体Web服务部署细节无关

无前后端,彻底无服务的网页版办公套件

这是一个彻底无服务,易于分享的网页软件形式,它所有的内容都集中在Url数据中,所见即所得,不需要网络和注册安装,同时适配全平台,用户还能随时修改逻辑,没有的服务器成本

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!