首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在响应请求之前,web服务器可以以何种方式检查是否重定向现有页面上的GET请求?

在响应请求之前,web服务器可以以何种方式检查是否重定向现有页面上的GET请求?
EN

Stack Overflow用户
提问于 2014-09-17 11:17:55
回答 2查看 47关注 0票数 0

我试图用Node.js (使用request模块)向第三方(不受我控制) web服务器发送HTTP请求,并被服务器重定向到登录页面。它拒绝发送页面,因为我没有登录。

由于重定向不可能发生在客户端(我请求页面,而不是解析页面),所以我不明白web服务器如何在决定是否发送页面之前检查本地数据或cookie以查看我(我的HTTP请求)是否已登录。

我的问题

在响应请求之前,web服务器可以以何种方式潜在地检查是否重定向现有页面上的GET请求?

我的代码

代码语言:javascript
复制
var request = require('request');

function checkUsername(username) {

    request({
        uri : "http://www.kongregate.com/accounts/" + username + "/recently-played",
        method : "GET",
        timeout : 10000,

        //in order to avoid being redirected to the login page, I've used:
        followRedirect : false,
        maxRedirects : 0
    }, function(error, response, body) {
        if (error)
            console.log("Player does not exist");
        else {
            console.log("Player exists!");
            }
        }
    });

}

checkUsername("jonathan_t0dd");

这避免了成功的重定向,但提供了html:

代码语言:javascript
复制
<html><body>You are being <a href="http://www.kongregate.com/session/new">redirected</a>.</body></html>

我想以一种让我能够理解如何向服务器提供成功地提供我所请求的资产所需的数据的方式来理解这个场景。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-09-17 11:28:45

浏览器将向服务器发送cookie,以便web服务器知道您是否已登录。

如果您想手动执行此操作,可以查看网站在浏览器中设置的cookie,并将它们添加到您的请求中。

模块request具有设置cookie的api,例如:

代码语言:javascript
复制
var j = request.jar()
var cookie = request.cookie('your_cookie_here')
j.setCookie(cookie, uri);
request({url: 'http://www.google.com', jar: j}, function () {
    request('http://images.google.com')
})

访问请求文件查看详细信息。

票数 0
EN

Stack Overflow用户

发布于 2014-09-17 11:26:05

我不明白web服务器如何检查本地数据或cookie,看看我(我的HTTP请求)是否已登录,然后才决定是否向我发送该页面。

每个HTTP请求都会将Cookies发送到服务器。这就是饼干的意义所在。所以,几乎可以肯定,只要看看饼干就行了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25889112

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档