http模块get

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了http模块get相关的知识,希望对你有一定的参考价值。

4 怎样用http模块?-->http协议

a 引入http模块 var http = require(‘http‘);
b 创建服务器对象 var server = http.createServer();
c 监听端口 server.lisen(8080);
d 监听请求事件 request

5 设置响应头信息 ---> 响应的类型 编码
请求-->请求头和 请求正文
响应-->响应头 和 响应正文

Remote Address 客户端的地址
Request Method 提交数据的方法
content-type:text/html;charset=utf-8 设置的编码和响应的类型

响应的状态码:
200 - 请求成功
304 - 未修改。所请求的资源未修改,服务器返回此状态码时,不会返回任何资源
404 - 请求的资源(网页等)不存在
500 - 内部服务器错误

响应对象上面的方法:
res.write()
res.end()
res.setHeader()
res.writeHead(状态码(200),‘对应显示的信息(成功) ‘,{传入的信息包在这里})

请求对象 请求的时候向服务器发送数据

1 url : http(协议)://localhost(域名)/user?username=zhangsan&password
域名指向网站的根目录
?问号后面的内容 传输的数据 格式 key=value 多个key/value key=value & key1=value1(这些数据叫做查询字符串) &、

提交数据的方式 :
1 get方式 : 提交的数据 显示在浏览器的地址栏

2 post方式

服务端接收数据的方式
1 如果是get方式提交
a 用url模块 解析url地址 形成一个对象 var objurl = url.parse(req.url);
b 用querystring 可以把 objurl.query 转换成对象 objurl.query(key=value & key1=value1)
c 通过对象.属性的形式来使用数据

 

/**
 * Created by Administrator on 2016/10/31.
 */
//1 引入http
var http = require(‘http‘);
var  fs = require(‘fs‘);
var url = require(‘url‘);  //这个模块是内置的专门用来解析 url 解析成一个对象
var querystring = require(‘querystring‘);转换成对象
//2 创建出一个服务器对象 并且监听请求
var server  = http.createServer(function (req,res) {
      //req对象身上 有一个url的属性 可以拿到  域名后面的所有东西  req.ur这是一个字符串
      // console.log(req.url);
     res.setHeader(‘content-type‘,‘text/html;charset=utf-8‘);
      //解析url

      var objurl = url.parse(req.url);
      //console.log(objurl.pathname);
      console.log(objurl.query)  //username=admin&pwd=123456  ==》 {username:admin}

    if(objurl.pathname === "/"){
          //1 读取一个html页面
          fs.readFile(‘./get.html‘,‘utf-8‘,function (err,data) {

               res.write(data);
               res.end();
          })
    }
    if(objurl.pathname === "/login"){
        //接收到浏览器端传过来的数据
        // 获取到username对应的值来做判断
        var queryObj = querystring.parse(objurl.query);
        console.log(queryObj);
        if(queryObj.username === "admin"){
            res.write(‘登录成功‘);
            res.end();
        }else{
            res.write(‘登录失败‘);
            res.end();
        }

    }
    if(objurl.pathname === ‘/home‘){
        res.write(‘欢迎来到个人中心‘);
        res.end();
    }
});
//4 绑定监听的函数
server.on(‘listening‘,function () {
    console.log(‘listening on 3000‘);
});

//3 监听端口
server.listen(3000);
//1 引入http
var http = require(‘http‘);
var mime = require(‘mime‘); //查看当前 你返回的文档的对应的类型的写法
var  fs = require(‘fs‘);
//2 创建出一个服务器对象 并且监听请求
var server  = http.createServer(function (req,res) {
    //req 请求对象
    //res 响应对象  在响应头里面去设置响应的文本类型和编码
    //  var txt =  mime.lookup(‘/path/to/file.mp4‘);         // => ‘text/plain‘
    // console.log(txt);
    // mime.lookup(‘file.txt‘);                  // => ‘text/plain‘
    // mime.lookup(‘.TXT‘);                      // => ‘text/plain‘
    // mime.lookup(‘htm‘);                       //=>‘text/html‘
    //1  用fs模块 把这个网页读取出来
    fs.readFile(‘./get.html‘,‘utf-8‘,function (err,data) {
        //告诉浏览器应该用什么样的类型来解析我返回的数据
        //有时候不知道返回的类型应该是什么,用mime这个模块来查看
       // res.setHeader(‘content-type‘,"text/html;charset=utf-8");
        //状态码  响应头里面设置 一个状态编码 不同的编码表示不同的意思
        //200 表示
        res.write(data);
        res.end();
    })

});
//4 绑定监听的函数
server.on(‘listening‘,function () {
    console.log(‘listening on 3000‘);
});

 

//fs path url querystring http mime
http模块
1 创建一个服务器
a 引入http var http = require(‘http‘)
b 创建 var server = http.createServer(function(req,res){
//业务逻辑
})
c 监听端口 server.listen(8080)
2 request 和 response 对象
request.url 拿到url地址
res.setHeader(key,value) 设置响应头信息
res.writeHead(‘状态码‘,‘描述信息‘,{})
res.write()
res.end()
3 浏览器和服务器相互通信
浏览器向服务器发送数据:
a 用get方式发送: 表单里面有get方式 a标签 a href="localhost:8080/user?username=xxx"
b post方式去发送:
服务器接收浏览器的数据的方式:
a get方式发送的数据:
1 先把url取到 2 把url解析 成对象 var 0bj = url.parse(req.url) s
3 dataObj = querystring.parse(obj.query)
b post 方式发的数据:
如果是post提交的话 1 req.on(‘data‘,function(data){}) 2 req.on(‘end‘,function(){}) 3 querystring

服务器向浏览器发送数据:
res.write();
res.end();

 

以上是关于http模块get的主要内容,如果未能解决你的问题,请参考以下文章

比较有用的php代码片段

简单的 Javascript http 请求片段但不起作用

Node.js与HTTP响应主体的unicode问题

Python练习册 第 0013 题: 用 Python 写一个爬图片的程序,爬 这个链接里的日本妹子图片 :-),(http://tieba.baidu.com/p/2166231880)(代码片段

Python snippet(代码片段)

如何使用模块化代码片段中的LeakCanary检测内存泄漏?