> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-detect-table-modification.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# إعدادات جلسة http_*

> إعدادات الجلسة في ClickHouse ضمن مجموعة http_* المُولَّدة.

export const VersionHistory = ({rows = []}) => {
  if (rows.length === 0) {
    return null;
  }
  const headers = ["الإصدار", "القيمة الافتراضية", "التعليق"];
  const border = "1px solid rgba(128, 128, 128, 0.3)";
  const cell = {
    border,
    padding: "0.25rem 0.5rem",
    textAlign: "start",
    verticalAlign: "top"
  };
  return <details className="not-prose" style={{
    border,
    borderRadius: "0.5rem",
    margin: "0.5rem 0",
    padding: "0.5rem 0.75rem",
    fontSize: "0.8125rem",
    lineHeight: "1.125rem"
  }}>
      <summary style={{
    cursor: "pointer",
    fontWeight: 600,
    opacity: 0.72
  }}>
        سجل الإصدارات
      </summary>
      <table style={{
    borderCollapse: "collapse",
    width: "100%",
    margin: "0.5rem 0 0"
  }}>
        <thead>
          <tr>
            {headers.map(header => <th key={header} style={{
    ...cell,
    fontWeight: 600,
    opacity: 0.72
  }}>
                {header}
              </th>)}
          </tr>
        </thead>
        <tbody>
          {rows.map((row, row_index) => <tr key={row.id ?? row_index}>
              {(row.items ?? []).map((item, item_index) => <td key={item_index} style={{
    ...cell,
    overflowWrap: "anywhere"
  }}>
                  {item?.label}
                </td>)}
            </tr>)}
        </tbody>
      </table>
    </details>;
};

export const SettingsInfoBlock = ({type, default_value, changeable_without_restart}) => {
  return <div className="not-prose" style={{
    display: "flex",
    flexWrap: "wrap",
    alignItems: "baseline",
    columnGap: "0.5rem",
    rowGap: "0.125rem",
    margin: "0.375rem 0",
    fontSize: "0.8125rem",
    lineHeight: "1.125rem"
  }}>
      <div style={{
    fontWeight: 600,
    opacity: 0.72
  }}>النوع</div>
      <div style={{
    overflowWrap: "anywhere"
  }}>{type}</div>
      <div style={{
    fontWeight: 600,
    opacity: 0.72,
    marginInlineStart: "0.5rem"
  }}>القيمة الافتراضية</div>
      <div style={{
    overflowWrap: "anywhere"
  }}>{default_value}</div>
      {changeable_without_restart && <div style={{
    fontWeight: 600,
    opacity: 0.72,
    marginInlineStart: "0.5rem"
  }}>
          يمكن تغييره دون إعادة التشغيل
        </div>}
      {changeable_without_restart && <div style={{
    overflowWrap: "anywhere"
  }}>
          {changeable_without_restart}
        </div>}
    </div>;
};

هذه الإعدادات متاحة في [system.settings](/ar/reference/system-tables/settings)، وقد تم إنشاؤها تلقائيًا من [المصدر](https://github.com/ClickHouse/ClickHouse/blob/master/src/Core/Settings.cpp).

<div id="http_allow_database_as_path">
  ## http\_allow\_database\_as\_path
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.8"},{"label": "0"},{"label": "إعداد جديد للتعرّف على اسم قاعدة البيانات في مسار URL لطلبات HTTP."}]}]} />

عند تمكينه، تتعرّف واجهة HTTP على المكوّن `/database/` في مسار URL وتستخدمه كقاعدة البيانات الحالية.

هذا إعداد لكل مستخدم يتحكم في تفسير الطلبات الموجّهة بنمط المسار. أما التوجيه نفسه فيتحكم به على مستوى الخادم إعداد التكوين `http_allow_path_requests` (وهو معطّل افتراضيًا)، ويجب تمكينه لكي تتمكن واجهة HTTP من توجيه طلب بنمط المسار (مثل `/my_db/my_table.csv`) إلى معالج الاستعلامات أصلًا — إذ يُتخذ قرار التوجيه قبل مصادقة الطلب، ولذلك لا يمكن أن يعتمد على إعداد لكل مستخدم. عندما يكون `http_allow_path_requests` معطّلًا، تُرجع المسارات غير المعروفة استجابة `404` عادية. بعد التوجيه، يُعاد التحقق من هذا الإعداد وفقًا للإعدادات الفعالة للمستخدم الذي تمت مصادقته، لذا يمكن تمكينه انتقائيًا لكل مستخدم أو Role أو profile.

<div id="http_allow_filters_as_path">
  ## http\_allow\_filters\_as\_path
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.8"},{"label": "0"},{"label": "إعداد جديد للتعرّف على عوامل التصفية `name=value` بنمط Hive في مسار URL لطلبات HTTP."}]}]} />

عند تمكين هذا الإعداد، تتعرّف واجهة HTTP على المكوّنات `/name=value/` في المسار (بنمط تقسيم Hive) وتحولها إلى عوامل تصفية مدمجة باستخدام AND. كما تتعرّف على المعاملات `>`, `<`, `>=`, `<=`, `!=`, `<>`.

كما هو الحال مع [`http_allow_database_as_path`](/ar/reference/settings/session-settings/http#http_allow_database_as_path)، فإن هذا إعداد خاص بكل مستخدم؛ ويُتحكّم في توجيه الطلبات بنمط المسار على مستوى الخادم عبر إعداد التهيئة `http_allow_path_requests` (إذ يحدث التوجيه قبل المصادقة).

<div id="http_allow_filters_as_unrecognized_url_parameters">
  ## http\_allow\_filters\_as\_unrecognized\_url\_parameters
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.8"},{"label": "0"},{"label": "إعداد جديد لمعاملة معلمات URL غير المعروفة كتعبيرات تصفية في طلبات HTTP."}]}]} />

عند تفعيله، تُعامل أي معلمة URL لا يُتعرّف عليها بوصفها معلمة معروفة أو إعدادًا أو بادئة `param_*` كعامل تصفية، وتُدمج باستخدام AND. يُقبل شكلان:

* يتحول `name=value` البسيط إلى تعبير مساواة `` `name` = 'value' `` (يُحاط المعرّف بعلامات اقتباس معكوسة، وتُقتبس القيمة كقيمة حرفية نصية).
* يجعل عامل المقارنة (`!=`، `>`، `<`، `>=`، `<=`، `<>`) منها مقارنة: إما بفصله عبر المعلمة (`?a!=2`، `?a>=2`) أو بكتابته مباشرةً عندما لا يحتوي URL على `=` للفصل عنده (`?a<>2`، `?f(x)>3`). وفي هذه الحالة، يُحلَّل `name[=value]` المُعاد تجميعه كتعبير SQL كامل.

<div id="http_allow_table_as_file">
  ## http\_allow\_table\_as\_file
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.8"},{"label": "0"},{"label": "إعداد جديد للتعرّف على اسم جدول في مسار URL لطلبات HTTP، مع امتدادات اختيارية للتنسيق\/الضغط."}]}]} />

عند تمكينه، تتعرّف واجهة HTTP على آخر مكوّن من مسار URL باعتباره اسم جدول بالصيغة `table` أو `table.format` أو `table.format.compression`. ويُفسَّر المسار على أنه `SELECT * FROM table`.

مثل [`http_allow_database_as_path`](/ar/reference/settings/session-settings/http#http_allow_database_as_path)، يُعد هذا إعدادًا لكل مستخدم؛ ويُتحكَّم عالميًا في توجيه الطلبات بنمط المسار عبر إعداد التكوين `http_allow_path_requests` على مستوى الخادم (يحدث التوجيه قبل المصادقة).

<div id="http_connection_timeout">
  ## http\_connection\_timeout
</div>

<SettingsInfoBlock type="ثوانٍ" default_value="1" />

مهلة اتصال HTTP (بالثواني).

القيم الممكنة:

* أي عدد صحيح موجب.
* 0 - معطّل (مهلة لا نهائية).

<div id="http_make_head_request">
  ## http\_make\_head\_request
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

يتيح الإعداد `http_make_head_request` تنفيذ طلب `HEAD` عند قراءة البيانات عبر HTTP لاسترجاع معلومات عن الملف المطلوب قراءته، مثل حجمه. وبما أنه مُمكَّن افتراضيًا، فقد يكون من الأفضل تعطيل هذا الإعداد في الحالات التي لا يدعم فيها الخادم طلبات `HEAD`.

<div id="http_native_compression_disable_checksumming_on_decompress">
  ## http\_native\_compression\_disable\_checksumming\_on\_decompress
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

يُفعِّل أو يعطِّل التحقق من صحة المجموع الاختباري عند فك ضغط بيانات HTTP POST الواردة من العميل. يُستخدم هذا فقط مع تنسيق الضغط الأصلي في ClickHouse (ولا يُستخدم مع `gzip` أو `deflate`).

لمزيد من المعلومات، اقرأ [وصف واجهة HTTP](/ar/concepts/features/interfaces/http).

القيم الممكنة:

* 0 — معطّل.
* 1 — مفعّل.

<div id="http_receive_timeout">
  ## http\_receive\_timeout
</div>

<SettingsInfoBlock type="ثوانٍ" default_value="30" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "23.6"},{"label": "30"},{"label": "راجع http_send_timeout."}]}]} />

