Jint PAC შეფასება: გამოტოვებული დამხმარეები და მარშრუტის შედეგები
FindProxyForURL-ის შესრულება ერთი ნაბიჯია: ჰოსტმა უნდა განახორციელოს PAC დამხმარეები, შეზღუდოს შესრულება და განმარტოს დაბრუნებული მარშრუტების სია.
თუ Jint PAC-ის შეფასებისას იუწყება გამოტოვებულ dnsResolve ან myIpAddress-ზე, მეტი JavaScript-ის ჩატვირთვა სავალდებულო გადაწყვეტა არ არის. ეს PAC დამხმარეები ჰოსტ-აპლიკაციის მიერ მოწოდებულ გარემოს ეკუთვნის.
FindProxyForURL-ის გამოძახებამდე
აირჩიეთ მხარდაჭერილი PAC დამხმარეების ნაკრები და მისამართების ოჯახები, შემდეგ დააყენეთ ეს დამხმარეები ძრავზე. შეინარჩუნეთ მათი კონტრაქტები: dnsResolve იღებს ჰოსტის სახელს, myIpAddress არგუმენტებს არ იღებს და სჭირდება ლოკალური ინტერფეისის პოლიტიკა, ხოლო shExpMatch იყენებს shell-ის სტილის შაბლონებს. მოსახერხებელი მნიშვნელობის დამბრუნებელმა stub-მა შეიძლება ჩუმად აირჩიოს არასწორი მარშრუტი.
ამ ინიციალიზაციის შემდეგ, ძირითადი გამოძახება Jint 4.4.0-ში ასე გამოიყურება:
var destination = new Uri(destinationUrl);
engine.Execute(pacSource);
var routeList = engine.Invoke(
"FindProxyForURL",
destinationUrl,
destination.IdnHost
).AsString();engine არის კონფიგურირებული Jint.Engine; pacSource არის მიღებული PAC პროგრამა. destination.IdnHost გადასცემს ჰოსტის სახელს პორტისა და ბილიკის გარეშე. ეს გამოძახება არც PAC-ს იღებს და არც პროქსი კავშირს ხსნის.
გამოძახების შემდეგ
განმარტეთ PROXY proxy.example:8080; DIRECT-ის მსგავსი შედეგი, როგორც მარშრუტის კანდიდატებისა და სარეზერვო ვარიანტის დალაგებული სია. მთელი სტრიქონის პროქსი URL-ად გადაცემა კარგავს მის მნიშვნელობას. გამოყავით შეფასების ჩავარდნა გამოკვეთილი DIRECT შედეგისგან.
მუშაობის დროს
დააკონფიგურირეთ Jint-ის ხანგრძლივობის, ოპერატორების, მეხსიერებისა და გაუქმების შეზღუდვები და გამოაჩინეთ მხოლოდ საჭირო ჰოსტ-ფუნქციები. შეზღუდეთ DNS პასუხები ცალკე: JavaScript-ის შესრულების შემოწმებები თვითნებურ ბლოკირებად ჰოსტ-გამოძახებას წყვეტად არ ხდის. სერიალიზაცია უყავით ძრავზე წვდომას ან პარალელურ სამუშაოს მიეცით ცალ-ცალკე საკუთრებაში არსებული ეგზემპლარები; ძრავები ერთდროული გამოყენებისთვის უსაფრთხო არ არის.
ბრაუზერების PAC იმპლემენტაციები შეიძლება განსხვავდებოდეს დამხმარეების გაფართოებებითა და გამოქვეყნებული URL დეტალებით, განსაკუთრებით HTTPS-ისთვის. ერთი ნიმუშის შედეგის დამთხვევა ნაკლებს ამტკიცებს, ვიდრე ბრაუზერის მარშრუტიზაციის ქცევის დამთხვევა.