
Cloudflare-ը Cache Rules-ում ավելացրել է Vary-ի աջակցություն
Cloudflare-ը Cache Rules-ում ներկայացրել է Vary պատասխանի վերնագրի աջակցությունը՝ բոլոր սակագներով, ներառյալ անվճարը։ Ծագման սերվերը դեռ նշում է, թե որ դաշտերը կարող են փոխել պատասխանը, սակայն որոշումը կայացնում է օպերատորը։
Cloudflare-ը Cache Rules-ում ավելացրել է HTTP-ի Vary պատասխանի վերնագրի աջակցությունը՝ բոլոր սակագներով, ներառյալ անվճարը։ Ընկերության բլոգում Vary-ն անվանում են «HTTP-ի ամենատգեղ հատվածը, որը դեռ չենք բարելավել». մեջբերումը Մարկ Նոթինգհեմից է։
Վերնագիրը գոյություն ունի, որովհետև մեկ URL-ը կարող է ունենալ մեկից ավելի ճիշտ պատասխան. սերվերը տարբեր հաճախորդների ուղարկում է տարբեր լեզուներ, ձևաչափեր կամ սեղմման սխեմաներ։ Vary-ն անտեսող քեշը կարող է API հաճախորդին վերադարձնել HTML, իսկ զննարկիչին՝ JSON, իսկ հում արժեքները առանձին դիտարկելը մեկ օգտակար պատասխանը ցրում է հազարավոր նույնական տարբերակների։

Ինչ Vary-ն չի ասում
Vary-ն քեշին ասում է, թե հարցման որ դաշտերը կարող են ազդել պատասխանի վրա, բայց չի ասում, թե ինչ է ներկայացնում պատասխանը։ Cloudflare-ի օրինակում ծագումը սպասարկում է անգլերեն, ֆրանսերեն և գերմաներեն, իսկ երկու հաճախորդ ուղարկում են Accept-Language: en-US, fr;q=0.8 և Accept-Language: fr;q=0.8, en-GB։ Երկուսն էլ նախընտրում են անգլերենը և կարող են ստանալ նույն բայթերը, սակայն հում արժեքները համեմատող քեշը դրանք պահում է առանձին տարբերակներով։
Խնդիրը մեծանում է դաշտերի հետ. մեկ դաշտում տասը արժեքը տասը տարբերակ է, երեք դաշտում՝ հազար համադրություն։ 50 000-ից ավելի հանրաճանաչ կայքի 120 միլիոն պատասխանների վերլուծությունը ցույց է տվել, որ շուրջ 3 000 կայք տարբերվում է չորս և ավելի դաշտերով՝ ոմանք 10, 23 կամ 47 դաշտով։
Երեք գործողություն՝ normalize, passthrough, bypass
Նոր մոդելում ծագումը դեռ Vary-ով նշում է վերնագրերը, իսկ Cache Rule-ը որոշում է յուրաքանչյուրի հետ վարվելու եղանակը։ normalize-ը՝ առաջարկվող լռելյայն տարբերակը, Accept, Accept-Language և Accept-Encoding արժեքները վերաշարադրում է քեշի համեմատությունից առաջ՝ փոքրատառ դարձնելով և դասավորելով որակի արժեքով, որպեսզի համարժեք հարցումները կիսեն մեկ պատասխան։ passthrough-ը պահպանում է հում բայթերը՝ տառերի մեծությունը, բացատները, հերթականությունը և կրկնվող արժեքները, և նախատեսված է այն վերնագրերի համար, որտեղ ճշգրիտ արժեքը փոխում է պատասխանը։ bypass-ը չի պահում պատասխանը, եթե ծագումը նշում է այդ վերնագիրը Vary-ում. այն Cookie-ի և User-Agent-ի համար է։ Vary: * դեպքում պատասխանը երբեք չի պահվում։
Կարգավորում և մանրամասներ
Vary-ի պարամետրերը գտնվում են Cache Rules-ում (Caching > Cache Rules) և հասանելի են նաև Rulesets API-ով՝ http_request_cache_settings փուլում, և Terraform-ով։ Cloudflare-ը ընդգծում է, որ պատասխանատվությունը մնում է ծագմանը. յուրաքանչյուր քեշավորվող պատասխան, որը կարող է տարբերվել հարցման դաշտերով, պետք է հետևողականորեն վերադարձնի համապատասխան Vary վերնագիրը, ներառյալ սխալները։ Կանոնի փոփոխումը չի մաքրում առկա գրառումները. հին տարբերակները մնում են մինչև ժամկետի լրանալը, իսկ ռեսուրսի մաքրումը ընդգրկում է բոլոր Vary տարբերակները։
SiTech — AI-ով հզորացված վեբ մշակում
Ստեղծում ենք արագ ու ժամանակակից կայքեր և AI-ը ներդնում իրական բիզնես գործընթացներում։ Ունե՞ք նախագիծ կամ հարց։ Ուրախ կլինենք օգնել։