http模块

http模块

  • 导入模块

    TEXT
    1
    import * as http from http
  • 创建服务体对象

    TEXT
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    const server =http.createServer((request,response)=>{
      response.end(<data>) //设置响应体
      let <data>:string // 用来储存请求数据
      // 绑定data事件
      request.on('data', <chunk> =>{
        <data> += <chunk>
      })
      //可以用url模块解析链接各个部分
      // 绑定 end 事件
      request.on('end',() => {
        // 响应
        // 响应状态码
        response.statusCode = <code>
        // 响应状态描述
        response.statusMessage = '<str>'
        // 响应头
        response.setHeader('<key>','<value>')
        response.setHeader('<key>',['<value1>','<value2>'])// 可以设置多个同名响应头
        // 响应体
        response.write('<content>') //可选,可写多个
        response.end("<content>")// 必须,只能写一个
      })
    })
  • 监听端口,启动服务

    TEXT
    1
    server.listen(<port>,()=>{})
  • 设置

响应头

  • content-type

    • mine

      默认有mine嗅探功能

      TEXT
      1
      2
      3
      4
      5
      6
      7
      8
      9
      html:'text/html',
      css:'text/css',
      js:'text/javascript',
      png:'image/png',
      jpg:'image/jpeg',
      gif:'image/gif',
      mp4:'video/mp4',
      mp3:'video/mpeg'
      json:'application/json'

      对于未知资源类型,可以选择application/octet-stream​类型,浏览器遇到该类型会进行独立储存,俗称下载

get和post请求的区别

  1. get获取数据,post请求数据
  2. get将请求参数加到URL后,post放在请求体中
  3. post相对比get安全,因为会将请求参数放在地址栏中
  4. GET请求大小有限制,一般为2KB,POST没有限制