HTTP

作者: 柒到彩虹 | 来源:发表于2017-09-28 21:26 被阅读0次

    HTTP模块

    第一个板块:简单介绍HTTP模块用法

    //第一步:引入模块http模块   是核心模块

    var http=require('http')

    //第二步:创建http对象

    var svr=http.createServer(function(){

    //第四步:当来请求的时候我所要执行的任务,在createServer中加上回调,这个回调函数就是我所要执行的任务,createServer的作用就是当有请求的时候,执行function这个里面的代码

    });

    //第三步:监听端口

    svr.listen(3001)

    第二个板块:介绍请求对象和响应对象

    //第一步:引入模块http模块   是核心模块

    var http=require('http')

    //第二步:创建http对象

    var svr=http.createServer(function(req,res){

    res.write('hellow,hug')

    res.end()//比搜啊是写完

    //现在只说回调函数中的参数,及function中的参数

    //console.log(a)//通过打印我们知道a,b是一个对象,而且是http模块官方为我们写好的对象   既然我们证明a,b是官方写好的对象,我就可以告诉大家

    //a(function中的第一个参数表示请求对象)一般情况下我们用req代表请求对象request    是继承自一个读流

    //b(function中的第二个参数表示响应对象)一般情况下我们用res代表响应对象response   是继承自一个写流

    });

    svr.listen(3001)

    第三个板块:发送index.html文件

    var http=require('http')

    var fs=require(''fs);

    var svr=http.createServer(function(req,res){

    //通过fs读网页

    fs.readFile('文件路径',function(err,data){

    res.write(data)

    res.end()

    })

    });

    svr.listen(3001)

    第四个板块:请求对象的两个方法url  method

    var http=require('http')

    var fs=require('fs');

    var url=require('url')

    var qs=require('querystring')

    var svr=http.createServer(function(req,res){

    //当点击提交的时候,我来解析出GET提交的数据

    if(req.url!=='/'){

    var up=url.parse(req.url)

    var qsq=qs.parse(up.query)

    console.log(qsq.user)

    }

    //既然req对象故req就要有什么能干什么

    //1、url    表示请求的url地址   console.log(req.url)  打印出'/',故当前的url就是'/'

    //2、method http请求方法post  get delete put update Head

    //console.log(reg.method)

    fs.readFile('文件路径',function(err,data){

    res.write(data)

    res.end()

    })

    });

    svr.listen(3001)

    第五版块:解析GET请求

    var http=require('http');

    var url=require('url')

    var qs=require('querystring')

    var fs=require('fs');

    var svr=http.createServer(function(req,res){

    //想判断表单提交还是网址请求

    //如果是正常网址请求,则直接发送index.html文件

    fs.readFile('文件路径',function(err,data){

    res.write(data)

    res.end()

    })

    //如果有GET请求  普通请求是'/'  get请求'/?'

    var up=url.parse(req.url).query

    if(up!==null){

    qs.parse(up).user

    }

    })

    svr.listen(3001)

    //4、使用http模块显示两次页面  页面跳转

    //1>在第一个页面中链接、点击链接进入第二个页面

    //2>提示:需要两个HTML页面

    var http=require('http')

    var fs=require('fs')

    var svr=http.createSrver(function(req,res){

    fs.readFile('文件路径',function(err,data){//一般有事件就没有err,其他都有

    res.write(data)

    res.end()

    })

    fs.readFile('第二个页面',function(err,data){

    res.write(data)

    res.end()

    })

    })

    svr.listen(3001)

    post表单提交

    //js代码

    var http=require('http');

    var fs=equire('fs');

    http.createServer(function(req,res){

    if(req.method=="POST"){

    //因为req是请求对象,且继承自读流  data  end俩事件  //如何使用解析post数据

    req.on('data',function(chunck){

    console.log(chunck.toString())

    })

    }else{

    fs.readFile('HTML路径',function(err,data){

    res.write(data)

    res.end()

    })

    }

    }).listen(3001)

    //html代码

    //响应favicon

    var http=require('http');

    http.createServer(function(req,res){

    if(req.url==='/favicon.ico'){//当请求favion.ico时,返回响应图片

    //favicon.ico浏览器自动请求,显示在浏览器标签中的图片

    //故favicon.ico是一个ico格式的图片  png jpg jepg

    fs.readFile('图片路径',function(err,data){

    //res.setHeader('content-type','image-icon')

    res.write(data)

    res.end()

    })

    }else{

    fs.readFile('html路径',function(err,data){

    res.write(data)

    res.end()

    })

    })

    //只有发送了html文件才会请求favicon

    http的登录注册

    js代码

    var http=require('http')

    var fs=require('fs')

    var qs=require('querystring')

    http.createServer(function(req,res){

    if(req.url==='/'&&req.method==='GET'){

    fs.readFile('总页面',functio(err,data){

    res.write(data)

    res.end()

    })

    }else if(req.url==='/denglu'&& req.method==='GET'){

    fs.readFile('登录页面',function(err,data){

    res.write(data)

    res.end()

    })

    }else if(req.url==='/zhuce' && req.method==='POST'){

    fs.readFile('注册面',functio(err,data){

    req.on('data',function(data){

    fs.appendFile('./userDatabase',data.toString(),function(){

    res.write('注册成功')

    res.end()

    })

    })

    }else if(req.url==='/denglu'&&req.method==='POST'){

    req.on('data',function(data){

    //从数据库中读取注册的内容,然后和注册的数据进行匹配

    fs.readFile('自动创建的内容',function(err,data){

    })

    })

    }

    //if(req.method=='POST'){

    //req.on('data',function(data){

    //fs.appendFile('./userDatabase',data.toString(),function(){

    //res.write('注册成功')

    //res.end()

    //})

    //})

    //}else{

    //fs.readFile('注册页面html',function(err,data){

    //res.write(data)

    //res.end()

    //})

    //}

    }).listen(3001)

    注册页面html

    登录页面html

    登录注册页面

    http协议:

    请求部分:请求行、请求头、请求体

    响应部分:状态码、响应头、响应体

    post和get的区别:

    1、post安全性高  get安全性低

    2、post比get的传输量大

    3、get追加到url后面,post不会追加到url后面

    相关文章

      网友评论

        本文标题:HTTP

        本文链接:https://www.haomeiwen.com/subject/jdnvextx.html