首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在python中将请求重定向到不同的url?

如何在python中将请求重定向到不同的url?
EN

Stack Overflow用户
提问于 2010-03-24 18:40:02
回答 3查看 45.9K关注 0票数 24

我一直在寻找语法,以重定向一个特殊的网址到远程服务器做一些XSS测试。有什么想法吗?

代码语言:javascript
复制
import SimpleHTTPServer
import SocketServer

class myHandler(SimpleHTTPServer.SimpleHTTPRequestHandler):
    def do_GET(self):
        print self.path 
        if self.path == '/analog':
-------------------->return "http://12b.dk/analog"???
        return SimpleHTTPServer.SimpleHTTPRequestHandler.do_GET(self)

theport = 1234
Handler = myHandler
pywebserver = SocketServer.TCPServer(("", theport), Handler)

print "Python based web server. Serving at port", theport
pywebserver.serve_forever()
EN

回答 3

Stack Overflow用户

发布于 2010-03-24 18:57:22

对于重定向,您必须返回一个代码301,外加一个Location头。也许你可以尝试一下这样的方法:

代码语言:javascript
复制
class myHandler(SimpleHTTPServer.SimpleHTTPRequestHandler):
   def do_GET(self):
       self.send_response(301)
       self.send_header('Location','http://www.example.com')
       self.end_headers()
票数 25
EN

Stack Overflow用户

发布于 2014-03-05 04:08:19

这是一段完整的代码,可以重定向、保存此文件并将其作为python程序运行。要终止,请按ctrl + c。

代码语言:javascript
复制
import SimpleHTTPServer
import SocketServer
class myHandler(SimpleHTTPServer.SimpleHTTPRequestHandler):
   def do_GET(self):
       print self.path
       self.send_response(301)
       new_path = '%s%s'%('http://newserver.com', self.path)
       self.send_header('Location', new_path)
       self.end_headers()

PORT = 8000
handler = SocketServer.TCPServer(("", PORT), myHandler)
print "serving at port 8000"
handler.serve_forever()
票数 7
EN

Stack Overflow用户

发布于 2014-11-07 16:29:49

HTTP状态代码301具有永久移动的请求的含义,并且应该被重定向到建议的URI,该URI被设置为响应头字段、位置。但是,重定向的发生取决于浏览器的实现。

代替301,返回303告诉浏览器可以在其他URI下找到该请求的响应,并且有效地管理浏览器以将GET请求重定向到另一个URI。Hense,303是更好的选择。

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

https://stackoverflow.com/questions/2506932

复制
相关文章

相似问题

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