Location
ترويسة Location Location
ترويسة استجابة تدلّ العميل على رابط المورد — إما مورد جديد أُنشئ (201) أو وجهة إعادة توجيه (3xx).
حسب RFC 9110، ترويسة Location تُستخدم في حالتين رئيسيتين ضمن REST API: مع رد 201 Created بعد POST ناجحة، لتُخبر العميل برابط المورد الذي أُنشئ حديثًا دون الحاجة لتخمينه؛ ومع أكواد إعادة التوجيه (301, 302, 303, 307, 308) لتحديد الوجهة الجديدة التي يجب على العميل اتباعها.
في سياق REST API عملي، أشيع استخدام لها هو مرافقة رد الإنشاء: بعد POST /articles، يعيد الخادم 201 مع Location: /articles/43 حتى يعرف العميل فورًا كيف يصل للمورد الجديد دون طلب GET إضافي لاكتشاف الرابط.
الصياغة
HTTP/1.1 201 Created Location: /resource/:id
📄 مثال
POST /api/articles HTTP/1.1
Content-Type: application/json
{ "title": "مقال جديد" }
// الاستجابة
HTTP/1.1 201 Created
Location: /api/articles/43
{ "id": 43, "title": "مقال جديد" }أهم النقاط
| العنصر | الوظيفة |
|---|---|
| مع 201 Created | رابط المورد الذي أُنشئ للتو |
| مع أكواد 3xx | وجهة إعادة التوجيه التي يجب على العميل اتباعها |
| رابط مطلق أو نسبي | المواصفة تسمح بالشكلين؛ المطلق أوضح للعميل |
💡 نصائح عملية
- أضفها دائمًا مع 201 Created — توفّر على العميل طلب GET إضافي لمعرفة رابط المورد الجديد
- في Express: res.status(201).location(`/api/articles/${id}`).json(article)
⚠️ أخطاء شائعة
- إعادة 201 بلا ترويسة Location — يجبر العميل على تخمين الرابط أو استخراجه من جسم الرد يدويًا
- استخدامها مع أكواد لا علاقة لها بالإنشاء أو التوجيه
خصائص ذات صلة
🎓 تريد فهم الصورة الكاملة خطوة بخطوة؟ ابدأ من مسار REST-API الكامل بالعربي.
📚 للتعمق التقني الكامل بالإنجليزية: MDN Web Docs