node - http方法

首先先看一下
HTTP协议是用于从WWW服务器传输超文本到本地浏览器的传送协议它是基于TCP的应用层协议,它不关心数据传输的细节,主要是用来规定客户端和服务端的数据传输格式,最初是用来向客户端传输HTML页面的内容。默认端口是80。
HTTP协议通常承载于TCP协议之上,有时也承载于TLS或SSL协议层之上,这个时候,就成了我们常说的HTTPS

http报文

在这里插入图片描述
请求报文就是由请求行、请求头、内容实体组成的。其中请求头是键值对的形式存在的,就是字段名:值;请求行指定的是请求方法、请求URL、协议版本;内容实体就是要传输的数据。
如访问www.baidu.com的请求头:
在这里插入图片描述

响应报文

HTTP的响应报文也由响应行,响应头,响应体三部分组成。

http状态码

状态码是用来告知客户端服务器端处理请求的结果。凭借状态码用户可以知道服务器是请求处理成功、失败或者是被转发。
在这里插入图片描述

http方法

1.get

使用get方法时,查询字符串添加到URL地址后一起发送到服务器:
www.baidu.com/s?wd=http&ie=utf-8
get请求能够被缓存
get请求会保存在浏览器的浏览记录中
以get请求的URL能够保存为浏览器书签
get请求有长度限制
get请求主要用以获取数据

var request = require("request");
var options = {
    url:'http://www.baidu.com'
    // url: 'https://api.some-server.com/',
    // agentOptions: {
    //     cert: fs.readFileSync(certFile),
    //     key: fs.readFileSync(keyFile),
    //     passphrase: 'password',
    //     securityOptions: 'SSL_OP_NO_SSLv3'
    // }
};

request.get(options, function(err, response, body){
    console.info(response.body);
});

从服务器取出资源(一项或多项)
GET请求的数据会附在URL之后(就是把数据放置在HTTP协议头中),以?分割URL和传输数据,参数之间以&相连

2.post:

使用POST方法时,查询字符串在post信息中单独存在,和http请求一起发送到服务器,一般表单数据提交都用post的方式。
post请求不能被缓存下来
post请求不会保存在浏览器浏览记录中
以post请求的URL无法保存为浏览器书签
post请求没有长度限制

 var request = require("request");
 var options = {
        url: url,
       	qs : {//query
       		id: 20190929T060801Z
        },
        headers:{
            device:"asdfasdfaadfasdf"
        },//req.headers
        form: {// form-data
            deviceid:"xxxxxxx",
            handle:"12331242134",
            name:"Cindy_Crawford_0002.jpg",
            filepath:"http://xxxxxxxx.us-east-1.amazonaws.com/jwli/001.jpg"
        }  //req.body
        // body: filedata   // bin data
    };

    request.post(options, function(error, response, body) {
        console.info('response:' + JSON.stringify(response));
        console.info("statusCode:" + response.statusCode)
        console.info('body: ' + body );
    });

在服务器新建一个资源。
POST把提交的数据则放置在是HTTP包的包体中。

3.put

在服务器更新资源(客户端提供改变后的完整资源)

   var request = require("request");
   var options = {
        url: 'http://xxxxxxxx.s3.us-east-1.amazonaws.com' +s3_path,// ,
        headers: { 
            host: 'jwlipirtest.s3.amazonaws.com', 
            'x-amz-content-sha256':'UNSIGNED-PAYLOAD',
            'x-amz-date':date,
            Authorization: result
        },
        body:bitmap
    };

    request.put(options, function(error, response, body) {
        console.info('response:' + JSON.stringify(response));
        console.info("statusCode:" + response.statusCode)
        console.info('body: ' + body );
    });

post 和put一般都是对服务器数据改动,post侧重于数据增加,put侧重于数据修改

4.delete

从服务器删除资源

var request = require("request");

var options = {
    url:'http://172.28.28.4:3017/files/testhttp',
	headers:{
		uid:"xxxxxxxx"
	},
	form:{
		target:"/user/one"
	}//req.body
};

request.del(options, function(err, response, body){
    console.info(response.body);
});

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值