ERR_INVALID_CHUNKED_ENCODING-ის გამოკვლევა პროქსის მეშვეობით
დაადგინეთ, სად ხდება პასუხი არასრული ან დამახინჯებული მისი ჩარჩოვნების, შეჩერების წერტილისა და პროქსის მარშრუტის ჟურნალების შედარებით.
ERR_INVALID_CHUNKED_ENCODING ნიშნავს, რომ პასუხი ვერ გაიშიფრა როგორც სრული chunked შეტყობინება. კონტენტის ნაწილის წარმატებით მოსვლა არ ამტკიცებს, რომ პასუხის დარჩენილი ნაწილი ვალიდური იყო.
- შეინარჩუნეთ პასუხის სათაურები და დეკოდერის პირველი შეცდომა. დაადგინეთ, რომელმა კომპონენტმა შეატყობინა და იყო თუ არა შეტყობინება chunked-ად გამოცხადებული.
- იპოვეთ შეჩერების წერტილი. HTTP/1.1 chunked კოდირება მოითხოვს ზომებს, შესაბამის მონაცემებს, გამყოფებს და დამამთავრებელ chunk-ს, საჭიროებისამებრ trailers-ით. ადრეული კავშირის დახურვა და დამახინჯებული ზომა განსხვავებული კვალებია.
- შეადარეთ იგივე კონტროლირებული მოთხოვნა განზრახ მარშრუტზე. შეაბამეთ მოთხოვნა პროქსის და upstream-ის ჟურნალებს. მოძებნეთ upstream-ის დახურვა, შუამავალი ტრანსფორმაცია ან აპლიკაციის გაუქმება ამ წერტილში.
ნუ ივარაუდებთ HTTP ჩარჩოვნებას TCP ბუფერის ზომიდან. ერთი socket წაკითხვა შეიძლება შეიცავდეს ნახევარ chunk-ს ან რამდენიმე chunk-ს; შემდეგ ბიბლიოთეკამ შეიძლება გაშიფრული კონტენტი სხვადასხვა ბუფერში წარმოადგინოს. JSON ჩანაწერს კიდევ სხვა საზღვარი აქვს. პროქსის შეუძლია პასუხის ხელახლა ჩარჩოვნება ორიგინალური პაკეტების საზღვრების შენარჩუნების გარეშე.
თუ მტკიცებულებები ძველ Squid იმპლემენტაციაზე მიუთითებს, შეინარჩუნეთ მისი გამოშვების ნომერი ამ დასკვნასთან ერთად. Squid 2.x-ის პაჩის რჩევები არ აღწერს ყველა მიმდინარე გამოშვებას. შედარების დროს შეინარჩუნეთ ჩვეულებრივი დეკოდირება და სერტიფიკატის ვალიდაცია: შეცდომის ჩახშობამ შეიძლება არასრული ფაილი წარმატებულ ჩამოტვირთვად აჩვენოს.