هل تساءلت يومًا عن كيفية تصرف واجهات برمجة التطبيقات (APIs) الخاصة بك خلف الكواليس؟ كيف تعرف إذا كانت ترسل وتستقبل البيانات الصحيحة، أو إذا كانت تتعرض للتعديل من قبل وسطاء على طول الطريق؟ هنا يأتي دور طريقة HTTP TRACE. طريقة HTTP TRACE هي نوع خاص من طلبات HTTP التي تقوم بإجراء اختبار لرجوع الرسالة على طول المسار إلى المورد المستهدف. يسمح لك برؤية الرسالة الدقيقة التي تم استقبالها من قبل المستلم النهائي، باستثناء أي بيانات حساسة، مثل ملفات تعريف الارتباط أو بيانات الاعتماد.
في هذه المقالة، سأوضح لك كيفية استخدام طريقة HTTP TRACE لتصحيح واجهات برمجة التطبيقات الخاصة بك مثل المحترفين. سأشرح ما هي طريقة HTTP TRACE، وكيف تعمل، وما الفوائد التي تقدمها. سأوضح لك أيضًا كيفية استخدام Apidog.
ما هي طريقة HTTP TRACE؟
تعتبر طريقة HTTP TRACE واحدة من طرق HTTP القياسية، المحددة في مواصفة RFC 2616. تُستخدم لإجراء اختبار لرجوع الرسالة على طول المسار إلى المورد المستهدف، مما يوفر آلية تصحيح مفيدة. يجب أن يعكس المستلم النهائي للطلب الرسالة المستلمة، باستثناء أي حقول قد تضم بيانات حساسة، ويرسلها إلى العميل كجسم رسالة لرد 200 (حسنًا) مع نوع محتوى message/http. المستلم النهائي هو إما الخادم الأصلي أو أول خادم يتلقى قيمة Max-Forwards تساوي 0 في الطلب.
تكون صيغة طريقة HTTP TRACE كما يلي:
TRACE /path HTTP/1.1
Host: example.com
الطلب ليس لديه جسم، والمسار هو URI المورد المستهدف. قد يتضمن الطلب رأس Max-Forwards، الذي يشير إلى أقصى عدد من الوسطاء الذين يمكنهم إعادة توجيه الطلب. إذا كانت قيمة Max-Forwards تساوي 0، يجب ألا يتم إعادة توجيه الطلب، ويجب أن يتم توليد الاستجابة بواسطة أول خادم يتلقاها. إذا لم يتم تحديد قيمة Max-Forwards، يمكن إعادة توجيه الطلب إلى أجل غير مسمى، حتى يصل إلى الخادم الأصلي أو وسيط لا يدعم طريقة HTTP TRACE.
يجب أن تحتوي الاستجابة على طلب HTTP TRACE على كود حالة 200 (حسنًا) ونوع محتوى message/HTTP. يجب أن يحتوي جسم الاستجابة على الرسالة الدقيقة التي تم استقبالها من قبل المستلم النهائي، باستثناء أي بيانات حساسة. قد تتضمن الاستجابة أيضًا رأس Via، الذي يشير إلى الوسطاء الذين عالجوا الطلب. يجب أن يحتوي رأس Via على إدخال أو أكثر، كل منها يتكون من اسم البروتوكول، وإصدار البروتوكول، ومعرف الوسيط. على سبيل المثال:
HTTP/1.1 200 OK
Content-Type: message/http
Via: 1.1 proxy1.example.com, 1.1 proxy2.example.com
TRACE /path HTTP/1.1
Host: example.com
تظهر الاستجابة أن الطلب تم إعادة توجيهه من خلال وكيلين، proxy1.example.com و proxy2.example.com، قبل الوصول إلى المستلم النهائي. يعكس جسم الاستجابة الطلب الأصلي، بما في ذلك المسار ورأس المضيف.
كيف تعمل طريقة HTTP TRACE؟
تعمل طريقة HTTP TRACE عن طريق إرسال طلب إلى المورد المستهدف وانتظار استجابة تحتوي على نفس رسالة الطلب. يسمح ذلك للعميل برؤية الرسالة الدقيقة التي تم استقبالها من قبل الخادم، والتحقق مما إذا كانت هناك أي تعديلات أو أخطاء على طول الطريق.
يمكن استخدام طريقة HTTP TRACE لتصحيح جوانب مختلفة من سلوك واجهات برمجة التطبيقات، مثل:
- وجود وهُوية الوسطاء، مثل الوكلاء، أو البوابات، أو جدران الحماية، التي قد تؤثر على طلب واجهة برمجة التطبيقات والاستجابة. يمكن أن يكشف رأس Via عن الوسطاء الذين عالجوا الطلب وإصدارات بروتوكولاتهم.
- سلامة وصلاحية رؤوس وبنية طلب واجهة برمجة التطبيقات والاستجابة. يمكن لجسم الاستجابة أن يُظهر الرسالة الدقيقة التي تم استقبالها من قبل الخادم، ويمكن للعميل مقارنتها بالطلب الأصلي لمعرفة ما إذا كانت هناك أي تغييرات أو تناقضات.
- أداء ووقت استجابة طلب واجهة برمجة التطبيقات. يمكن للعميل قياس الوقت الذي يستغرقه إرسال الطلب واستقبال الاستجابة وتحديد أي اختناقات أو تأخيرات في مسار واجهة برمجة التطبيقات.
يمكن أيضًا استخدام طريقة HTTP TRACE لاختبار أمان واجهة برمجة التطبيقات والامتثال، مثل:
- حماية البيانات الحساسة، مثل ملفات تعريف الارتباط، أو بيانات الاعتماد، أو الرموز، التي قد تكون متضمنة في طلب واجهة برمجة التطبيقات والاستجابة. يجب ألا يعكس الخادم أي حقول قد تحتوي على بيانات حساسة، ويجب ألا يرسل العميل أي محتوى في الطلب، أو يولد أي حقول قد تشمل بيانات حساسة.
- دعم وتطبيق طريقة HTTP TRACE من قبل الخادم والوسطاء. يجب على الخادم والوسطاء الالتزام بمواصفة RFC 2616، والرد برمز حالة 200 (حسنًا) ونوع محتوى message/http. إذا كان الخادم أو وسيط لا يدعم طريقة HTTP TRACE، يجب أن يرد برمز حالة 405 (الطريقة غير مسموح بها) ورأس Allows يذكر الطرق المدعومة. إذا كان الخادم أو وسيط لا يسمح بطريقة HTTP TRACE، يجب أن يرد برمز حالة 403 (محظور).

