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

Komitetin inxhinierik IETF (Internet Engineering Task Force), i angazhuar në zhvillimin e protokolleve dhe arkitekturës së internetit, i dha metodës HTTP QUERY statusin e «Standartit të Propozuar» dhe publikoi specifikimin përkatës RFC 10008. Metoda QUERY në mënyrën e dërgimit të të dhënave në server përsërit metodën POST, por ndryshon nga ajo në orientimin jo për të regjistruar të dhëna dhe për të ndryshuar gjendjen, por për të formuar kërkesa për lexim.

Për problemet e zgjidhjes, metoda e re është e ngjashme me GET dhe lejon dërgimin e kërkesave që mund të përsëriten ose ri-fillohen pa ndryshuar gjendjen në server. Si në metodën POST, parametrat e kërkesës në QUERY dërgohen jo në URI, por në trupin e kërkesës. Ky qasje mundëson dërgimin e një sasi të madhe parametrash në kërkesë, që tejkalon kufirin e madhësisë së parametrave në metodën GET (8000 byte).

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 reflektohen në loge servera, që nga njëra anë e vështirëson analizën e kërkesave dhe diagnostikimin e problemeve, por nga ana tjetër ofron mundësinë për të fshehur të dhëna konfidenciale nga log-ët e serverëve proxy.

Mes zonave të aplikimit të metodës QUERY përmendet dërgimi i kërkesave në Web API, të cilat japin rezultate në formatin JSON ose XML, ose në backend që gjenerojnë përmbajtje. Për të përcaktuar mundësinë e përdorimit të metodës së re kur i drejtoheni server propozohet të përdoret metoda OPTIONS, dhe 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 ofron mbĂ«shtetje pĂ«r caching — serverat proxy ose pĂ«rpunuesit mund tĂ« ruajnĂ« rezultatin e ekzekutimit tĂ« kĂ«rkesĂ«s, t'i japin atij njĂ« URI pĂ«r qasje tĂ« mĂ«vonshme pĂ«rmes metodĂ«s GET dhe tĂ« kthejnĂ« informacionin e verzionit tĂ« mbajtur nĂ«pĂ«rmjet titullit „Last-Modified“. PĂ«r tĂ« verifikuar prani nĂ« ndryshime nga kĂ«rkesa e kaluar, mund tĂ« pĂ«rdoret titulli „If-Modified-Since“. PĂ«r tĂ« specifikuar alternativa pĂ«r ekzekutimin e kĂ«rkesĂ«s, mund tĂ« tregohet titujt „Content-Location“ dhe „Location“, ku dallimi Ă«shtĂ« se i pari jep njĂ« lidhje pĂ«r marrjen e rezultatit tĂ« njĂ« kĂ«rkese tĂ« kaluar, ndĂ«rsa i dyti Ă«shtĂ« pĂ«r pĂ«rsĂ«ritjen e kĂ«rkesĂ«s me tĂ« njĂ«jtat 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=%22email=*@example.*%22

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», formate të avancuara si JSONPath (application/jsonpath), XSLT (application/xslt+xml) dhe SQL (application/sql) gjithashtu mund të përdoren për të transmetuar parametra në kërkesat QUERY. Format e mbështetura kthehen serverin në headerin 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==»Rejected»
> && @.submit_date>»2024″
> ]
> [«doc-id»]

Burimi: opennet.ru

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