• 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
    ')
    })
    
    server.listen(port, () => {
      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}/`)
    })
    
  • 相关阅读:
    Java基本数据类型的包装类
    Java数据类型基础
    Xscan安装
    Notepad++配置HexEditor插件
    [WP]XCTF-re2-cpp-is-awesome
    [WP]XCTF-tt3441810
    [WP]XCTF-re1-100
    [WP]XCTF-Mysterious
    [WP]xctf-parallel-comparator-200
    [WP]XCTF-elrond32
  • 原文地址:https://www.cnblogs.com/liea/p/11832573.html
Copyright © 2020-2023  润新知