ما هي فوائد طريقة HTTP TRACE؟
تقدم طريقة HTTP TRACE العديد من الفوائد لمطوري ومختبري ومستهلكي واجهات برمجة التطبيقات، مثل:
- هي طريقة بسيطة ومعيارية لتصحيح واجهات برمجة التطبيقات، دون الحاجة إلى أي أدوات أو مكتبات إضافية. تدعمها معظم خوادم HTTP والعميل، وتتبع مواصفة RFC 2616.
- إنها طريقة آمنة وغير مؤثرة، بمعنى أنها لا تعدل حالة الخادم أو المورد، ويمكن تكرارها دون أي تأثيرات جانبية. كما أنها غير قابلة للتخزين المؤقت، مما يعني أنها تعكس دائمًا الحالة الحالية لواجهة برمجة التطبيقات.
- إنها طريقة قوية ومتعددة الاستخدامات، مما يعني أنه يمكن استخدامها لتصحيح جوانب مختلفة من سلوك واجهة برمجة التطبيقات، مثل الوسطاء، والرؤوس، والجسم، والأداء، والوقت المستغرق، والأمان، والامتثال. يمكن أيضًا استخدامها لاختبار سيناريوهات وحالات استخدام مختلفة، عن طريق تغيير المسار، والمضيف، وMax-Forwards، ورؤوس أخرى.
كيف تستخدم Apidog لإرسال وتحليل طلبات HTTP TRACE؟
Apidog هي منصة متكاملة لتصميم واجهات برمجة التطبيقات، وتصحيح الأخطاء، والتطوير، والمحاكاة، والاختبار، التي تجمع بين Postman + Swagger + Mock + JMeter لمواجهة مشكلة تزامن البيانات بين مختلف الأنظمة باستخدام مجموعة من الأنظمة ومجموعة من البيانات. Apidog هي مجموعة كاملة من الأدوات التي تربط دورة حياة واجهة برمجة التطبيقات بالكامل، مما يساعد فرق البحث والتطوير في تنفيذ أفضل الممارسات لتطوير وضع التصميم أولاً للواجهات.
تقدم Apidog طريقة مريحة وسهلة لإرسال وتحليل طلبات HTTP TRACE، بالإضافة إلى طرق HTTP الأخرى. لاستخدام Apidog لإرسال وتحليل طلبات HTTP TRACE، تحتاج إلى اتباع الخطوات التالية:
- إنشاء طلب جديد، أو فتح طلب موجود، حيث تريد إرسال وتحليل طلبات HTTP TRACE الخاصة بك.

