0%

GET和POST请求的区别

GET 和 POST 是 HTTP 协议请求的两种方式。

1、GET 主要用来获取数据,POST 主要用来提交数据
2、GET 带参数请求是将参数缀到 URL 之后,在地址栏中输入 url 访问网站就是 GET 请求,
3、POST 带参数请求是将参数放到请求体中
4、POST 请求相对 GET 安全一些,因为在浏览器中参数会暴露在地址栏
5、GET 请求大小有限制,一般为 2K,而 POST 请求则没有大小限制

​ HTTP 服务可以设置响应头 Content-Type 来表明响应体的 MIME 类型,浏览器会根据该类型决定如何处理资源

const http=require('http');
const fs=require('fs');
const path=require('path')

let mimes={
html: 'text/html',
css: 'text/css',
js: 'text/javascript',
png: 'image/png',
jpg: 'image/jpeg',
gif: 'image/gif',
mp4: 'video/mp4',
mp3: 'audio/mpeg',
json: 'application/json'
}

const server=http.createServer((request,response)=>{
    response.setHeader('content-type','text/html;charset=utf-8')
    //读取文件内容

    //获取请求URL的路径
    let {pathname}=new URL(request.url,'http://127.0.0.1');

    //拼接文件路径
    let filePath=__dirname+'/page'+ pathname;

    //读取文件fs异步API
    fs.readFile(filePath,(err,data)=>{
      if(err){
        response.setHeader('content-type','text/html;charset=utf-8')//解决中文乱码问题
        //判断段错误代号
        switch(err.code){
          case 'ENOENT':
            response.statusCode=404
            response.end('<h1>404 Not Found</h1>')
        }
        // response.statusCode=500
        // response.end('文件读取失败')
        return;
      }

      //获取文件名后缀
      let ext=path.extname(filePath).slice(1)
      
      //获取对应的类型
      let type=mimes[ext]
      if(type){
        //匹配到
        response.setHeader('content-type',type+';charset=utf-8')//解决中文乱码问题
      }else{
        response.setHeader('content-type','application/octet-stream')
      }

      //响应文件内容
      response.end(data)
    })

    // if(pathname ==='/index.html'){
    //   let html=fs.readFileSync(__dirname+'/page/index.html')
    //   response.end(html)
    // }else if(pathname ==='/css/app.css'){
    //   let css=fs.readFileSync(__dirname+'/page/css/app.css')
    //   response.end(css)
    // }else if(pathname ==='/images/logo.png'){
    //   let img=fs.readFileSync(__dirname+'/page/images/logo.png')
    //   response.end(img)
    // }else{
    //   response.statusCode=404;
    //   response.end('<h1>Not Found</h1>')
    // }
})

//监听端口,启动服务
server.listen(9000,()=>{
    console.log('服务已经启动...');
})

/**
 * 创建一个 HTTP 服务,端口为 9000,满足如下需求
 * GET  /index.html        响应  page/index.html 的文件内容
 * GET  /css/app.css       响应  page/css/app.css 的文件内容
 * GET  /images/logo.png   响应  page/images/logo.png 的文件内容
 */
const http=require('http');
const fs=require('fs')

const server=http.createServer((request,response)=>{
    response.setHeader('content-type','text/html;charset=utf-8')
    //读取文件内容

    //获取请求URL的路径
    let {pathname}=new URL(request.url,'http://127.0.0.1');

    //拼接文件路径
    let filePath=__dirname+'/page'+ pathname;

    //读取文件fs异步API
    fs.readFile(filePath,(err,data)=>{
      if(err){
        response.statusCode=500
        response.end('文件读取失败')
        return;
      }
      //响应文件内容
      response.end(data)
    })

    // if(pathname ==='/index.html'){
    //   let html=fs.readFileSync(__dirname+'/page/index.html')
    //   response.end(html)
    // }else if(pathname ==='/css/app.css'){
    //   let css=fs.readFileSync(__dirname+'/page/css/app.css')
    //   response.end(css)
    // }else if(pathname ==='/images/logo.png'){
    //   let img=fs.readFileSync(__dirname+'/page/images/logo.png')
    //   response.end(img)
    // }else{
    //   response.statusCode=404;
    //   response.end('<h1>Not Found</h1>')
    // }
})

