Sobes.tech
Junior

Оё мо метавонем параметрҳои пурсишро (query) ба ҷои бадани дархост (body) истифода барем?

sobes.tech AI

Ҷавоб аз AI

Бале, аммо ин ба навъи дархост ва маълумоти интиқолёфта вобаста аст.

Параметрҳои дархост (Query Parameters)

  • Дар URL пас аз аломати ? ҳамчун ҷуфтҳои калид=қимат, ки бо & ҷудо шудаанд, интиқол дода мешаванд.
  • Аксар вақт барои дархостҳои GET барои филтр, навъбандӣ, пагинацияи маълумот истифода мешаванд (масалан: /api/items?category=electronics&sort=price).
  • Аз рӯи андоза дар бисёр браузерҳо ва серверҳо маҳдуд аст.
  • Дар логҳо ва таърихи браузерҳо намоён аст (мушкили эҳтимолии бехатарӣ барои маълумоти ҳассос).
  • Ба осонӣ кеш мешавад.

Танаи дархост (Request Body)

  • Дар танаи HTTP дархост интиқол дода мешавад.
  • Аксар вақт барои POST, PUT, PATCH барои интиқоли миқдори калонтарини маълумот, эҷод ё навсозии захираҳо истифода мешавад (масалан: фиристодани форма, объект JSON).
  • Маҳдудиятҳои қатъӣ дар андоза нест (дар доираи конфигуратсияҳои сервер).
  • Дар URL намоён нест, ки барои интиқоли маълумоти ҳассос мувофиқтар аст.
  • Аз ҷониби браузерҳо ба таври пешфарз кеш намешавад.
  • Мумкин аст намудҳои гуногуни маълумотро дар бар гирад (JSON, XML, формҳо).

Таблиғи муқоиса:

Критерия Параметрҳои дархост (Query Parameters) Танаи дархост (Request Body)
Ҷойгиршавӣ URL (пас аз ?) Танаи HTTP дархост
Меъёри оддӣ GET POST, PUT, PATCH
Истифода Филтр, навъбандӣ, пагинация Эҷод/навсозии захираҳо, интиқоли маълумоти калон
Андоза маҳдуд аст Қариб бебаҳос аст
Намоён дар URL намоён аст Дар URL намоён нест
Кешкашӣ ба осонӣ кеш мешавад ба таври пешфарз кеш намешавад
Бехатарӣ барои маълумоти ҳассос камтар мувофиқ аст барои маълумоти ҳассос мувофиқтар аст

Вақте ки бояд истифода бурд:

  • Query Parameters дар ҷойи Body: назариявӣ барои методҳои POST, PUT ва ғайра имконпазир аст, аммо ** тавсия дода намешавад** барои интиқоли мазмуни асосии дархост. Ин метавонад семантикаи методҳои HTTP-ро вайрон кунад ва коркардро мураккаб созад. Онро хеле кам истифода мебаранд, асосан барои ҳолатҳои оддӣ ё сохторҳои махсус. Интиқоли маълумоти калон ё сохторӣ тавассути сатрҳои query номувофиқ аст.
  • Body дар ҷойи Query Parameters: барои дархостҳои GET имконнопазир аст, зеро стандартҳои HTTP маънои танаи дархостро барои GET муайян намекунанд. Барои дигар методҳо (POST, PUT ва ғайра) танаи дархост усули стандартии интиқол аст ва барои интиқоли маълумоти сохторӣ ё калонтар мувофиқтар аст, агар маълумот ҳассос бошад.

Дар бисёр ҳолатҳо, беҳтар аст, ки ба конвенсияҳои маъруф риоя кунед: истифодаи query parameters барои GET барои филтр ва муайян кардан ва body барои фиристодани маълумот дар дархостҳое, ки ҳолатро тағир медиҳанд (POST, PUT, PATCH).