URL կոդավորման և վերծանման նպատակն ու գործառույթը
URL կոդավորումը (հայտնի է նաև որպես տոկոսային կոդավորում կամ percent-encoding) անհրաժեշտ մեխանիզմ է համացանցում տեղեկատվության անվտանգ և անխափան փոխանցման համար: Քանի որ URL հասցեները կարող են պարունակել միայն սահմանափակ թվով նիշեր US-ASCII նիշերի բազմությունից, ցանկացած այլ հատուկ նիշ կամ ոչ ASCII սիմվոլ պետք է փոխարկվի հատուկ ձևաչափի:
Այս գործընթացի ժամանակ ոչ թույլատրելի նիշերը փոխարինվում են տոկոսային նշանով (%), որին հաջորդում է տվյալ նիշի UTF-8 կոդավորման երկու տասնվեցական թվանշանը: Օրինակ, բացատը փոխարկվում է %20-ի, իսկ հարցական նշանը կամ ամպերսանդը ստանում են իրենց համապատասխան տոկոսային արժեքները: Վերծանման (decoding) գործընթացը կատարում է հակառակ գործողությունը՝ տոկոսային կոդավորմամբ տեքստը վերածելով մարդու համար ընթեռնելի սկզբնական տեսքի:
Տարբերությունը URL Component-ի և Full URL-ի միջև
URL հասցեների հետ աշխատելիս կարևոր է հստակ տարբերակել, թե տեքստի որ մասն է ենթարկվում կոդավորման: Այս գործիքն առաջարկում է երկու տարբեր ռեժիմներ՝
- Component (տիրույթ): Այս տարբերակն օգտագործում է JavaScript-ի
encodeURIComponentևdecodeURIComponentֆունկցիաները: Այն նախատեսված է URL-ի առանձին մասերի, օրինակ՝ հարցումների արժեքների (query values), ուղու առանձին հատվածների (path pieces) կամ ձևանմուշների արժեքների (form values) կոդավորման համար: Այս ռեժիմում կոդավորվում են նաև այնպիսի նիշեր, ինչպիսիք են:,/,?,&,=, որոնք սովորաբար ծառայում են որպես URL-ի կառուցվածքային բաժանարարներ: - Full URL (տիրույթ): Այս տարբերակն օգտագործում է
encodeURIևdecodeURIֆունկցիաները: Այն կիրառվում է ամբողջական հասցեների դեպքում, երբ անհրաժեշտ է պահպանել URL-ի հիմնական կառուցվածքը: Այս դեպքում վերոնշյալ կառուցվածքային նիշերը (:,/,?,&,=) մնում են անփոփոխ և ընթեռնելի, որպեսզի հասցեն պահպանի իր ֆունկցիոնալությունը:
HTML Entities էկրանավորում և ապակոդավորում
HTML entities (սիմվոլների էությունների) էկրանավորումը (escaping) ծառայում է տեքստը HTML փաստաթղթերում անվտանգ տեղադրելու համար: Երբ տեքստը պարունակում է նիշեր, որոնք HTML-ում ունեն շարահյուսական նշանակություն, դրանք կարող են խաթարել էջի կառուցվածքը:
Էկրանավորման գործընթացը փոխակերպում է հետևյալ նիշերը հատուկ կոդերի՝
<նիշը դառնում է<>նիշը դառնում է>&նիշը դառնում է&- Չակերտները (
"և') և ոչ ASCII տեքստը նույնպես փոխարկվում են համապատասխան entities-ի:
Ապակոդավորումը (unescaping) կատարում է հակառակ գործողությունը՝ վերականգնելով սկզբնական նիշերը: Սա թույլ է տալիս ծրագրավորողներին, բովանդակության խմբագիրներին և աջակցման անձնակազմին անվտանգ կերպով ներդնել ցանկացած տեքստ HTML կոդի կամ ատրիբուտների մեջ:
Տոկոսային կոդավորման կանոններ և սխալներ
URL-ների վերծանման ժամանակ տոկոսային կոդավորումները պետք է ներկայացնեն ամբողջական և վավեր UTF-8 հաջորդականություններ: Եթե մուտքագրված տեքստը պարունակում է թերի կամ կոտրված հաջորդականություն, ապա վերծանումն անհնար է դառնում:
Օրինակ, եթե փորձեք վերծանել %E0%A4%A կոտրված հաջորդականությունը, համակարգը ցույց կտա հետևյալ սխալը՝ «Այս URL տեքստն ունի կոտրված տոկոսային կոդավորում»:
Կարևոր է նաև տարբերակել կոդավորումը/էկրանավորումը անվտանգության սանիտարացումից (security sanitization): Կոդավորումը միայն ձևաչափում է տվյալները համապատասխան միջավայրում (URL կամ HTML) ճիշտ արտապատկերման համար, սակայն այն չի փոխարինում վնասակար կոդերի զտման կամ սանիտարացման գործընթացներին:
Գործիքի կիրառման կանոններ և սահմանափակումներ
Այս գործիքն աշխատում է որոշակի տեխնիկական կանոններով և սահմանափակումներով՝
- Մուտքային տվյալների չափը: Մուտքագրվող տեքստի առավելագույն չափը սահմանափակված է 2,000,000 նիշով: Եթե տեքստը գերազանցում է այս սահմանաչափը, կհայտնվի հետևյալ հաղորդագրությունը՝ «Այս տեքստը չափազանց մեծ է այս գործիքի համար: Այն պետք է լինի
{max}նիշից կարճ:»: - Դատարկ մուտքագրում: Եթե փորձեք կատարել փոխարկում առանց տեքստ տեղադրելու, կցուցադրվի «Նախ տեղադրեք որևէ տեքստ:» հաղորդագրությունը:
- Ժամանակի սահմանափակում: Եթե փոխարկման գործընթացը չափազանց երկար է տևում, համակարգը կցուցադրի հետևյալ նախազգուշացումը՝ «Այս փոխարկումը չափազանց երկար է տևում: Փորձեք ավելի փոքր տեքստով:»:
- Այլ սխալներ: Ցանկացած այլ անհայտ պատճառով ձախողման դեպքում կհայտնվի «Չհաջողվեց փոխարկել այս տեքստը:» հաղորդագրությունը:
Գործիքի կառավարման վահանակում HTML entities ռեժիմն ընտրելիս URL տիրույթի (scope) կառավարման կոճակները ավտոմատ կերպով թաքցվում են, քանի որ դրանք վերաբերում են միայն URL-ների մշակմանը:
Գաղտնիություն և տվյալների մշակում
Ձեր տվյալների գաղտնիությունն ամբողջությամբ պահպանվում է: Ձեր ներկայացրած URL և HTML տեքստերը փոխարկվում են անմիջապես ձեր բրաուզերում: Ոչ մի տվյալ չի ուղարկվում կամ վերբեռնվում BroBroGo սերվերներին:
Հաճախ տրվող հարցեր (FAQ)
Պե՞տք է ընտրեմ URL component, թե՞ full URL:
Օգտագործեք Component տարբերակը հարցումների արժեքների, ուղու մասերի կամ ձևանմուշների արժեքների համար: Օգտագործեք Full URL տարբերակը, երբ ցանկանում եք պահպանել այնպիսի նիշեր, ինչպիսիք են: /? & = ընթեռնելի վիճակում:
Ի՞նչ է փոխում HTML entities էկրանավորումը:
Այն փոխակերպում է այնպիսի նիշեր, ինչպիսիք են <, >, &, չակերտները և ոչ ASCII տեքստը, հատուկ կոդերի (entities), որոնք կարող են անվտանգ տեղադրվել HTML տեքստի կամ ատրիբուտների մեջ:
Ինչո՞ւ է URL-ի վերծանումը երբեմն ձախողվում:
Տոկոսային կոդավորումները (percent escapes) պետք է լինեն ամբողջական UTF-8 հաջորդականություններ: Կոտրված հաջորդականությունը, օրինակ՝ %E0%A4%A, հնարավոր չէ վերծանել առանց ենթադրությունների: