Проксигоор хүлээн авсан хариу харьцангуй Location буцааж болно:

Location: ../new/

Орчин үеийн HTTP энд URI лавлагааг зөвшөөрдөг. Хариуг үүсгэсэн URL-тэй харьцуулан шийдээрэй. Хэрэв тэр URL https://docs.example/catalog/old/ байсан бол дээрх лавлагаа https://docs.example/catalog/new/-ыг заана. Проксигийн хостын нэр нь суурь биш.

Энгийн Python urllib хүсэлтүүдэд проксигийн төгсгөлийн цэгийг тойруулан мөр холбохын оронд түүний дахин чиглүүлэлтийн боловсруулагчийг ашиглана уу:

opener = build_opener(ProxyHandler({
    "https": "http://proxy.example:8080",
}))
with opener.open("https://docs.example/catalog/old/",
                 timeout=15) as response:
    final_url = response.geturl()

Прокси баталгаажуулалтгүй энэ нийтийн баримт бичгийн хүсэлтэд HTTP прокси жагсаалтаас HTTP нэр дэвшигч зам зөвшөөрөгдсөн үед жишээ төгсгөлийн цэгийг сольж чадна. Классууд urllib.request-ээс гаралтай. Түүний энгийн боловсруулагч дэмжигдсэн дахин чиглүүлэлтүүдийг өөрийн хязгаарт дагадаг. final_url нөөцийн эцсийн URL-ыг тодорхойлдог бөгөөд түүнд хүрэхэд ашигласан зуучлагчийг биш.

Эхлээд шийдэж, дараа нь дараагийн замыг сонгоно уу

Дахин чиглүүлэлт нь зорилтот хост эсвэл схемийг өөрчилж болно. Тиймээс зорилтод суурилсан прокси бодлого тэр шинэ URL-ыг ч үнэлэх ёстой. Эхний хостод ажилласан зам дараагийнх нь зам байхгүй байж болно.

Дахин чиглүүлэлтийн боловсруулалтыг өөрөө хэрэгжүүлэхдээ цэгэн сегментийн боловсруулалттай URI лавлагааны шийдлийг ашиглана уу. Бодит статус кодын аргын дүрмийг хадгалж, дахин чиглүүлэлтийн хязгаар тогтооно уу. Location-ыг хостын нэрэнд залгах нь тэр шийдлийн алгоритмыг орлохгүй.

Дахин чиглүүлэлт бүтэлгүйтвэл хүссэн URL, хариуны статус, Location утга болон шийдэгдсэн дараагийн URL-ыг хадгална уу. Эдгээр дөрвөн утга нь ихэвчлэн алдаа URL бүтээх эсвэл дараа нь оролдсон холболтод хамаарах эсэхийг харуулдаг.

Холбоотой нийтлэлүүд