Hesabat brauzerdə açılır, parametrlər göstərilir, ixrac düyməsi isə xəta, boş yükləmə və ya cədvəlin açmaqdan imtina etdiyi fayl verir. Bu birləşmənin standart forması var. İşləyən hesabat səhifəsi renderi və autentifikasiyanı sınaqdan keçirmişdir, başqa heç nəyi yox. İxrac öz cavabı olan ayrı sorğudur və müştərisiz portaldan keçərkən həm də heç vaxt fayl yükləmələri üçün dizayn edilməmiş yenidən yazma qatından keçir.

İki yol, bir işləyən səhifə

Render və ixrac eyni düymədən başlasalar da, fərqli əməliyyatlardır. Hesabat serveri səhifəni brauzer üçün render edir, ixracı isə öz məzmun növü və öz xəta davranışı olan fərqli çıxış uzantısı ilə verir, ixrac sənədləşməsi bunu təsvir etdiyi kimi. Birinci cavabı mükəmməl ötürən portal ikincini yenə də poza bilər, çünki ikinci portalın görməyi gözləmədiyi cavabdır. İkisi sessiya və ünvan paylaşır, demək olar ki, başqa heç nə paylaşmır.

İşləyən səhifəyə yalnız autentifikasiya və əlçatanlıq sübutu kimi baxın. O, hesabın hesabat serverinə çata bildiyini və portalın HTML ötürdüyünü sübut edir. Fayl cavabları, məzmun yerləşməsi başlıqları və ya sənədlə deyil, yükləmə ilə bitən yönləndirmələr barədə heç nə demir.

İxrac yolunu artıq işləyən səhifəni yenidən sınaqdan keçirmək yerinə ayrıca müqayisə etməyin bütün səbəbi budur. Sessiyanı paylaşan iki sorğu yenə də iki sorğudur.

İxracın harada qırıldığını müəyyən edən üç şərt

Üç sual nasazlığı tez yerində qoyur və hər cavab fərqli sahibə işarə edir.

Birincisi, eyni hesabat, hesab və format daxili şəbəkədən düzgün ixrac olunurmu? Əgər belədirsə, hesabat serveri və onun rendereri qaydasındadır və fərq giriş yolundadır. İkincisi, uğursuz cavab fayl məzmun növü daşıyır, yoxsa fayl uzantısı geyinmiş HTML səhifəsi? Bu, renderer xətasını portaldan gələn əvəzləmədən ayırır. Üçüncüsü, portal sorğu URL-ni yenidən yazır, yoxsa cavabdan başlıqları silir? Yenidən yazılmış URL tamamilə fərqli son nöqtəyə düşə bilər.

Hər hansı parametri dəyişməzdən əvvəl hər üçünə cavab verin, çünki hər birinin fərqli çarəsi var. Renderer nasazlığı hesabat serverinə aiddir, əvəzlənmiş gövdə portala aiddir, silinmiş başlıq isə xəta deyil, siyasət məsələsidir.

Cavabları yazın. Həmin üç sətirdən qurulan dəstək işi on ekran görüntüsünə dəyər.

Status kodu yerinə ixrac cavabını oxuyun

HTTP uğur statusu yalnız kiminsə sorğuya cavab verdiyini sübut edir. Gövdəni və başlıqları birlikdə yoxlayın, çünki maraqlı nasazlıq yanlış məzmun daşıyan uğurlu cavabdır.

curl -sS -D export.headers -o export.bin --location "https://portal.example.com/reports/export?format=xlsx"
file export.bin
head -c 300 export.bin

Başlıq çıxarışı məzmun növünü və portalın qaytardığı hər hansı məzmun yerləşməsini göstərir. file əmri gövdənin əslində nə olduğunu müəyyən edir və cədvəl gözlənilən yerdə mətn faylının olması klassik əvəzlənmiş giriş səhifəsidir. head əmri bütün hesabatı terminala tökmədən HTML-i tanımaq üçün kifayət qədər göstərir.

Hər hansı birini paylaşmazdan əvvəl sessiya kukilərini və tokenləri silin. İşləyən ixracın çıxarışı faydalı sübutdur, başqasına aid sessiyanın çıxarışı isə insidentdir.

İstisnanı hesaba deyil, tətbiqə həddləyin

Portal cavabı yenidən yazır və ya bloklayırsa, cəlbedici düzəliş bütün saytı azad etmək və ya hesabatı anonim etməkdir. Hər ikisi yükləməni düzəldir və portalın varlıq səbəbini aradan qaldırır. Həddlənmiş istisna bir tətbiq yolu, bir məzmun növü və bir istiqamət adlandırır və siyasətin sahibi kimdirsə, onun üçün yoxlanıla bilən qalır.

Həqiqətən işlətdiyiniz şlüz versiyasını və onun sənədləşdirilmiş tətbiq parametrlərini istifadə edin. Bir təchizatçının vaxtilə trafiki dəyişməz qoyan kimi təsvir etdiyi seçim ümumi təlimat deyil və onu köhnə forum mövzusundan köçürmək müvəqqəti istisnanın daimi arxitekturaya çevrilmə yoludur.

İstisna bu qədər dar həddlənə bilmirsə, ixrac yəqin ki portalın arxasında deyil, fərqli giriş üsulu ilə daxili yola aiddir. Sayt miqyasında azadetmə portal sahibinin qərarıdır, bir hesabat üçün müvəqqəti həll deyil.

Saxlama pəncərəsini deyil, ixracı qəbul edin

Son yoxlama faylın özüdür: açılır, gözlənilən sütunları saxlayır və cəmləri istifadəçinin təsdiqlədiyi hesabatla uyğun gəlir.

Saxlama pəncərəsinin görünməsi uğur deyil və bərpa xəbərdarlığı ilə açılan fayl da uğur deyil. Sətir sayını və bir məlum dəyəri ekrandakı hesabatla müqayisə edin, çünki kəsilmiş ixrac yalnız fayl ölçüsünə baxan hər testi keçir. Sonra ikinci dəfə ixrac edin, çünki bir dəfə yanlış gövdə verən keş qatı növbəti cəhddə düzgününü verə bilər.

İstifadəçinin ehtiyac duyduğu iş axınını qəbul edin, ondan azını yox. Yanlış tətbiqdə açılan yükləmə yenə də uğursuz ixracdır.

Əlaqəli məqalələr