ForHosting KIT · أدوات المطورين

تحليل رؤوس HTTP الخام إلى كائن مفتاح وقيمة

ألصق كتلة رؤوس HTTP خاماً لتحصل على كائن JSON ثابت يصلح للتنقيح والاختبارات والبرامج النصية وأدوات API.

● Betaمجاني · داخل متصفحك
استخدمها من الويبAPIالبريدTelegramالتطبيق قريبًا

تُوحّد الأسماء بالأحرف اللاتينية الصغيرة، وتُحذف المسافات المحيطة بالقيم، وتُحفظ الأسماء المكررة مثل Set-Cookie بالترتيب داخل مصفوفات بدلاً من استبدالها. يجب أن يتبع كل سطر غير فارغ البنية القياسية Name: Value؛ وإلا فستظهر رسالة خطأ واضحة من دون إرجاع نتيجة جزئية. التحليل حتمي ولا يستخدم الشبكة.

حوّل كتل الرؤوس المنسوخة إلى بيانات منظمة قابلة للاستخدام

تعرض أدوات المطور في المتصفح وبرامج سطر الأوامر والوكلاء العكسيون وسجلات الخوادم رؤوس HTTP غالباً في صورة أسطر نصية بسيطة. يسهل على الإنسان قراءتها، لكن يصعب على الشفرة البحث فيها أو مقارنتها أو تخزينها. يحوّل هذا المحلل كل سطر صالح بصيغة Name: Value إلى خاصية داخل كائن headers واحد. تُحوّل الأسماء إلى الأحرف اللاتينية الصغيرة لأن أسماء حقول HTTP لا تميز بين حالة الأحرف، ولذلك يصبح Content-Type وcontent-type خاصية واحدة. تُحذف المسافات حول القيمة مع إبقاء النقطتين الرأسيتين الموجودتين داخلها كما هما. وهذا مهم للتواريخ وعناوين URL ومخططات التفويض وغيرها من القيم التي تحتوي علامات ترقيم مشروعة. يمكنك نسخ الناتج مباشرة إلى بيانات اختبار ثابتة، أو تمريره إلى برنامج نصي آخر، أو مقارنته باستجابة متوقعة. يُقبل السطر الفارغ الأخير لأنه يفصل عادة بين الرؤوس وجسم الرسالة في الكتل المنسوخة. أما السطر الفارغ أو غير الصحيح داخل الكتلة فيُرفض، حتى لا يبدو التحليل الناقص وكأنه نجح.

احتفظ بالرؤوس المكررة من دون فقدان المعلومات

يخزن كائن JavaScript المعتاد قيمة واحدة فقط لكل مفتاح، ولذلك يستبدل المحلل البسيط القيم السابقة كلما تكرر الاسم. قد يؤدي ذلك إلى حذف معلومات مهمة من البروتوكول من دون تنبيه. تعيد هذه القدرة سلسلة نصية عندما يظهر الرأس مرة واحدة، ثم تحوّل الخاصية إلى مصفوفة عند ظهور الاسم نفسه مجدداً بغض النظر عن حالة الأحرف. وتُضاف التكرارات اللاحقة بترتيبها الأصلي. تنطبق القاعدة على Set-Cookie وWarning وLink وأي حقل متكرر آخر، من دون محاولة دمج القيم بفواصل. هذا قرار مقصود، لأن قواعد الدمج تختلف باختلاف الحقول، ولا يجوز خصوصاً معاملة Set-Cookie كقائمة عامة مفصولة بفواصل. تظل القيمة الفارغة صالحة إذا وُجدت النقطتان الرأسيتان، ولذلك يصبح X-Optional: سلسلة فارغة لا خطأ. لا يفسر المحلل التواريخ أو ملفات cookie أو أنواع الوسائط أو أوزان الجودة أو بيانات الاعتماد. بل يحافظ على قيم الحقول كنص، ويترك تفسيرها للمكوّن الذي يفهم معنى ذلك الرأس.

اكتشف الأسطر غير الصحيحة مبكراً واستخدم الناتج بأمان

يعتمد التحليل الموثوق على الرفض الصحيح بقدر اعتماده على التحويل. يجب أن يبدأ كل سطر باسم حقل HTTP صالح، تليه مباشرة نقطتان رأسيتان ثم القيمة. يجوز أن يحتوي الاسم محارف token التي يسمح بها HTTP، لكنه لا يقبل المسافات أو علامات الجدولة أو الأقواس أو الفواصل أو المسافة البادئة. تُرفض أسطر المتابعة المطوية القديمة بدلاً من إلحاقها بالقيمة السابقة، مما يمنع النتائج الملتبسة ويشجع على تقديم كتلة حديثة مطبّعة. عند فشل التحقق، يحدد الخطأ السطر المعني ويوضح ما إذا كان الخلل في الزوج أم في الاسم. ولا يُعاد أي كائن جزئي. لذلك تناسب القدرة مسارات الاستيراد والاختبارات الآلية التي يكون فيها قبول نصف الكتلة أسوأ من إيقاف العملية. تتم المعالجة محلياً وبصورة حتمية، بلا طلبات شبكة أو حقول مرتبطة بالوقت أو قيم عشوائية أو عمليات بحث خارجية. ومن ثم ينتج النص نفسه بنية JSON نفسها في المتصفح وعبر API، ويبلغ السعر الأساسي للطلب $0.002.

أنشئ بيانات ثابتة لاختبارات API

حوّل الرؤوس المنسوخة من تتبع HTTP إلى JSON منظم يمكن حفظه ضمن استجابة اختبار حتمية.

افحص حقول الاستجابة المكررة

احتفظ بكل ظهور لـ Set-Cookie أو Link أو Warning بالترتيب من دون فقدان القيم السابقة عند التحويل.

تحقق من بيانات التشخيص المستوردة

ارفض الأسطر غير الصحيحة قبل إدخال مقتطف سجل في مسار للتنقيح أو الدعم أو قابلية الرصد.

كيف تُمثّل أسماء الرؤوس المكررة؟

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

هل تميز أسماء الرؤوس بين حالة الأحرف؟

لا. تُوحّد الأسماء بالأحرف اللاتينية الصغيرة، ولذلك يُعامل Content-Type وcontent-type كرأس واحد.

هل يمكن أن تحتوي قيمة الرأس نقطتين رأسيتين؟

نعم. تفصل أول نقطتين فقط الاسم عن القيمة، وتبقى كل علامة لاحقة جزءاً من القيمة.

ماذا يحدث إذا كان أحد الأسطر غير صالح؟

يفشل الطلب كله بخطأ إدخال يحدد السطر المعني. ولا يُعاد أبداً كائن headers جزئي.

هل يقسم المحلل ملفات cookie أو القيم المفصولة بفواصل؟

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

ما تكلفة الاستخدام عبر API؟

السعر الأساسي هو $0.002 لكل طلب. تعمل نسخة المتصفح محلياً من دون إرسال كتلة الرؤوس عبر الشبكة.

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

POSThttps://api.kit.forhosting.com/dev2/http-header-parse

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

curl -X POST https://api.kit.forhosting.com/dev2/http-header-parse \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"text":"Content-Type: application/json\r\nCache-Control: no-cache\r\nSet-Cookie: theme=dark\r\nSet-Cookie: session=abc123"}'
{
  "text": "Content-Type: application/json\r\nCache-Control: no-cache\r\nSet-Cookie: theme=dark\r\nSet-Cookie: session=abc123"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "dev2.http_header_parse",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

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

لكل طلب$0.002

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

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

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