//监听端口,启动服务
server.listen(9000,()=>{
    console.log('服务已经启动...');
})

const http=require('http');
const fs=require('fs')

const server=http.createServer((request,response)=>{
    response.setHeader('content-type','text/html;charset=utf-8')
    //读取文件内容

    let {pathname}=new URL(request.url,'http://127.0.0.1');
    if(pathname =='/'){
      let html=fs.readFileSync(__dirname+'/10_table.html')
      response.end(html)
    }else if(pathname =='/index.css'){
      let css=fs.readFileSync(__dirname+'/index.css')
      response.end(css)
    }else if(pathname =='/index.js'){
      let js=fs.readFileSync(__dirname+'/index.js')
      response.end(js)
    }else{
      response.statusCode=404;
      response.end('<h1>Not Found</h1>')
    }
})

//监听端口,启动服务
server.listen(9000,()=>{
    console.log('服务已经启动...');
})

const http=require('http');
const fs=require('fs')

const server=http.createServer((request,response)=>{
    response.setHeader('content-type','text/html;charset=utf-8')
    //读取文件内容
    const html=fs.readFileSync(__dirname+'/10_table.html')
    
    response.end(html)
})

//监听端口,启动服务
server.listen(9000,()=>{
    console.log('服务已经启动...');
})

const http=require('http');


const server=http.createServer((request,response)=>{
    //设置响应状态码
    response.statusCode=200;
    //设置响应头
    response.setHeader('content-type','text/html;charset=utf-8')
    //设置响应体
    response.write('i love ')
    
    response.end('reponse')//设置响应体

})

//监听端口,启动服务
server.listen(9000,()=>{
    console.log('服务已经启动...');
})

const http=require('http');

const server=http.createServer((request,response)=>{
    response.setHeader('content-type','text/html;charset=utf-8')
    //获取请求的方法(解构赋值)
    let {method}=request;
    //获取请求的url路径(解构赋值)
    let {pathname}=new URL(request.url,'http://127.0.0.1:9000')
    console.log(method);//GET
    console.log(pathname);// /search

    if(method=='GET'&&pathname=='/login'){
        //登录情形
        response.end('登录页面')
    }else if(method=='GET'&&pathname=='/reg'){
        response.end('注册页面')
    }else{
        response.end('NOT FIND')
    }

})

//监听端口,启动服务
server.listen(9000,()=>{
    console.log('服务已经启动...');
})

const http=require('http');

//创建服务对象
//request是对浏览器请求报文的封装对象
//reponse是对服务器返回报文的封装对象
const server=http.createServer((request,response)=>{
    //实例化URL对象
    let url=new URL(request.url,'http://127.0.0.1:9000')
    //输出路径
    console.log(url.pathname);
    //输出查询字符串
    console.log(url.searchParams.get('keyword'));


    response.end('url new')
})

//监听端口,启动服务
server.listen(9000,()=>{
    console.log('服务已经启动...');
})

const url=require('url')
const http=require('http');

//创建服务对象
//request是对浏览器请求报文的封装对象
//reponse是对服务器返回报文的封装对象
const server=http.createServer((request,response)=>{
    //解析resquest.url
    let res=url.parse(request.url,true);

    //路径
    let pathname=res.pathname;
    console.log(pathname);

    //查询字符串
    let keyword=res.query.keyword;
    console.log(keyword);
    
    response.end('url')
})

//监听端口,启动服务
server.listen(9000,()=>{
    console.log('服务已经启动...');
})

const http=require('http');

//创建服务对象
//request是对浏览器请求报文的封装对象
//reponse是对服务器返回报文的封装对象
const server=http.createServer((request,response)=>{
    //声明一个变量
    let body=''
    //绑定data事件
    request.on('data',chunk=>{
        body+=chunk;
    })

    //绑定end事件
    request.on('end',()=>{
        console.log(body);
        request.end('Hello,http')
    })
})

//监听端口,启动服务
server.listen(9000,()=>{
    console.log('服务已经启动...');
})