HTTP-Abfrage

برای مثال این را در نظر بگیرید، ابتدا همه مبانی HTTP توضیح داده می‌شوند. این مهم است تا کارکرد رابطه را درک کنید.

مبانی

نقاط زیر باید حتماً مورد توجه قرار بگیرند:

  • در یک درخواست از طریق HTTP، یک اتصال از سمت کلاینت ایجاد می‌شود تا زمانی که اتصال توسط سرور قطع شود.
  • پرس و جو از طریق TCP از طریق پورت 80 (HTTP غیر رمزنگاری شده) و از طریق پورت 443 (HTTPS رمزنگاری شده) انجام می‌شود.
  • اگر پورت 80 با http:// یا پورت 443 با https:// استفاده شود، پورت مخفی می‌شود.
  • لایه اتصال از HTTP/1.1 به این صورت است که اتصال برای مدت زمانی باز می‌ماند تا Handshake TCP را دور زده شود. این در مانیتور Antcas Control قابل مشاهده نیست. اما پس از Timeout، اتصال توسط کلاینت، یعنی سرور Antcas بسته می‌شود. بنابراین Timeout باید کافی بالا باشد.
  • هر پرس و جو کاملاً سازگار با عقب است. مهم نیست که یک سرور HTTP/1.0، HTTP/1.1 یا HTTP/2 را پشتیبانی کند.
  • هدر Case-Insensitive است. این معنی دارد که بزرگ و کوچک حروف نقش ندارد. اما برخی از تولیدکنندگان این کار را به درستی انجام نمی‌دهند.
  • کدگذاری کاراکتر در Antcas Control همیشه UTF-8 است. اگر دیگر کدگذاری‌ها استفاده شوند، باید ممکن است تبدیل شوند.
  • حداکثر طول یک URL شامل Query 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-Request جداکننده می‌کند، پس از آن همه داده‌های فرم نیز Query نامیده می‌شوند. Query همیشه رمزگذاری می‌شود تا کاراکترهای پشتیبانی نشده را جایگزین کند.
#[...] علامت #- یک انکر در یک صفحه را تعریف می‌کند. به این صورت می‌توان به هر نقطه دلخواه پرش (اسکرول) کرد. این داده‌ها به سرور ارسال نمی‌شوند. علاوه بر این، این بخش شامل # نباید در پرس و جو کپی شود، زیرا در غیر این صورت یک صفحه مقصد دیگر در سرور فراخوانی می‌شود.

پیکربندی سرورهای مقصد در HTTP-Gateway مربوطه انجام می‌شود.

ساختار یک پرس و جو

ساختار یک پرس و جو از یک هدر و یک بدی تشکیل شده است. هدر در خط اول همیشه روش استفاده شده، 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>Hallo Welt</html>

کدهای وضعیت

کدهای وضعیت به گروه‌های تقسیم شده‌اند. گروه‌ها توسط رقم اول تعریف می‌شوند. علاوه بر این، پس از عدد معنی در متن واضح آمده است. اینجا einige Beispiele:

وضعیت توضیحات
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 دیگر نیز پشتیبانی می‌شوند، اما پیکربندی مناسب را نیاز دارند.

تأیید هویت

اکثریت تأییدهای هویت در هدر رخ می‌دهد. اما برخی از درخواست‌ها در Query یا Content تعریف شده‌اند.

ممکن است یک Session قبل از پرس و جو اصلی ایجاد شود. سپس Session به عنوان هدر Set-Cookie تنظیم می‌شود. این Cookie باید دوباره منتقل شود. محتویات Cookies Case-Sensitive هستند، یعنی محتوا باید یک به یک منتقل شود. اینجا ein vereinfachtes Beispiel:

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

اکنون Cookie در پرس و جو بعدی دوباره استفاده می‌شود:

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

نکات

در کنسول توسعه‌دهنده مرورگر، می‌توان در شبکه درخواست ارزیابی و تست کرد. علاوه بر این، گاهی از نظر مناسب است هدر را کپی یا مشاهده کرد.

پیکربندی

در Antcas Control یک رابطه HTTP با یک Gateway ایجاد می‌شود. Gateway به عنوان HTTP-Client پیکربندی می‌شود. در اینجا آدرس مقصد و پورت (ضروری) به طور مناسب وارد می‌شوند. سپس در ساختار پرس و جو پیکربندی می‌شود. برای این کار در ارتباط URL به عنوان متغیر وارد می‌شود.

پرس و جو ساده

برای ایجاد یک پرس و جو ساده، یک نوع داده دلخواه انتخاب می‌شود. این نوع داده به ترجیح یک رشته (string) است. اگر در خروجی تغییر ارزش رخ دهد، یک پرس و جو انجام می‌شود. سپس مقدار مستقیم به عنوان Query استفاده می‌شود.

پرس و جو پیچیده

یک پرس و جو پیچیده‌تر با استفاده از بلوک عملکرد HTTP_REQUEST ایجاد می‌شود. برای این کار نوع داده ارتباط باید بر روی raw تنظیم شود. سپس پاسخ با استفاده از بلوک عملکرد HTTP_RESPONSE ارزیابی می‌شود. ID پرس و جو باید به طور قطع مرتبط باشد تا پاسخ درخواست را به درستی نسبت دهد.

مثال

در این مثال، داده‌ها با روش GET به یک سرور ارسال شده و پاسخ ارزیابی می‌شود. URL کامل به صورت زیر است:

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

برای اینکه داده‌ها از یک سرور دریافت یا ارسال شوند، مثال زیر استفاده می‌شود:

توجه: مثال نشان نمی‌دهد که چگونه Request فعال شود. این با یک لبه مثبت در ورودی SET فعال می‌شود. برای جلوگیری از پرس و جو غیرمطلوب، باید ورودی DIS به TRUE تنظیم شود.

پیکربندی رابطه به صورت زیر پیکربندی می‌شود: