curl --resolve ....在PHP CURL库中是否有等价物?
背景:我有循环DNS(一个域名解析为多个IP),我想向特定主机发送请求.我使用基于apache名称的虚拟主机,因此必须在HTTP请求中显示正确的域名.
我已经尝试在请求URL中指定IP:curl_setopt($ch, CURLOPT_URL, '127.0.0.1')和使用curl_setopt($ch, CURLOPT_HTTPHEADER, 'Host: example.com').它适用于HTTP,但对于HTTPS,我得到SSL验证错误(显然CURL验证证书与URL主机名和非Host:主机名).
使用hosts文件不是一个方便的选择.
我正在研究node.js并在node.js手册中遇到了这个例子:
...
var req = http.request(options);
req.end();
req.on('upgrade', function(res, socket, upgradeHead) {
console.log('got upgraded!');
socket.end();
process.exit(0);
});
...
Run Code Online (Sandbox Code Playgroud)
我在这个例子中看到的是,在创建请求之后,甚至在(计划发送)之后,处理程序附加到HTTP请求事件.更糟糕的是,手册说:
如果未侦听此事件,则接收升级标头的客户端将关闭其连接.
事件是否有可能在 req.on(...有机会附加处理程序之前发生?我怀疑我对节点异步模型中的某些内容并不了解.或者这个代码来自节点手册,希望网络请求比执行下一行代码需要更长的时间?
另一个例子:
http.get("http://www.google.com/index.html", function(res) {
console.log("Got response: " + res.statusCode);
}).on('error', function(e) {
console.log("Got error: " + e.message);
});
Run Code Online (Sandbox Code Playgroud)
这里,HTTP请求将在创建对象后立即启动,之后我们才会附加错误处理程序.同样,(1)它是一个仅因网络延迟而起作用的代码,(2)我没有得到关于node.js概念的东西,或者(2b)事件将"等待"直到我附加一个处理程序?
编辑:更好的例子,也来自手动.下面的好的和坏的例子是不同的,因为在好的例子中我们足够快地附加事件,因此错过数据的机会很少,或者永远不可能以这种方式错过数据(为什么?!)
// Good
request.on('response', function (response) {
response.on('data', function (chunk) {
console.log('BODY: ' + chunk);
});
});
// …Run Code Online (Sandbox Code Playgroud) 我想用更好的东西替换PHP(似乎每个人都说PHP是邪恶的,对吗?),并考虑服务器端JavaScript.
node.js似乎很受欢迎,但我担心我会因为异步的东西而疯狂.是否可以在节点下编写正常(同步)代码?
我的清单:网络和命令行脚本,良好的性能(在
计算机语言
基准游戏 ,V8似乎比PHP快一个数量级),最好是由一些公司或社区开发,以便它不会有一天被放弃,用户社区有一个像样的模块库.
我不考虑基于Rhino的各种框架,因为Rhino在Java中运行,而我不是Java,意识到它的内存占用,而且将javascript编译为java的整个想法对我来说毫无意义.
花了一些时间谷歌搜索,并发现了许多项目:Myna,Meteor,GromJS,APE,GLUEscript,v8cgi,silkjs,wakanda,GPSEE,sorrowjs,ejscript,Persevere,PhantomJS.
有人有经验吗?欢迎任何建议.
javascript server-side server-side-scripting javascript-framework serverside-javascript
我正在开发某种 VPN 应用程序,需要虚拟网络接口(又名 TUN/TAP)。是否有任何适用于 Windows 的驱动程序?
我所知道的唯一一个是 OpenVPN,但它是 GPL 的,因此 AFAIK 不能在封闭源应用程序中使用。
如果没有现成的解决方案,我会很感激自己对这种野兽进行编码有多复杂的一些估计(以及可能从哪里开始的一些方向)。
我发现了这个类似的问题,但它可以追溯到 2008 年。
(我是JavaScript的新手).以下代码:
function A() {
console.log('Constructing A');
this.a = new Array();
}
function B(x) {
console.log('Constructing B');
this.a.push(x);
this.b = x;
}
B.prototype = new A();
b1 = new B(10);
b2 = new B(11);
console.log('b1', b1);
console.log('b2', b2);?
Run Code Online (Sandbox Code Playgroud)
b1和b2中的结果共享单个 this .a数组(但不同 this.b).这就像一张浅色的副本.
我不太明白什么是创建单独 this.a数组的正确方法.我希望它们继承,因为这是代码的逻辑,除了我不想在每个子对象中创建它们(在我的情况下有很多子对象).
javascript ×2
curl ×1
http ×1
inheritance ×1
node.js ×1
oop ×1
php ×1
server-side ×1
ssl ×1
vpn ×1
windows ×1