Tag: http

Apache搭建只读的git服务器为什么clone失败?

在Apache的htdocs下创建一个空的 git仓库 git –bare init myweb.git 然后在浏览器访问 http://127.0.0.1/myweb.git/ 确认是可以看到文件的。 但是在git命令行下,用 git clone http://127.0.0.1/myweb.git 却报错 fatal: repository ‘http://127.0.0.1/myweb.git/’ not found 这是为何呢? 不应该是权限问题呀,clone只需要只读权限即可。 是不是空仓库还需要其他配置?

同一域名的 http 和 https 是否可以指向同一 apache 服务器的不同目录?

同一域名的 http 和 https 是否可以指向同一 apache 服务器的不同目录? 例如,80端口指向 /var/www/site-http,443端口指向 /var/www/site-https

重定向下referer的问题

浏览器请求的’/’的时候,假如服务器重定向到’/test’,这个时候请求’/test’的headers里面会有referer吗?为什么?怎样可以让浏览器带上? var express = require(‘express’) , http = require(‘http’) , path = require(‘path’); var app = express(); app.configure(function(){ app.set(‘port’, process.env.PORT || 8888); app.set(‘views’, __dirname + ‘/views’); app.set(‘view engine’, ‘jade’); app.use(express.favicon()); app.use(express.logger(‘dev’)); app.use(express.bodyParser()); app.use(express.methodOverride()); app.use(app.router); app.use(express.static(path.join(__dirname, ‘public’))); }); app.configure(‘development’, function(){ app.use(express.errorHandler()); }); app.get(‘/’, function(req, res, next) { res.redirect(‘/test’); }); app.get(‘/test’, function(req, res, next) { res.send(req.headers); }); […]

telnet 80成功,浏览器无法访问

网站无法访问,现象: 浏览器下 用ip地址可以访问,域名无法访问 域名可以成功ping通 telnet 域名 80, GET xxx \n HOST 域名, 这样能够访问 服务器内网中的机器可以在浏览器中通过域名访问 服务器os是windows server 2008, web server是近版本的nodejs+express。 请问这种情况是什么原因? 还有,浏览器访问网站和telnet 80访问实际上有什么区别? 谢谢!

【求解】nodejs豆瓣小组爬虫分析与解决。

豆瓣小组地址:http://www.douban.com/group/ (采用 request、http.get全部是403错误) (ALL)具体小组地址:http://www.douban.com/group/小组ID/ 例如:分页地址http://www.douban.com/group/kaopulove/discussion?start=数字(采用 request、http.get,还是TM403错误) 该小组下的具体主题地址:http://www.douban.com/group/topic/54905582/(采用 request、http.get,吐血还是403错误) 大伙有没有相应的解决方案呢?demo 等等之类的,这TM的全是403错,这是为毛呢!! 电影的那个爬虫我看过了,测试了是可以爬的。为毛小组爬不了呢? 我也看了不少Python写的爬虫都有爬小组的。为毛nodeJS不行呢?

nodejs的http.request如何发送带参数的post请求?

用nodejs做代理访问外部接口系统,如何实现带参数的post请求? var opt = { host:’localhost’, port:’8888′, method:’POST’, path:’/getTicket’, headers:{ } } var body = ”; var req = http.request(opt, function(res) { console.log(“Got response: ” + res.statusCode); res.on(‘data’,function(d){ body += d; }).on(‘end’, function(){ console.log(res.headers) console.log(body) }); }).on(‘error’, function(e) { console.log(“Got error: ” + e.message); }) req.end(); 以上来自nodejs文档,怎样在请求中添加参数?

为何文档未过期(足够新鲜)时,刷新浏览器(chrome)时却发生了缓存再验证请求?

我在试图用node实现一个简单的服务器时,发现了这个问题,在请求返回中同时设置了Expires及Cache-Control res.setHeader(‘Expires’, expires.toUTCString()); res.setHeader(‘Cache-Control’, ‘max-age=’ + config.Expires.maxAge); 照理说如果文档没有过max-age值得情况下,浏览器只会在缓存中寻找文档,而不会发生再验证请求才对,可是为啥在每次刷新浏览器的时候,请求中都会有If-Modified-Since字段,即进行了再验证。 我在新的浏览器tab中请求该资源的时候,则是200的状态码,且没有产生向服务器的请求,即缓存命中。

node执行http请求时curl报错

最新node0.12.4,执行http请求,多次请求的时候,底层出错了,出问题的时候报的错误太搞笑了: 看来新版node底层是用curl来做的http请求。 function get(url,params,callback,pool) { var options = { qs:params }; if (pool) { options.pool = pool; } request.get(url,options,function(error,response,body) { parseResponse(url,”,error,response,body,callback); }); } exports.get = get; 代码1 httptest.js var testhttp = require(‘../testhttp’); var count = 0; var keepAliveAgent = require(‘../Agent.js’); var agent = new keepAliveAgent({ maxSockets: 100 }); for(var i= 0;i<1000;i++) { testhttp.get(‘http://www.baidu.com’,{},function(err,body) { console.log(count++, […]

Node.js 如何实现请求拦截及转发?

一个类似 Fiddler 和 Chalres 的功能,比如我想将 http://www.baidu.com/hello 这个请求拦截并转发到我本地的 http://127.0.0.1:3000/hello,如何用 Node.js 实现呢?或者有没有现成的轮子可以用?

nodejs http阻塞与非阻塞

Node入门中, 有关于阻塞与非阻塞。如果使用route来返回结果会阻塞, 而使用传递response的方式就不会阻塞,有谁能解释一下吗? 使用route返回结果会阻塞: function onRequest(request, response) { var pathname = url.parse(request.url).pathname; console.log(‘Request for ‘ + pathname + ‘ received.’); var content = route(handler, pathname); response.writeHead(200, {‘Content-Type’:’text/plain’}); response.write(content); response.end(); } http.createServer(onRequest).listen(8888); console.log(‘Server started at port: 8888’); 传递response则不会阻塞: function onRequest(request, response) { var pathname = url.parse(request.url).pathname; console.log(“Request for ” + pathname + ” received.”); route(handle, pathname, […]