bad request

Полдня пропарился, не знаю, куда п;сать. Gentoo это не касается, но на форумах, посвящённых разработки web-приложений я не зарегистрирован, решил попробовать написать здесь.

Имеется cgi скрипт следующего содержания:

#!/usr/bin/python
# -*- coding: utf-8 -*-
import socket
import base64
import cgitb
cgitb.enable()
print 'Content-type: text/html'
print ''
print '<title>omts</title>'
import os
r=os.getenv('PATH_INFO')
url=base64.urlsafe_b64decode(r.split('/')[1])
sock=socket.socket(socket.AF_INET)
sock.connect((url.split('/')[2],80))
req='GET '+url+' HTTP/1.1\n\rHost: ya.ru\n\rUser-Agent: Wget'
socket._fileobject(sock).write(req)
#s=sock.recv(1024)
s=base64.b64encode(req+socket._fileobject(sock).read())
s=s.replace('0','а')
s=s.replace('1','б')
s=s.replace('2','в')
s=s.replace('3','г')
s=s.replace('4','д')
s=s.replace('5','е')
s=s.replace('6','ё')
s=s.replace('7','ж')
s=s.replace('8','з')
s=s.replace('9','и')
s=s.replace('+','й')
s=s.replace('/','к')
print s

В PATH_INFO передаётся кодированый url страницы и он выводит кодированое содержимое, нужно, чтоб протянуть страницу через opera mini.
Но при запросе любого url получается bad request
Если убрать всё после url, запрос принимает. Пробовал разные вариации параметров запроса (Accept и пр) - не помогло.
За грубый скрипт не ругайте - до оптимизации не дошло.
Если в PATH_INFO передавать запрос от браузера, то работает, правда, сказывается ограничение длины адреса на хостинге.

(*)

Предлагаю не сокеты открывать, а pycurl использовать. Для отладки выставив pycurl.VERBOSE в 1

mittorn написал(а): Но при

mittorn написал(а):
Но при запросе любого url получается bad request

Где получается-то? В браузере? В Opera Mini?

Текстовый редактор vi имеет два режима работы: в первом он пищит, а во втором — всё портит.

Всё это состоит из 2х частей:

Всё это состоит из 2х частей: сервер и клиент. Сервер - cgi-скрипт, выложенный выше, работает на хостинге, а клиент - локальный прокси, запрашивающий с сервера страницы через OMPD. До этого был почти такой же скрипт, но кодировал он весь запрос, всё работало отлично, пока не ограничили длину url до 700 (примерно) байт. Запросы перестали проходить. Пока временно решил сделать так. Аналогичный скрипт на urllib работает, но не пропускает заголовки и не работают картинки.

Локальный оверлей растёт

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".