لماذا موقع HTTP header فقط مجموعة طلبات POST/201 (خلق) الردود ؟

StackOverflow https://stackoverflow.com//questions/24039340

سؤال

تجاهل 3xx الردود لحظة ، أنا أتساءل لماذا موقع HTTP header فقط تستخدم بالاقتران مع طلبات POST/201 (خلق) الردود.

من RFC 2616 المواصفات:

ل 201 (خلق) استجابات الموقع هو أن الموارد الجديدة التي تم إنشاؤها من قبل الطلب.

هذا هو بدعم واسع من السلوك ، ولكن لماذا لا ينبغي أن تستخدم مع غيرها HTTP الأساليب ؟ اتخاذ JSON API spec كمثال:

ويعرف النفس الرجوع إلى رابط الموارد الحالية داخل سلمان الحمولة (ليس من غير المألوف بالنسبة راحة واجهات برمجة التطبيقات).هذا الرابط يتم تضمينها في كل الحمولة.المواصفات يقول لك يجب أن وتشمل HTTP موقع رأس ، إذا قمت بإنشاء مستند جديد عن طريق آخر و أن القيمة هي نفس الذات الرجوع إلى الرابط في الحمولة ، ولكن هذا هو فقط اللازمة لهذا المنصب.لماذا عناء مع مخصص شكل ذاتي الرجوع إلى الرابط, إذا كنت يمكن أن مجرد استخدام موقع HTTP رأس?

ملاحظة:هذه ليست محددة إلى JSON API.نفس الأمر بالنسبة هال, سلمان فرط المخطط أو غيرها من المعايير.

ملاحظة 2:أنها ليست محددة حتى موقع HTTP header كما أنه هو نفسه مع رابط HTTP header.كما يمكنك أن ترى JSON API ، هال و JSON Hyper-المخطط ليس فقط تحديد الاتفاقيات النفس الرجوع إلى الروابط ، ولكن أيضا للتعبير عن المعلومات حول الموارد ذات الصلة أو الإجراءات الممكنة من أجل الموارد.ولكن يبدو أنهم جميعا يمكن أن مجرد استخدام الرابط HTTP header.(حتى أنها يمكن أن تضع الذات الرجوع إلى رابط إلى رابط HTTP header, إذا لم ترغب في استخدام موقع HTTP header.)

أنا لا أريد أن خرف ، يبدو لمجرد أن يكون نوعا من "إعادة اختراع العجلة".ويبدو أيضا أن يكون الحد جدا:إذا كنت مجرد استخدام موقع HTTP/رابط رأس, لا يهم إذا كنت تسأل عن سلمان, XML أو أيا كان في HTTP يقبل رأس و سوف تحصل على فائدة المعلومات الوصفية عن الموارد الخاصة بك على رأس الطلبات التي لا تحتوي على وصلات إذا كنت تستخدم JSON API ، هال أو JSON Hyper-المخطط.

هل كانت مفيدة؟

المحلول

دلالات Location رأس أليس هذا من الذات الرجوع إلى الرابط ولكن الرابط وكيل المستخدم يجب أن تتبع من أجل إكمال الطلب.هذا منطقي في الموجهات ، عند إنشاء مورد جديد من شأنها أن تكون في موقع جديد يجب أن تذهب إلى.إذا كان طلبك هو أنجزت بالفعل ، وهذا يعني أنك بالفعل التمثيل الكامل من الموارد أردت أنه لا معنى لإرجاع Location.

على Link قد يكون رأس يعتبر لغويا أي ما يعادل رابط, ولكن ينبغي أن تستخدم للإشارة إلى البيانات الوصفية المتعلقة بالنظر إلى الموارد عندما الإعلام-نوع لا الفائقة-علم حتى لا تحل محل وظيفة وصلة إلى الموارد ذات الصلة في راحة API.

ضرورة ارتباط مخصص تنسيق في الموارد التمثيل الكامنة إلى ضرورة الفصل بين الموارد من وراء تنفيذ البروتوكول.بقية لا يقترن HTTP ، أي البروتوكول الذي يوجد صالحة URI المخطط يمكن استخدامها.إذا كنت قد قررت استخدام Link رأس كل الروابط ، أنت اقتران HTTP.

دعونا نقول لكم هذا رابط FTP للعملاء متابعة.حيث سيكون Link في هذه الحالة ؟

نصائح أخرى

الدلالي من موقع رأس يعتمد على رمز حالة.ل 201 ، الارتباطات التي تم إنشاؤها حديثا الموارد ، ولكن في 3xx يطلب ذلك يمكن أن يكون متعددة (على الرغم من مشابهة) المعاني.أعتقد أن هذا هو السبب في أنه هو تجنب عموما عن غيرها من الاستخدامات.

البديل هو محتوى موقع رأس ، التي لديها دائما متسقة معنى.يقول العميل URL الكنسي الموارد وطلب.هو محض بالمعلومات (على النقيض من الموقع ، والتي من المتوقع أن تتم معالجتها من قبل العميل).

لذا المحتوى في موقع رأس يبدو أقرب تشبه الذاتي الرجوع إلى الرابط.ومع ذلك ، فإن محتوى الموقع أيضا لا تعريف السلوك من أجل وضع آخر.كما يبدو نادرا ما تستخدم.

هذا بلوق وظيفة الموقع مقابل محتوى الموقع جميلة المقارنة.هنا هو اقتباس:

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

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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top