Metoda HTTP QUERY, která kombinuje možnosti metod GET a POST, byla standardizována.

Pracovní skupina pro internetové inženýrství (IETF), která vyvíjí internetové protokoly a architekturu, označila metodu HTTP QUERY za „navrhovaný standard“ a publikovala související specifikaci RFC 10008. Metoda QUERY replikuje metodu POST ve své metodě odesílání dat na server, ale liší se v tom, že se zaměřuje na generování požadavků na čtení, nikoli na zápis dat a změnu stavu.

Nová metoda je svým zamýšleným účelem podobná metodě GET a umožňuje odesílání požadavků, které lze opakovat nebo restartovat bez změny stavu serveru. Stejně jako u metody POST se parametry dotazu v metodě QUERY předávají v těle požadavku, nikoli přes URI. Tento přístup umožňuje přenos velkého počtu parametrů v požadavku, což překračuje limit velikosti parametru metody GET (8000 bajtů).

GET /feed?q=foo&limit=10&sort=-publikováno HTTP/1.1
Hostitel: example.org

DOTAZ /feed HTTP/1.1
Hostitel: example.org
Content-Type: application/x-www-form-urlencoded

q=foo&limit=10&sort=-publikováno

Parametry odeslané metodou QUERY se v protokolech neprojevují. servery, což na jedné straně komplikuje analýzu požadavků a diagnostiku problémů, ale na druhé straně umožňuje skrýt důvěrná data z protokolů proxy serveru.

Mezi oblastmi použití metody QUERY je zmíněno odesílání požadavků do webových API, které produkují výsledky ve formátu JSON nebo XML, nebo do backendů, které generují obsah. Pro určení proveditelnosti použití nové metody při přístupu server Pro určení podporovaných formátů se doporučuje použít metodu OPTIONS a metodu HEAD:

> MOŽNOSTI /kontakty HTTP/1.1
> Hostitel: example.org

HTTP / 1.1 200 OK
Povolit: GET, QUERY, OPTIONS, HEAD

Metoda QUERY podporuje ukládání do mezipaměti: proxy servery nebo obslužné rutiny mohou uložit výsledek dotazu, přiřadit mu URI pro následný přístup pomocí metody GET a vrátit informace o verzi v mezipaměti prostřednictvím hlavičky „Last-Modified“. Hlavičku „If-Modified-Since“ lze použít ke kontrole změn od předchozího požadavku. Pro určení alternativních možností provedení dotazu lze v odpovědi zadat hlavičky „Content-Location“ a „Location“. První z nich poskytuje odkaz na výsledek dříve provedeného dotazu, zatímco druhá je určena k opakování dotazu se stejnými parametry.

> DOTAZ /kontakty HTTP/1.1
> Hostitel: example.org
> Typ obsahu: application/x-www-form-urlencoded
> Přijmout: application/json
> select=příjmení,jméno,e-mail&limit=10&match=%22email=*@example.*%22

HTTP / 1.1 200 OK
Typ obsahu: aplikace / json
Umístění obsahu: /contacts/stored-results/17
Umístění: /contacts/stored-queries/42
Naposledy upraveno: So, 25. srpna 2012 23:34:45 GMT
Datum: Ne, 17. listopadu 2024, 16:10:24 GMT

> GET /contacts/stored-results/17 HTTP/1.1
> Hostitel: example.org
> Přijmout: application/json

Kromě typu „application/x-www-form-urlencoded“ lze k předávání parametrů v dotazech QUERY přímo použít také rozšířené formáty, jako je JSONPath (application/jsonpath), XSLT (application/xslt+xml) a SQL (application/sql). Jsou vráceny podporované formáty. server v záhlaví Accept-Query.

> HEAD /kontakty HTTP/1.1
> Hostitel: example.org

HTTP / 1.1 200 OK
Typ obsahu: application/xhtml
Accept-Query: application/x-www-form-urlencoded, application/jsonpath, application/sql

> DOTAZ /errata.json HTTP/1.1
> Hostitel: example.org
> Typ obsahu: application/jsonpath
> Přijmout: application/json
>
> $..[
> ?@.errata_status_code=="Odmítnuto"
> && @.submit_date>»2024″
> ]
> [«id-docu»]

Zdroj: opennet.ru

Kupte si spolehlivý hosting pro stránky s DDoS ochranou, VPS VDS servery 🔥 Kupte si spolehlivý webhosting s ochranou DDoS, VPS VDS servery | ProHoster