مهلة استقبال HTTP (بالثواني).

القيم الممكنة:

* أي عدد صحيح موجب (بالثواني). `0` **ليست** مهلة لا نهائية، وقد تتسبب في فشل إعداد الاتصال (تتطلب مهلات مقبس POSIX فترة زمنية موجبة).

<div id="http_send_timeout">
  ## http\_send\_timeout
</div>

<SettingsInfoBlock type="ثوانٍ" default_value="30" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "23.6"},{"label": "30"},{"label": "تبدو مدة 3 دقائق طويلة بشكل مبالغ فيه. لاحظ أن هذه المهلة مخصّصة لعملية كتابة واحدة على الشبكة، وليست لعملية الرفع بأكملها."}]}]} />

مهلة إرسال HTTP (بالثواني).

القيم الممكنة:

* أي عدد صحيح موجب (بالثواني). لا تمثل القيمة `0` مهلة لا نهائية، وقد تتسبب في فشل إعداد الاتصال (تتطلب مهلات مقبس POSIX فترة زمنية موجبة).

<Note>
  ينطبق هذا فقط على ملف التعريف default. يلزم إعادة تشغيل الخادم لكي تصبح التغييرات سارية المفعول.
</Note>

<div id="http_skip_not_found_url_for_globs">
  ## http\_skip\_not\_found\_url\_for\_globs
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

تخطَّ عناوين URL لأنماط glob التي تُرجع الخطأ HTTP\_NOT\_FOUND

<div id="http_wait_end_of_query">
  ## http\_wait\_end\_of\_query
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

فعِّل التخزين المؤقت لاستجابة HTTP على جانب الخادم.

<div id="http_write_exception_in_output_format">
  ## http\_write\_exception\_in\_output\_format
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.11"},{"label": "0"},{"label": "تم تغييره لضمان الاتساق عبر التنسيقات"}]}, {"id": "row-2","items": [{"label": "23.9"},{"label": "1"},{"label": "إخراج JSON\/XML صالح عند حدوث استثناء في HTTP streaming."}]}]} />

يكتب الاستثناء بتنسيق الإخراج لضمان إنتاج مخرجات صالحة. يعمل مع تنسيقات JSON وXML.

<div id="http_zlib_compression_level">
  ## http\_zlib\_compression\_level
</div>

<SettingsInfoBlock type="Int64" default_value="3" />

يحدد مستوى ضغط البيانات في الاستجابة لطلب HTTP إذا كان [enable\_http\_compression = 1](/ar/reference/settings/session-settings/enable#enable_http_compression).

القيم الممكنة: أرقام من 1 إلى 12. تتطلب المستويات الأعلى من `9` البنية الافتراضية مع `libdeflate`؛ أما البنية من دون `libdeflate` فتدعم المستويات من 1 إلى 9.
