ForHosting KIT · قراءة المواقع ومراقبتها

حاسبة حجم data URI

اعرف طول data URI قبل أن ترمّز أي شيء: صورة PNG حجمها 1024 بايت تصبح 1390 حرفًا، وهذا ما زال ضمن الحد الافتراضي البالغ 2048، لذا يُنصح بتضمينها. مجانية في متصفحك.

  • مجاني
  • يعمل في متصفحك
  • دون تسجيل
  • بياناتك لا تغادر جهازك
استخدمها من الويبAPIالبريدTelegramالتطبيق قريبًا
إذا أدخلت
البايتات
1,024
نوع الوسائط
image/png
تحصل على
أحرف البادئة
22
أحرف Base64
1,368
أحرف الحشو
2
أحرف URI البيانات
1,390

الفرق التي تبحث عن حاسبة حجم data URI تعرف عادة حجم الملف الأصلي وتحتاج الطول بعد الترميز قبل لصق السلسلة في HTML أو CSS أو رسالة بريد. تقبل هذه الأداة الحجم الأصلي بالبايت، ونوع MIME اختياريًا لبادئة RFC 2397، وميزانية تضمين اختيارية.

كيف يُحسب حجم data URI بترميز Base64 من البايت الأصلي

الباقي واحد يحتاج حشوتين، والباقي اثنان يحتاج حشوة، والباقي صفر لا يحتاج شيئًا. البادئة هي المحارف الحرفية data ونقطتان ثم نوع MIME الذي تُدخله ثم فاصلة منقوطة-base64-فاصلة. لـ image/png تبلغ تلك البادئة اثنين وعشرين محرفًا؛ ولـ application/octet-stream سبعة وثلاثين؛ ولـ image/svg+xml ستة وعشرين.

الطول الكلي لـ data URI بالمحارف هو طول البادئة زائد طول Base64. ولأن أبجدية Base64 والبادئة ASCII فإن عدد المحارف يساوي بايتات UTF-8 للسلسلة. إضافة البادئة ترفع الزيادة الكلية فوق ذلك الحد الأدنى، ولهذا لا ينتفخ رمز مفضّل من أربعة وعشرين بايتًا وورقة من أربعة وعشرين كيلوبايت بالنسبة المئوية نفسها.

تطبّق هذه الحاسبة تلك المطابقات على حجم البايت الأصلي دون قراءة الملف، حتى يتسنى لكم تقرير جدوى التضمين قبل ترميز ثمانية بتات واحدة.

متى يستحق تضمين data URI زيادة الثلاثة وثلاثين في المئة

السبب المعتاد للتضمين هو توفير طلب: أيقونة PNG ضئيلة أو مجموعة فرعية WOFF2 أو بضع مئات من بايتات CSS الحرج قد تكلف في الكمون وإقامة الاتصال أكثر مما تكلف بايتات HTML أو CSS إضافية. القيمة العملية الافتراضية كيلوبايتان من data URI: دون تلك الميزانية غالبًا ما يظل تضمين أيقونة في مكوّن أو قالب بريد رابحًا؛ وفوقها قدّموا الملف ودعوا المتصفح يخزّنه.

HTML البريد حالة خاصة: كثير من العملاء يحجب الصور البعيدة حتى ينقر القارئ، لذا قد يبرر تضمين شعار في data URI ميزانية أكبر حتى بعد ضريبة الثلاثة وثلاثين في المئة. الخطوط المضمَّنة في CSS تحجب أول رسم إن كبرت الورقة، فقيسوا الحجم المرمَّز قبل لصق عائلة كاملة في وسم أسلوب. التحقق الفاشل لا يستهلك الرصيد.

ميزانيات التضمين في أدوات الحزم وأنظمة التصميم

مرّروا إلى webpack أو Vite أو مسار نظام تصميم حجم ملف أيقونة أو خط وأفشلوا البناء عندما يتجاوز data URI المرمَّز الميزانية المتفق عليها.

شعارات وتواقيع بريد HTML

قدّروا حجم شعار مضمَّن بعد Base64 كي تبقى الرسالة دون سقوف العميل وتظهر دون جلب صورة بعيدة.

CSS الحرج وأوراق الأيقونات

قارنوا الحجم المرمَّز لـ SVG صغير أو مقطع CSS بميزانية تضمين 2 KiB أو 8 KiB قبل لصقه في رأس المستند.

كيف يُحسب حجم data URI من حجم الملف الأصلي؟

أرسلوا الحجم الأصلي في bytes (عدد صحيح موجب).

هل يغيّر نوع MIME الحجم المرمَّز؟

البادئة فقط. يستخدم image/png 22 محرف بادئة؛ ويستخدم application/octet-stream 37.

كم تكلفة حاسبة حجم data URI؟

أداة المتصفح مجانية. لا يُرفع ملف ولا يُرمَّز.

لماذا تزيد Base64 الحجم بنحو 33 بالمئة؟

لأن كل ثلاثة بايتات تصبح أربعة أحرف، فيزيد الجزء المرمّز وحده بنحو الثلث. وتكون الزيادة ثلثًا تمامًا إذا كان الحجم الأصلي من مضاعفات الثلاثة، وأكثر قليلًا عند الحاجة إلى أحرف حشو، ثم ترفعها البادئة أكثر.

متى يكون تضمين ملف كـ data URI مجديًا؟

غالبًا مع الملفات الصغيرة مثل أيقونة أو جزء من خط أو بضع مئات من البايتات من CSS الضروري، حين يفوق توفير تنزيل منفصل كلفة البايتات الزائدة. تحت الحد الافتراضي يُنصح بالتضمين، وفوقه يُفضَّل ملف منفصل يحفظه المتصفح.

كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.

POSThttps://api.kit.forhosting.com/dev/data-uri-size

صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.

curl -X POST https://api.kit.forhosting.com/dev/data-uri-size \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"bytes":1024}'
{
  "bytes": 1024
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "dev.data_uri_size",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.

لكل طلب$0.002

السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.

max_bytes1000000000000
HTTPالرمزالمعنى
401unauthorizedمفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك.
402insufficient_balanceرصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة.
404unknown_typeنوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب.
429rate_limitedتجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة.

تضمين خط أو أيقونة أو ورقة أنماط في صورة data URI يتجنب طلب HTTP إضافيًا، غير أن ترميز Base64 ينفخ الحمولة بنحو الثلث ويضيف البادئة data: مزيدًا من المحارف. وتعيد طول حمولة Base64 الدقيق، وعدد محارف data URI الكامل، وزيادة الحمولة قرب ثلاثة وثلاثين في المئة، والزيادة الكلية مع البادئة، وتوصية بالتضمين أو الإبقاء على رابط منفصل. استدعاءات API الناجحة تكلف $0.002؛ والإدخال غير الصالح لا يُفوتر.

كيف يُحسب حجم data URI بترميز Base64 من البايت الأصلي

يتبع data URI الذي يحمل محتوى ثنائيًا صيغة RFC 2397: data ثم نوع وسائط اختياري ثم الرمز فاصلة منقوطة-base64 ثم فاصلة ثم الحمولة. الحمولة هي Base64 القياسي وفق RFC 4648: كل ثلاثة بايتات أصلية تصير أربعة محارف ASCII، لذا يكون الطول المرمَّز أربعة أمثال سقف الطول الأصلي مقسومًا على ثلاثة. عندما لا يكون الطول الأصلي مضاعفًا لثلاثة تملأ علامات التساوي آخر رباعية حتى تظل طول الحمولة مضاعفًا لأربعة. زيادة الحمولة وحدها إذن نحو ثلاثة وثلاثين في المئة — الثلث تمامًا عندما يكون الحجم الأصلي مضاعفًا لثلاثة، وأكثر قليلًا عند الحاجة إلى الحشو.

عقد الإدخال وشكل الاستجابة وسلوك الخطأ

لا تُفوتر تلك الإخفاقات. عشرة آلاف بايت بالنوع الافتراضي octet-stream تعطي معرّفًا من 13373 محرفًا وتوصية link. أرسلوا عبر POST جسم JSON بحقل إلزامي واحد bytes: عدد صحيح موجب (أو سلسلة رقمية) لحجم الأصل قبل الترميز. الأسماء البديلة size وlength وn وbyte_count تشير إلى المعامل نفسه حتى تحتفظ سكربتات الحزم وأدوات النماذج بأسمائها المحلية. الحقل الاختياري media_type (الأسماء البديلة mime وtype وcontent_type وmime_type) هو نوع MIME المكتوب في البادئة؛ وإن حُذف فالقيمة application/octet-stream. الحقل الاختياري budget (الأسماء البديلة max وlimit وmax_bytes وmax_size) هو أكبر طول لـ data URI ما زلتم تعدّونه جديرًا بالتضمين والقيمة الافتراضية 2048، وهي قاعدة شائعة في HTTP/1. القيم المفقودة أو الفارغة أو غير الصحيحة أو الصفر أو السالبة تفشل بـ invalid_input مع تسمية الحقل؛ ونوع وسائط ليس type/subtype أو يحتوي مسافة أو فاصلة يُرفض بالطريقة نفسها. عند النجاح يعيد الجسم bytes وmedia_type وbudget؛ ويعيد prefix وprefix_chars؛ ويعيد base64_chars وpadding_chars؛ ويعيد data_uri_chars وoverhead_chars؛ ويعيد overhead_percent للمعرّف الكامل مقابل الملف الأصلي وpayload_overhead_percent لحمولة Base64 وحدها (رقم الثلاثة وثلاثين في المئة تقريبًا)؛ ويعيد expansion_ratio بوصفه طول المعرّف على البايت الأصلي؛ ويعيد within_budget مع recommendation مساوية لـ inline أو link. مثال: 1024 بايت بنوع image/png تعطي بادئة من 22 محرفًا و1368 محرف Base64 بحشوتين وdata URI من 1390 محرفًا وزيادة حمولة نحو 33.59 في المئة وتوصية inline أمام الميزانية 2048. اقرنوا الأرقام بمرمِّزكم إن احتجتم السلسلة نفسها؛ لا يُصدر هذا الطرف الحمولة المرمَّزة أبدًا.

متى يستحق تضمين data URI زيادة الثلاثة وثلاثين في المئة

يفاقم Base64 تلك المقايضة بنحو الثلث، وتعدد الإرسال في HTTP/2 أو HTTP/3 يجعل الطلب المنفصل أرخص مما كان على HTTP/1، لذا يكون حجم التعادل أصغر مما لا تزال مقالات عام 2012 تزعمه. كانت أدوات الحزم التي تستخدم حد url-loader بثمانية كيلوبايت تحسّن رموز HTTP/1؛ استبدلوا budget بـ 8192 إن طابقتم تلك القاعدة القديمة، أو اخفضوه لمواقع HTTP/2. استخدموها عتبة في فحص طلب الدمج: إن تجاوز data_uri_chars الميزانية فأبقوا الأصل عنوان URL.

لماذا تبلغ زيادة data URI بترميز Base64 نحو 33 في المئة؟

يرمّز Base64 القياسي 3 بايتات إلى 4 محارف ASCII، فتنمو الحمولة بمقدار الثلث (33.33… في المئة تمامًا عندما يكون bytes مضاعفًا لـ 3، وأكثر قليلًا مع الحشو). تضيف البادئة data: بضعة محارف إضافية.

متى ينبغي تضمين أصل في صورة data URI؟

عندما يقع data_uri_chars ضمن ميزانيتكم (الافتراضي 2048). دون ذلك غالبًا يفوز تجنّب الطلب؛ وفوقه أبقوا عنوان URL قابلًا للتخزين — ولا سيما على HTTP/2. استبدلوا budget ليطابق حد أداة الحزم.

اطّلع على توثيق KIT الكامل ←