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

توليد slug رابط قصير

أدخل رابطًا طويلًا وبذرة لتحصل على رمز قصير لا يتغير أبدًا: صفحة المثال مع البذرة tenant-acme-v1 تعطي دائمًا rTEr1Ff، وهي سبعة أحرف base62 افتراضيًا. لا يُجلب شيء ولا يُخزَّن، ولا يُنشأ رابط فعلي. مجاني في متصفحك.

  • مجاني
  • يعمل في متصفحك
  • دون تسجيل
  • بياناتك لا تغادر جهازك
استخدمها من الويبAPIالبريدTelegramالتطبيق قريبًا
إذا أدخلت
عنوان الويب
https://example.com/docs/guide
البذرة
tenant-acme-v1
الطول
7
تحصل على
المعرّف النصي
rTEr1Ff
الأبجدية
base62
المسار القصير
/rTEr1Ff

تحتاج خدمات اختصار الروابط إلى رموز مسار قصيرة وغير شفافة تشير إلى هدف طويل دون كشف بنية الرابط نفسه. الفرق التي تبني مختصِرًا خاصًا بها—أو تخصّص رموز vanity دون اتصال قبل الكتابة—تحتاج دالة حتمية: يجب أن يُنتج نفس عنوان URL الهدف ونفس بذرة المستأجر دائمًا نفس الـ slug بالطول المختار، حتى لا تخترع إعادة المحاولات والكتّاب متعددو المناطق سلاسل عشوائية متصادمة لنفس الرابط المنطقي. تقبل هذه القدرة عنوان URL هدفًا، وبذرة (فضاء أسماء أو سرًا أو مفتاح مستأجر)، وطولًا اختياريًا (الافتراضي سبعة والحد الأدنى أربعة)، ثم توسّع مزيجًا نقيًا بأسلوب FNV من العنوان والبذرة إلى أرقام base62 من 0-9 وA-Z وa-z.

كيف يُبنى slug الاختصار base62 المبني على البذرة

slug الاختصار ليس slug عنوان مقروءًا للبشر. إنه رمز غير شفاف في أبجدية مضغوطة تناسب رموز QR والرسائل القصيرة والتغليف المطبوع وتوفّر مع ذلك مساحة توافقية كافية لملايين الروابط. تستخدم هذه الأداة أبجدية base62 الكلاسيكية من عشرة أرقام وستة وعشرين حرفًا كبيرًا وستة وعشرين صغيرًا—اثنين وستين رمزًا تسير بأمان في مقاطع المسار دون ترميز مئوي.

يضمّ المولّد عنوان URL الهدف وفاصل NUL والبذرة، ثم يشغّل جولات FNV-1a بطول 32 بت مملّحة بعداد توسّع خمسة أرقام base62 لكل جولة حتى يمتلئ الطول المطلوب. لأن المزج حساب بحت على رموز المحارف، تنتج المدخلات نفسها دائمًا نفس الـ slug على Node وفي المتصفح. البذرة هي ما يجعل أنظمة المستأجرين المتعددين آمنة: مستأجران يختصران نفس رابط التسويق ببذرتين مختلفتين يحصلان على رمزين مختلفين، فلا تكشف فضاءات الأسماء العامة المشتركة أن منظمتين أشارتا إلى نفس الوجهة.

الطول الافتراضي سبعة أحرف (نحو 3.5e12 احتمال) ويمكن أن يمتد من أربعة إلى اثنين وثلاثين؛ والأربعة هي الحد الأدنى الصارم لأن فضاءات ثلاثة أحرف صغيرة جدًا لمختصِري الإنترنت المفتوحين وتدعو إلى تعداد مساركم بالقوة الغاشمة.

أين يثبت مولّد slug الرابط القصير بالبذرة قيمته

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

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

تخصيص في مختصِر مستضاف ذاتيًا

احسبوا مسبقًا رمز مسار base62 حتميًا من العنوان الطويل وبذرة الخدمة قبل كتابة صف إعادة التوجيه في قاعدة بياناتكم.

رموز حملات متعددة المستأجرين

امزجوا بذرة مستأجر أو حملة مع نفس عنوان الهبوط ليحصل كل عميل على slug عام مميز دون عشوائية مركزية.

لماذا يُرفض length دون 4؟

الرموز الأقصر من أربعة أحرف base62 صغيرة جدًا لفضاءات أسماء الاختصار العامة وسهلة التعداد.

هل يُنشئ هذا رابطًا قصيرًا حيًا؟

لا. يحسب فقط سلسلة slug حتمية. أنتم تخزّنون التعيين وتخدمون إعادة التوجيه على نطاقكم أو خدمة الاختصار الخاصة بكم.

أي أبجدية يستخدمها الـ slug؟

base62 القياسية: الأرقام 0-9 والأحرف الكبيرة A-Z والصغيرة a-z. تضبط الاستجابة alphabet على base62 وlength على عدد الأحرف المحلول.

هل يمكن أن يحصل رابطان مختلفان على الرمز نفسه؟

نعم، خصوصًا مع الأطوال القصيرة. المدخلات نفسها تعطي الرمز نفسه دائمًا، لكن عنوانين مختلفين قد يتطابقان، لذا تحقق من عدم التكرار عند الحفظ واختر أحرفًا أكثر للروابط العامة الطويلة العمر.

لماذا أستخدم بذرة مختلفة لكل عميل؟

كي يحصل عميلان يختصران العنوان نفسه على رمزين مختلفين، فلا تكشف مساحة الروابط العامة أن جهتين تشيران إلى الوجهة نفسها. يمكن أن تكون البذرة معرّف العميل أو اسم حملة.

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

POSThttps://api.kit.forhosting.com/web/url-shortener-slug-generate

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

curl -X POST https://api.kit.forhosting.com/web/url-shortener-slug-generate \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://example.com/docs/guide","seed":"tenant-acme-v1"}'
{
  "url": "https://example.com/docs/guide",
  "seed": "tenant-acme-v1"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "web.url_shortener_slug_generate",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

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

لكل طلب$0.002

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

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

لا يُجلب شيء عبر الشبكة ولا يُخزَّن شيء: تحصلون على سلسلة الـ slug وبادئة short_path جاهزة ثم تربطونها في مخزنكم. تفشل الأطوال دون أربعة بـ invalid_input لأن الرموز الأقصر غير آمنة لفضاءات أسماء الاختصار العامة بأي مقياس ذي معنى.

كيف يُبنى slug الاختصار base62 المبني على البذرة

تعيد الاستجابة url وseed وlength وتعيد الـ slug وتضع alphabet على base62 وتقدّم short_path كبادئة شرطة مائلة للصق في القوالب—دون ادّعاء أن ذلك المسار حي على أي نطاق.

عقد الإدخال وشكل الاستجابة وقواعد الرفض

تفشل url أو seed الفارغة والكائنات غير السلاسل لتلك الحقول والمفاتيح المطلوبة الناقصة بوضوح حتى تُبرز واجهات النماذج الحقل. اقرنوا الـ slug بفحص تفرّدكم عند الكتابة: الدالة حتمية لثلاثية مدخلات، لكن عنوانين مختلفين قد يتصادمان في رموز قصيرة—ويجب أن يعامل مخزنكم سباقات الإدراج مصدرًا للحقيقة. أرسلوا كائن JSON بسلسلتين مطلوبتين وعدد صحيح اختياري. الحقل url (أسماء بديلة target وlink وhref وlong_url) هو الوجهة الطويلة التي تعتزمون ربطها لاحقًا؛ لا يُجلب، لذا تُقبل localhost والمسارات العميقة وسلاسل الاستعلام كنص غير شفاف بعد القص حتى أربعة آلاف وستة وتسعين حرفًا. الحقل seed (أسماء بديلة key وsalt وnamespace وsecret) سلسلة غير فارغة تُسمّي فضاء التجزئة—استخدموا سرًا لكل مستأجر أو معرّف خط منتج حتى تبقى التصادمات بين المستأجرين غير محتملة. الحقل length (أسماء بديلة len وsize وslug_length) يساوي سبعة عند الحذف؛ ويجب أن يكون عددًا صحيحًا من أربعة إلى اثنين وثلاثين شمولًا. القيم دون أربعة ترفع invalid_input برسالة تبيّن الحد الأدنى لـ slug الاختصار؛ والقيم فوق اثنين وثلاثين وغير الصحيحة تُرفض كذلك دون فوترة. عند النجاح يتضمن الجسم سلسلتي url وseed المعياريتين والطول المحلول والـ slug وalphabet = base62 وshort_path يساوي شرطة مائلة زائد slug وملاحظة قصيرة تذكّر العملاء بأن هذا رمز حتمي وليس إعادة توجيه حيّة.

أين يثبت مولّد slug الرابط القصير بالبذرة قيمته

لأن التنفيذ تحليل parse نقي من المستوى A، يكلّف كل استدعاء ناجح السعر الأساسي المنشور $0.002 بلا رموز نموذج ولا شبكة صادرة؛ والتحقق الفاشل لا يستهلك الرصيد. تذكّروا أن نقطة النهاية هذه لا تنشئ إعادة توجيه ولا تقيس نقرات ولا تحجز DNS—بل تصكّ فقط مقطع المسار غير الشفاف الذي سيخزّنه مختصِركم.

تركيبات QR وطباعة مستقرة

ثبّتوا url وseed وlength في أدوات التصميم حتى تتوافق التعبئة وقوالب الرسائل وgolden في CI دائمًا على سلسلة المسار القصير.

كيف أولّد slug رابط قصير من عنوان URL وبذرة؟

أرسلوا سلسلتين غير فارغتين url وseed واختياريًا length (الافتراضي 7، الأدنى 4، الأقصى 32). تعيد API slug base62 حتميًا وshort_path مثل /Ab3x9kQ.

كم تكلفة مولّد slug الرابط القصير بالبذرة؟

أداة المتصفح مجانية. تستخدم طلبات API رصيد KIT المدفوع مسبقًا بمقدار $0.002 لكل استدعاء ناجح؛ والإدخال غير الصالح لا يُفوتر.

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