现在遇到一个问题,公司的服务器防火墙针对User-Agent做了拦截。需要特定的User-Agent才能访问到API接口
如果用上篇的方法js的ajax请求目前在很多浏览器中是无法修改User-Agent,这样的话导致api请求可能无法成功。
我们可以在nodejs这一层加入请求修改User-Agent,不仅仅可以在nodejs这一层代理修改User-Agent,还可以修改request和response
例如
下面就修改了request的headers 添加了mytest=0000000000000和User-Agent= mytest
也修改了request里面的body给body添加了 Type : 'jpg' 以及修改了 FileName : '2.jpg'
一定要注意如果修改了 request 的 body 值一定要重新设置 Content-Length
response原本是返回一个json {"ID":"1234567890","Name":"张三"} ,也把这个json改了,改成 {"ID":"1234567890","Age":2}
原来是请求了favicon.ico(浏览器默认会请求一次favicon.ico),那就做下过滤吧。客户端、服务端对我们都不陌生,Node.js中的HTTP接口被设计成支持协议的许多特性。比如,大块编码的消息。这些接口不缓冲完整的请求或响应,用户能够以流的形式处理数据。
为了支持各种可能的HTTP应用,Node.js的HTTPAPI是非常底层的。它只涉及流处理与消息解析。它把一个消息解析成消息头和消息主体,但不解析具体的消息头或消息主体。
本人博客文章地址: 点击进入
这是一个HTTP2的演示地址,分别用HTTP/1.1和HTTP/2请求379张图片,对比出HTTP/2在速度上的优势
打开控制台查看网络请求,我们可以发现HTTP/2和HTTP/1.1的明显区别
HTTP/1.1:
HTTP/2:
由上图可以看出, 多路复用允许同时通过单一的 HTTP/2 连接发起多重的请求-响应消息;而HTTP/1.1协议中,浏览器客户端在同一时间,针对同一域名下的请求有一定数量限制。超过限制数目的请求会被阻塞
效果:
推送效果:
无推送效果:
作者博客地址: https://liuhuihao.com
作者gitHub: https://github.com/geminate