استعلام HTTP

لإكمال هذا المثال، يتم أولاً شرح جميع الأساسيات المتعلقة بـ HTTP. وهذا مهم لفهم كيفية عمل الواجهة.

الأساسيات

يجب مراعاة النقاط التالية:

  • عند طلب عبر HTTP، يتم إنشاء اتصال من العميل حتى يتم فصل الاتصال من قبل الخادم.
  • يحدث الاستعلام عبر TCP عبر الميناء 80 (HTTP غير مشفر) والميناء 443 (HTTPS مشفر).
  • إذا تم استخدام الميناء 80 مع http:// أو الميناء 443 مع https://، يتم إخفاء الميناء.
  • طبقة الاتصال من HTTP/1.1 بحيث يتم ترك الاتصال مفتوحًا لفترة من الوقت لتجنب عملية handshake لـ TCP. هذا غير مرئي في المراقب من Antcas Hub. ومع ذلك، بعد انتهاء الصلاحية، يتم إغلاق الاتصال من قبل العميل، أي خادم Antcas Hub. يجب أن يكون وقت الانتظار طويلاً بما يكفي.
  • كل استعلام متوافق للخلف بالكامل. لا يهم ما إذا كان الخادم يدعم HTTP/1.0 أو HTTP/1.1 أو HTTP/2.
  • الرأس غير حساس لحالة الحروف. وهذا يعني أن الأحرف الكبيرة والصغيرة لا تلعب أي دور. ومع ذلك، هناك بعض المصنعين الذين لا يركزون على تنفيذ هذا الأمر.
  • ترميز الحروف في Antcas Control هو دائمًا UTF-8. إذا تم استخدام ترميزات أخرى، يجب تحويلها إذا لزم الأمر.
  • الطول الأقصى لموقع URL بما في ذلك الاستعلام يبلغ 2'083 حرفًا.

بنية موقع URL كما يلي:

http://server.tld/getdata?project=you%26i+project&id=25#anker
المكون المعنى
http:// يحدد البروتوكول. يدعم Antcas Control حاليًا http وhttps.
server.tld يحدد المجال (DNS) أو عنوان IP للخادم الهدف.
getdata هو URI الخادم. وهذا يتوافق مع الصفحة الهدف، وهو مشابه للمسار.
?[...] يفصل العلامة ? موقع URL من ما يسمى بطلب GET، يليه جميع بيانات النموذج أيضًا تسمى الاستعلام. يتم ترميز الاستعلام دائمًا لبديل الحروف غير المدعومة.
#[...] علامة #- تعرّف رابطًا على الصفحة. هذا يسمح بالانتقال إلى أي مكان (التمرير). هذه البيانات لا تُرسل إلى الخادم. بالإضافة إلى ذلك، لا يجب نسخ هذا المجال بما في ذلك # إلى الاستعلام، وإلا فسيتم استدعاء صفحة هدف مختلفة على الخادم.

يتم تكوين خوادم الهدف في البوابة HTTP المناسبة.

بنية استعلام

يتكون بناء استعلام من رأس وجسم. يظهر الرأس في السطر الأول دائمًا الطريقة المستخدمة وURI البروتوكول.

GET /getdata?project=you%26i+project&id=25 HTTP/1.1
Host: server.tld

ثم يلي ذلك رد الخادم. وهذا يشمل رمز حالة الاستعلام. يتبع الرأس الجسم بسطر فارغ.

HTTP/1.1 200 OK
Server: Apache2
Content-Type: text/html

<html>مرحبا بالعالم</html>

أرقام الحالة

تم تقسيم أرقام الحالة إلى مجموعات. يتم تحديد المجموعات بواسطة الرقم الأول. بالإضافة إلى ذلك، بعد العدد يأتي المعنى بالكلام. إليك بعض الأمثلة:

الحالة الوصف
200 OK كان الاستعلام ناجحًا.
301 Found إعادة توجيه إلى الصفحة الفعلية. نظرًا لأن Antcas Control يتبع الروابط، يتم إخفاء هذه الإجابة عادةً.
404 Not Found لم يتم العثور على الصفحة المحدد.
500 Internal Server Error حدث خطأ في الخادم.

الطرق

يتم استخدام طرق GET وPOST بشكل أكثر تكرارًا.

الطريقة الوصف
GET استعلام GET هو الاستعلام القياسي. هذا لا يدعم أي محتوى.
POST يرسل استعلام POST محتوى إلى الخادم. يمكن أن يكون المحتوى فارغًا أيضًا. الميزة هنا هي أن المحتوى ليس له حد طول. في استعلام GET، يمكن نقل عدد معين فقط من البيانات.
PUT يستخدم PUT من قبل الواجهات لتبادل المعلومات.
DELETE مع PUT، يتم استخدامه لحذف البيانات.
(أخرى) يتم دعم طرق HTTP أخرى أيضًا، ولكن تتطلب تكوينًا مناسبًا.

المصادقة

تحدث معظم عمليات المصادقة في الرأس. ومع ذلك، هناك استعلامات يتم تعريفها في الاستعلام أو المحتوى.

قد يكون من الضروري إنشاء جلسة قبل الاستعلام الفعلي. ثم يتم تعيين الجلسة كرأس Set-Cookie. يجب إعادة إرسال هذا المجلد بعد ذلك. محتوى المجلد حساس لحالة الحروف، وهذا يعني أن المحتوى يجب أن يُرسل كما هو. إليك مثال مبسط:

POST /login HTTP/1.1
Host: server.tld

username=myname&password=1234

رد الخادم:

HTTP/1.1 200 OK
Server: Apache2
Content-Type: text/html
Set-Cookie: SESSION=vmvbquk7dq6dbbcq

الآن يمكن استخدام المجلد في الاستعلام التالي:

GET /opendoor HTTP/1.1
Host: server.tld
Cookie: SESSION=vmvbquk7dq6dbbcq

نصائح

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

التكوين

في Antcas Control، يتم إنشاء واجهة HTTP مع بوابة. يتم تكوين البوابة كعميل HTTP. هنا يتم إدخال عنوان الهدف والميناء (المطلوب) بشكل مناسب. ثم يتم تكوين الاستعلام في البنية. لهذا الغرض، يتم إدخال URL كمتغير تحت التواصل.

استعلام بسيط

لإنشاء استعلام بسيط، يتم اختيار نوع بيانات عشوائي. هذا هو preferably سلسلة من الحروف (string). إذا حدث تغيير في القيمة عند المخرج، يتم إجراء استعلام بالفعل. ثم يتم استخدام القيمة مباشرة كاستعلام.

استعلام معقد

يتم إنشاء استعلام أكثر تعقيدًا باستخدام كتلة الوظيفة HTTP_REQUEST. يجب تعيين نوع البيانات للتواصل على raw. ثم يمكن تقييم الرد باستخدام كتلة الوظيفة HTTP_RESPONSE. يجب ربط معرف الاستعلام بشكل قاطع لربط الرد بالطلب بشكل صحيح.

مثال

في هذا المثال، يتم إرسال البيانات إلى خادم باستخدام طريقة GET وتقييم الرد. URL الكامل كما يلي:

http://server.tld/getdata?project=you%26i+project&id=25

لاستلام أو إرسال بيانات من أو إلى خادم، يتم استخدام المثال التالي:

ملاحظة: لا يظهر المثال كيفية تشغيل الطلب. يتم تشغيله مع حافة إيجابية في المدخل SET. لمنع استعلام غير مقصود، يجب تعيين المدخل DIS على TRUE.

يتم تكوين واجهة كما يلي: