የ-URL መቀየሪያ/መፍቻ እና HTML አካላት አገልግሎት እና አጠቃቀም
ይህ መሣሪያ በድር ላይ መረጃዎችን በደኅንነት ለማስተላለፍ እና ለማሳየት የሚያስችሉ የጽሑፍ ለውጦችን ለማከናወን የተዘጋጀ ነው። መሣሪያው ጽሑፎችን ለ-URL አጠቃቀም እንዲመቹ አድርጎ መቀየር (encode) ወይም የተቀየሩትን መፍታት (decode) ይችላል። በተጨማሪም የ-HTML አካላትን ማምለጥ (escape) ወይም ካመለጡበት ወደ ነበረበት መመለስ (unescape) የሚያስችሉ ተግባራትን ያከናውናል።
በዚህ መሣሪያ ላይ ተጠቃሚዎች ሙሉ URLን ወይም የ-URL ክፍልን (component) ለይተው የመቀየር አማራጭ አላቸው። መሣሪያው እስከ 2,000,000 ቁምፊዎች ድረስ ያለውን የጽሑፍ መጠን ማስተናገድ ይችላል። በይነገጹ ላይ የናሙና ጽሑፍን ለመጫን፣ ግብዓቶችን ለማጽዳት ወይም የተገኘውን ውጤት በቀጥታ ወደ ግብዓት ሳጥን መልሶ ለመውሰድ የሚያስችሉ አዝራሮች ተካተዋል።
የ-URL መቀየር (Encoding) እና መፍታት (Decoding) ዓላማ
በድር አድራሻዎች (URLs) ውስጥ ጥቅም ላይ የሚውሉ ቁምፊዎች የተወሰነ የባሕርይ ገደብ አለባቸው። በ-URL ውስጥ በነፃነት መካተት የማይችሉ ልዩ ቁምፊዎችን እና የሌሎች ቋንቋዎችን ፊደላት በደኅንነት ለማስተላለፍ የፐርሰንት ኮድ ማድረግ (percent-encoding) ጥቅም ላይ ይውላል። ይህ ሂደት በ-URL ውስጥ የማይፈቀዱ ቁምፊዎችን በፐርሰንት ምልክት (%) እና በሁለት የባለ-አስራ-ስድስትዮሽ (hexadecimal) ቁጥሮች በመተካት ወደ UTF-8 ቅደም ተከተል ይቀይራቸዋል።
ለምሳሌ፡-
- ለመቀየር የቀረበ ግብዓት (URL encode)፦
hello world & city=上海 - የተቀየረ ውጤት (URL decode)፦
hello%20world%20%26%20city%3D%E4%B8%8A%E6%B5%B7
ይህንን የተቀየረ ጽሑፍ ወደ መሣሪያው በማስገባት "መፍታት / አለማምለጥ (Decode / unescape)" የሚለውን ተግባር ሲመርጡ ጽሑፉን ወደ መጀመሪያው ይዘት ይመልሰዋል።
በ-Component እና በ-Full URL መካከል ያለው ልዩነት
በ-URL መቀየር ሂደት ውስጥ ትክክለኛውን ወሰን መምረጥ ወሳኝ ነው። መሣሪያው ለዚህ ተግባር ሁለት የተለያዩ የወሰን አማራጮችን ያቀርባል፦
- Component (የ-URL ክፍል)፦ ይህ አማራጭ የ-URL መጠይቅ እሴቶችን (query values)፣ የመንገድ ክፍሎችን (path pieces) ወይም የቅጽ እሴቶችን (form values) ለመቀየር ያገለግላል። ይህ ተግባር በጃቫስክሪፕት ውስጥ ያለውን
encodeURIComponentእናdecodeURIComponentየተባሉ መደበኛ ተግባራትን ይጠቀማል። - Full URL (ሙሉ URL)፦ ይህ አማራጭ ሙሉ የድር አድራሻን ለመቀየር የሚያገለግል ሲሆን፣ እንደ
:፣/፣?፣&፣ እና=ያሉ የ-URL መዋቅር መለያ ቁምፊዎችን ሳይቀይር ተነባቢ አድርጎ ያቆያቸዋል። ይህ ተግባር በጃቫስክሪፕት ውስጥ ያለውንencodeURIእናdecodeURIየተባሉ መደበኛ ተግባራትን ይጠቀማል።
የ-HTML አካላት (HTML entities) ሁነታ በሚመረጥበት ጊዜ የ-URL ወሰን መቆጣጠሪያው በራስ-ሰር ይደበቃል።
የ-HTML አካላት ማምለጥ (HTML Entity Escaping)
የ-HTML አካላትን ማምለጥ (escaping) ጽሑፎችን በ-HTML ሰነዶች ውስጥ በደኅንነት ለመለጠፍ የሚያገለግል ዘዴ ነው። እንደ <፣ >፣ &፣ ጥቅሶች እና የ-non-ASCII ጽሑፎች ያሉ ቁምፊዎች በ-HTML መዋቅር ውስጥ ልዩ ትርጉም ስላላቸው፣ በቀጥታ ከተጻፉ የድረ-ገጹን አቀራረብ ሊያበላሹ ይችላሉ።
እነዚህን ቁምፊዎች ወደ HTML አካላት በመቀየር በድረ-ገጹ ላይ ያለምንም ችግር እንዲታዩ ማድረግ ይቻላል። ለምሳሌ 保存 የሚለውን ጽሑፍ ማምለጥ እና መልሶ ማውጣት ይቻላል። ይህ ሂደት ጽሑፉን በ-HTML ይዘት ወይም በባሕርያት (attributes) ውስጥ ለመጠቀም ዝግጁ ያደርገዋል።
ይሁን እንጂ ይህ የኮድ መቀየር እና የማምለጥ ሂደት ጽሑፉን ለድር አጠቃቀም ከማዘጋጀት ባለፈ የደኅንነት ማፅዳትን (security sanitization) እንደማያከናውን መገንዘብ ያስፈልጋል። የደኅንነት ማፅዳት ተንኮል አዘል ኮዶችን መርምሮ የማስወገድ የተለየ ተግባር ነው።
የፐርሰንት ማምለጫ ደንቦች እና የስህተት አያያዝ
የ-URL መፍታት ተግባር ስኬታማ የሚሆነው የቀረቡት የፐርሰንት ማምለጫዎች (percent escapes) ሙሉ የ-UTF-8 ቅደም ተከተሎችን የጠበቁ ሲሆኑ ብቻ ነው።
በመሣሪያው አጠቃቀም ወቅት የሚከተሉት ደንቦች እና የስህተት መልእክቶች ይተገበራሉ፦
- የተሰበረ ቅደም ተከተል፦ እንደ
%E0%A4%Aያለ ያልተሟላ ወይም የተሰበረ የፐርሰንት ማምለጫ ሲያጋጥም መሣሪያው መፍታት አይችልም። በዚህ ጊዜ "ይህ የ-URL ጽሑፍ የተሰበረ የፐርሰንት ማምለጫ አለው።" የሚለው የስህተት መልእክት ይታያል። - የግብዓት መጠን ገደብ፦ ተጠቃሚው ያስገባው ጽሑፍ ከ 2,000,000 ቁምፊዎች በላይ ከሆነ "ያ ግብዓት ለዚህ መሣሪያ በጣም ረጅም ነው። እባክዎ ከ
{max}ቁምፊዎች በታች ያድርጉት።" የሚል መልእክት ይወጣል። - **ባዶ ግብዓት፦ ምንም ጽሑፍ ሳይገባ ሲቀር "በመጀመሪያ አንዳንድ ግብዓቶችን ይለጥፉ።" የሚል ማሳሰቢያ ይታያል።
- የጊዜ ገደብ ማለፍ፦ የመቀየር ሂደቱ በጣም ረጅም ጊዜ የሚወስድ ከሆነ "ይህ ለውጥ በጣም ረጅም ጊዜ እየወሰደ ነው። አነስ ያለ ግብዓት ይሞክሩ።" የሚል መልእክት ይታያል።
- ሌሎች ውድቀቶች፦ በሌሎች ምክንያቶች መቀየር ካልተቻለ "ይህንን ግብዓት መቀየር አልተቻለም።" የሚል መልእክት ይወጣል።
የግል ደኅንነት እና የመረጃ አያያዝ
የዚህ መሣሪያ ዋነኛ ባህሪ የተጠቃሚዎችን መረጃ ደኅንነት መጠበቅ ነው። የእርስዎ URL እና HTML ጽሑፍ በብሮውዘርዎ ውስጥ ይቀየራል። ወደ BroBroGo ምንም ነገር አይሰቀልም። ሁሉም የጽሑፍ መቀየር እና መፍታት ተግባራት የሚከናወኑት በተጠቃሚው መሣሪያ ላይ ባለው የድር አሳሽ (browser) አማካኝነት ብቻ ነው።
ተደጋግመው የሚነሱ ጥያቄዎች (FAQ)
የ-URL component ወይስ full URL መምረጥ አለብኝ?
ለጥያቄ እሴቶች፣ ለመንገድ ክፍሎች ወይም ለቅጽ እሴቶች componentን ይጠቀሙ። እንደ: /? & = ያሉ ቁምፊዎችን ተነባቢ አድርገው ለማቆየት ሲፈልጉ full URLን ይጠቀሙ።
የ-HTML አካል ማምለጥ (entity escaping) ምን ይለውጣል?
እንደ <, >, &, ጥቅሶች እና የ-non-ASCII ጽሑፎችን በደኅንነት በ-HTML ጽሑፍ ወይም ባህሪያት (attributes) ውስጥ ለመለጠፍ ወደሚችሉ አካላት (entities) ይቀይራቸዋል።
የ-URL መፍታት አንዳንድ ጊዜ የማይሳካው ለምንድነው?
የፐርሰንት ማምለጫዎች (percent escapes) ሙሉ የ-UTF-8 ቅደም ተከተሎች መሆን አለባቸው። እንደ %E0%A4%A ያለ የተሰበረ ቅደም ተከተል ያለ ግምት ሊፈታ አይችልም።