- في محرر واجهة برمجة التطبيقات، اختر طريقة TRACE من القائمة المنسدلة، وأدخل مسار المورد المستهدف. يمكنك أيضًا إدخال المضيف ورؤوس Max-Forwards، إذا لزم الأمر.

- انقر على زر الإرسال لإرسال طلب HTTP TRACE إلى المورد المستهدف، وانتظر الاستجابة.

في لوحة الاستجابة، يمكنك رؤية الحالة
كيف يمكنك تمكين أو تعطيل طريقة HTTP TRACE على الخادم؟
بناءً على تكوين الخادم الخاص بك وسياسة الأمان، قد ترغب في تمكين أو تعطيل طريقة HTTP TRACE على الخادم الخاص بك. تمكين طريقة HTTP TRACE يسمح لك بتصحيح واجهات برمجة التطبيقات بسهولة أكبر، لكنه قد يعرض أيضًا بعض المعلومات التي يمكن استغلالها من قبل الجهات الخبيثة. تعطل طريقة HTTP TRACE يمنع هذه الهجمات، لكنه يحد أيضًا من قدرات التصحيح الخاصة بك.
تختلف عملية تمكين أو تعطيل طريقة HTTP TRACE حسب نوع وإصدار الخادم الخاص بك. إليك بعض الأمثلة على كيفية القيام بذلك لبعض الخوادم الشائعة:
- Apache: يمكنك استخدام توجيه TraceEnable في ملف httpd.conf لتعطيل أو تقليل طريقة TRACE. على سبيل المثال، لتعطيل طريقة TRACE تمامًا، يمكنك إضافة السطر التالي:
TraceEnable off
لتحديد طريقة TRACE للخادم المحلي فقط، يمكنك إضافة السطر التالي:
TraceEnable extended
- Nginx: يمكنك استخدام توجيه limit_except في ملف nginx.conf لتعطيل أو تقليل طريقة TRACE. على سبيل المثال، لتعطيل طريقة TRACE تمامًا، يمكنك إضافة الكتلة التالية:
location / {
limit_except GET POST HEAD {
deny all;
}
}
لتحديد طريقة TRACE للخادم المحلي فقط، يمكنك إضافة الكتلة التالية:
location / {
limit_except GET POST HEAD TRACE {
deny all;
}
if ($request_method = TRACE) {
return 200;
}
}
الخاتمة
تعتبر طريقة HTTP TRACE أداة تصحيح مفيدة لواجهات برمجة التطبيقات، التي تتيح لك إجراء اختبار لرجوع الرسالة على طول المسار إلى المورد المستهدف. يمكن أن تساعدك في التحقق من وجود وهُوية الوسطاء، وسلامة وصلاحية الرؤوس والأجسام، وأداء ووقت استجابة الطلبات والاستجابات، وأمان وامتثال واجهات برمجة التطبيقات الخاصة بك.
لاستخدام طريقة HTTP TRACE، تحتاج إلى إرسال طلب إلى المورد المستهدف وتوقع استجابة تعكس نفس رسالة الطلب، باستثناء أي بيانات حساسة. يمكنك استخدام أدوات وإطارات عمل مختلفة لإرسال وتحليل طلبات HTTP TRACE، مثل Apidog. توفر Apidog طريقة مريحة وسهلة لإرسال وتحليل طلبات HTTP TRACE.