Metoda HTTP QUERY është standardizuar, duke kombinuar mundësitë e GET dhe POST

Komiteti inxhinierik IETF (Internet Engineering Task Force), që merret me zhvillimin e protokolleve dhe arkitekturës së internetit, i ka dhënë metodës HTTP QUERY statusin «Proposed Standard» dhe ka publikuar specifikimin përkatës RFC 10008. Për nga mënyra e dërgimit të të dhënave te serveri, metoda QUERY i ngjan metodës POST, por ndryshon prej saj sepse nuk është e orientuar drejt shkrimit të të dhënave dhe ndryshimit të gjendjes, por drejt formimit të kërkesave për lexim.

Për nga detyrat që zgjidh, metoda e re është e afërt me GET dhe lejon dërgimin e kërkesave që mund të përsëriten ose rinisen pa ndryshuar gjendjen në server. Ashtu si te metoda POST, parametrat e kërkesës te QUERY nuk kalohen në URI, por në trupin e kërkesës. Kjo qasje bën të mundur dërgimin e një vëllimi të madh parametrash në kërkesë, duke tejkaluar kufirin e madhësisë së parametrave te metoda GET (8000 bajt).

GET /feed?q=foo&limit=10&sort=-published HTTP/1.1
Host: example.org

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

q=foo&limit=10&sort=-published

Parametrat e dërguar përmes metodës QUERY nuk pasqyrohen në logje serverësh, gjë që nga njëra anë e vështirëson analizën e kërkesave dhe diagnostikimin e problemeve, por nga ana tjetër bën të mundur fshehjen e të dhënave konfidenciale nga logjet e proxy-serverëve.

Ndër fushat e përdorimit të metodës QUERY përmendet dërgimi i kërkesave te Web API që kthejnë rezultate në format JSON ose XML, ose te backend-et që gjenerojnë përmbajtje. Për të përcaktuar mundësinë e përdorimit të metodës së re gjatë aksesit te serverit propozohet të përdoret metoda OPTIONS, ndërsa për të përcaktuar formatet e mbështetura metoda HEAD:

> OPTIONS /contacts HTTP/1.1
> Host: example.org

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

Metoda QUERY parashikon mbĂ«shtetje pĂ«r cache — proxy-serverĂ«t ose pĂ«rpunuesit mund tĂ« ruajnĂ« rezultatin e ekzekutimit tĂ« kĂ«rkesĂ«s, t’i caktojnĂ« atij njĂ« URI pĂ«r akses tĂ« mĂ«vonshĂ«m pĂ«rmes metodĂ«s GET dhe tĂ« kthejnĂ« informacion pĂ«r ofrimin e versionit tĂ« ruajtur nĂ« cache pĂ«rmes header-it «Last-Modified». PĂ«r tĂ« kontrolluar nĂ«se ka ndryshime qĂ« nga kĂ«rkesa e mĂ«parshme, mund tĂ« pĂ«rdoret header-i «If-Modified-Since». PĂ«r tĂ« treguar variante alternative tĂ« ekzekutimit tĂ« kĂ«rkesĂ«s, nĂ« pĂ«rgjigje mund tĂ« jepen header-at «Content-Location» dhe «Location»; ndryshimi mes tyre Ă«shtĂ« se i pari jep lidhjen pĂ«r marrjen e rezultatit tĂ« njĂ« kĂ«rkese tĂ« ekzekutuar mĂ« parĂ«, ndĂ«rsa i dyti shĂ«rben pĂ«r pĂ«rsĂ«ritjen e kĂ«rkesĂ«s me tĂ« njĂ«jtĂ«t parametra.

> QUERY /contacts HTTP/1.1
> Host: example.org
> Content-Type: application/x-www-form-urlencoded
> Accept: application/json
> select=surname,givenname,email&limit=10&match="email=*@example.*"

HTTP/1.1 200 OK
Content-Type: application/json
Content-Location: /contacts/stored-results/17
Location: /contacts/stored-queries/42
Last-Modified: Sat, 25 Aug 2012 23:34:45 GMT
Date: Sun, 17 Nov 2024, 16:10:24 GMT

> GET /contacts/stored-results/17 HTTP/1.1
> Host: example.org
> Accept: application/json

Përveç llojit «application/x-www-form-urlencoded», për dërgimin e parametrave në kërkesat QUERY mund të përdoren drejtpërdrejt edhe formate të zgjeruara, si JSONPath (application/jsonpath), XSLT (application/xslt+xml) dhe SQL (application/sql). Formatet e mbështetura kthehen server në titullin Accept-Query.

> HEAD /contacts HTTP/1.1
> Host: example.org

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

> QUERY /errata.json HTTP/1.1
> Host: example.org
> Content-Type: application/jsonpath
> Accept: application/json
>
> $..[
> ?@.errata_status_code==»Refuzuar»
> && @.submit_date>»2024″
> ]
> [«doc-id»]

Burimi: opennet.ru

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster