Selamlar,
Bir sistemde redirect url işlemem gerekiyor ve şuanda 10gbp/s portlu cihazlardan url'nin redirect url'sini çekiyoruz 1.05 saniye sürelerinde çekiyor.
Bundan daha hızlı 0.5 saniye içnide çekmesi içni yapılabilecek örnek kodunuz var mı?
En Hızlı Redirect URL Nasıl Bulunur?
2
●80
- 12-11-2025, 12:11:02
- 12-11-2025, 12:18:450.70 saniye civarında veriyor.
#!/usr/bin/env python3 import time,sys;from urllib.parse import urljoin;import requests;from requests.adapters import HTTPAdapter def get_first_redirect_url(u,t=(2,3)): s=requests.Session();a=HTTPAdapter(pool_connections=1,pool_maxsize=1,max_retries=0);[s.mount(x,a) for x in['http://','https://']] s.headers.update({"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36"}) for m,to in[("HEAD",(1,2)),("GET",t)]: try: r=s.request(m,u,allow_redirects=False,timeout=to,stream=False);break except requests.RequestException as e: if m=="GET":raise e st=r.status_code;loc=r.headers.get("Location") if 300<=st<400 and loc:return urljoin(r.url,loc) return None def main(): try: u=input("Kontrol edilecek URL: ").strip() if not u:print("Boş URL veremezsiniz.");sys.exit(1) t0=time.time();r=get_first_redirect_url(u);t1=time.time() et=t1-t0 if not r:print("Redirect yok veya Location header bulunamadı.");print(f"\033[92mİşlem süresi: {et:.2f} saniye\033[0m");return print("\nİlk redirect URL (url1 -> url2):");print(r) print(f"\n\033[92mİşlem süresi: {et:.2f} saniye\033[0m") except requests.RequestException as e:print(f"Hata: {e}") except KeyboardInterrupt:print("\nİptal edildi.") if __name__=="__main__":main() - 12-11-2025, 12:20:550.50 saniye civarında çekebiliyor GO bilenler bunu deneyebilirsiniz;
package main;import("bufio";"context";"fmt";"net/http";"net/url";"os";"strings";"time") func g(u string)(string,error){M:=[]struct{m string;t time.Duration}{{"HEAD",2*time.Second},{"GET",3*time.Second}} ua:="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36" c:=&http.Client{CheckRedirect:func(r *http.Request,v []*http.Request)error{return http.ErrUseLastResponse}} for _,x:=range M{ctx,cl:=context.WithTimeout(context.Background(),x.t) req,er:=http.NewRequestWithContext(ctx,x.m,u,nil);if er!=nil{cl();if x.m=="GET"{return"",er};continue} req.Header.Set("User-Agent",ua);resp,er:=c.Do(req);if er!=nil{cl();if x.m=="GET"{return"",er};continue} st:=resp.StatusCode;loc:=resp.Header.Get("Location");resp.Body.Close();cl() if st>=300&&st<400&&loc!=""{return rU(resp.Request.URL.String(),loc),nil} if x.m=="HEAD"{continue}};return"",nil} func rU(b,r string)string{u,e:=url.Parse(r);if e!=nil{return r};if u.IsAbs(){return u.String()} bu,er:=url.Parse(b);if er!=nil{return r};return bu.ResolveReference(u).String()} func main(){rd:=bufio.NewReader(os.Stdin);fmt.Print("Kontrol edilecek URL: ") i,er:=rd.ReadString('\n');if er!=nil{fmt.Println("Hata:",er);return} u:=strings.TrimSpace(i);if u==""{fmt.Println("Boş URL veremezsiniz.");os.Exit(1)} st:=time.Now();r,er:=g(u);et:=time.Since(st) if er!=nil{fmt.Printf("Hata: %v\n",er);return} if r==""{fmt.Println("Redirect yok veya Location header bulunamadı.") fmt.Printf("\033[92mİşlem süresi: %.2f saniye\033[0m\n",et.Seconds());return} fmt.Println("\nİlk redirect URL (url1 -> url2):");fmt.Println(r) fmt.Printf("\n\033[92mİşlem süresi: %.2f saniye\033[0m\n",et.Seconds())}