如何在python

时间:2015-07-02 19:07:35

标签: python redirect cookies

我正在编写一个代理服务器,我将拦截一个请求,并检查标头是否有一个名为URID的cookie,如果没有,我想将请求重定向到fw.asta.com,看看这个域是否有一个名为URID的cookie,如果它没有,我想为fw.cisco.com设置cookie,然后重定向到最初预期的站点,然后为该站点设置相同的cookie同样。如果fw.asta.com网站存在cookie,我将使用该cookie重定向到最初预期的网站,如果最初预期的网站有URID cookie,我将代表该网站提供请求。 / p>

所以我一直在努力解决这个问题。我有一种感觉,我不明白在重定向过程中设置cookie时实际发生了什么。

我在这里有这个代码:

def do_GET(self):
    #seperate the path into parts
    (scm, netloc, path, params, query, fragment) = urlparse.urlparse(self.path, 'http')

    #check the header for the urid cookie, returns the URID if present
    urid = self.find_urid()


    if netloc == 'fw.asta.com':
        if urid:
            #redirect to the originally intended site and set the cookie
            path = self.path[23:]
            self.redirect_with_urid(path, urid)
        else:
            #redirect to fw.asta.com
            urid = 333
            self.redirect_with_urid(self.path, urid)
    else:
        if urid:
            #simply serve the site because if has the URID
            self.final_destination()
        else:
            #no urid, so we need to go the fw.asta.com to check if the urid is there
            self.redirect('http://fw.asta.com/?url=' + str(self.path))

正如您所看到的那样,逻辑是有意义的,但是当我运行代码时,我会遇到无限重定向循环到最初的目标网站。

当我收到重定向响应时,我可以清楚地看到set-cookie字段在那里,但是,当我收到重定向请求时,它不会将cookie发回给我。

这是解决问题的正确方法吗?任何建议将不胜感激。

0 个答案:

没有答案