Saugokite duomenis daiktų interneto žiniatinklio serveryje naudodami HTTP POST užklausas

Saugokite duomenis daiktų interneto žiniatinklio serveryje naudodami HTTP POST užklausas

Saugokite duomenis daiktų interneto žiniatinklio serveryje naudodami HTTP POST užklausas

IoT žiniatinklio serverisHTTP POST IoT žiniatinklio serverisMySQL duomenų bazė. IoT žiniatinklio serverisPHP kalbos IoT žiniatinklio serveris

Kaip paaiškinta pirmajame serijos straipsnyje saugoti daiktų interneto įrenginiais gautus duomenis, nors išsaugoti duomenys patenka į serverį MySQL o MariaDB ir vartojama kalba PHP manipuliuoti jais įvesties ir išvesties metu, informacijos srautas tarp elektroninės įrangos ir duomenų bazės vyksta naudojant a interneto serveris su kuriais bendraujate pagal HTTP protokolas.

Apibrėžimo pradžioje HTTP protokolas Buvo naudojimo būdų, panašių į aprašytąjį, tačiau faktas yra tas, kad galiausiai jis nebuvo visiškai išnaudotas dėl įvairių priežasčių, iš dalies dėl saugumo ir iš dalies dėl to, kad niekada nebuvo padaryta pažanga nustatant konkretesnį ar efektyvesnį protokolą, todėl šiais laikais ypač viešuosiuose serveriuose dažniausiai naudojamas ryšys HTTP kas daro a POST užklausa į serverį informacijai saugoti arba a GET Norėdami jį atkurti, paprastai rodyti tinklalapį, kuriame jis pateikiamas ir kuriame netgi galite bendrauti.

Pats paprasčiausias tekstas, išsiųstas serveriui užklausoje HTTP POST apima eilutę su užklausos tipu (POST) kelias į tinklalapį, kuriame bus saugoma informacija, ir versija HTTP protokolas; kitą eilutę su pagrindinio kompiuterio pavadinimu (kuri leidžia virtualius serverius tame pačiame serveryje ir (arba) tuo pačiu IP adresu) ir galiausiai kitą, kurioje yra įrašyti duomenys, atskirti vienas nuo kito & ženklu ir nuo ankstesnių eilučių vienu tuščias.

Aukščiau pateiktame pavyzdyje serveryje, pavadintame polaridad.es, yra puslapis /iot/grabar_temperatura, skirtas informacijai tvarkyti naudojant 1.1 versiją. HTTP protokolas

Matyti, kad naudojami du & ženklai, kurie rodo, kad yra saugomi trys laukai. Laukų pavadinimai yra lygybės ženklo kairėje ir jiems apibrėžti naudotos tik dvi raidės. Kaip užklausos laukų (arba kintamųjų, jei norite) pavadinimas HTTP Jie nesusiję su esančiais duomenų bazėje, nėra ypač svarbu naudoti aprašomuosius tekstus ir dažniausiai pasirenkami trumpieji pavadinimai (lyginiai laukai), kad išsaugotų tekstą bendraujant su serveriu ir paspartintų duomenų siuntimo procesą.

Duomenys, kuriuos daiktų interneto įrenginys paprastai siunčia serveriui, yra skaitiniai, daugiausia sveikieji skaičiai ir paprasti dešimtainiai skaičiai. Kai reikšmės siunčiamos tekstiniu formatu, kaip pavyzdyje yra su kintamuoju "ne", gali susiklostyti nepalankios aplinkybės, kurias galima išspręsti, priklausomai nuo atvejo, daugiau ar mažiau sėkmingai ir lengvai. Šia proga žodžiams atskirti naudojami pliuso ženklai (+), pakeičiantys tarpus, kurie kitu atveju pakeistų POST užklausa. Bendras duomenų siuntimo būdas, kuris išsprendžia daugumą atvejų, yra šešioliktainis simbolių kodo nurodymas, prieš kurį rašomas procentinis ženklas (%) Logiškai mąstant, nepatartina naudoti šio šaltinio, išskyrus atvejus, kai tai, kas užkoduota, yra problemiška, nes siunčiamas yra padidintas, o tam paprastai reikia daugiau išteklių, nors jis tikrai yra labai mažas.

Nors galima operuoti a interneto serveris Daiktų internetui tik turėdami informaciją iš ankstesnio pavyzdžio, daugelis serverių, ypač viešųjų, į POST užklausą įtraukia kitus duomenis (deja, ne visada apsiriboja protokolu) Žemiau pateiktas pavyzdys atitinka šulinio užklausą. - žinomas serveris. Viešasis daiktų internetas DalykasKalba.

Be kai kurių asmens duomenų, pvz X-THINGSPEAKAPIKEY (ir kuris atitinka kiekvieno kliento identifikatorių) ankstesniame pavyzdyje matote, kad yra ir kitų antraščių, kurios prideda daugiau informacijos prie užklausos.

Kaip naudoti antraštę a POST užklausa Jį tiesiog sudaro jo pavadinimo, dvitaškio ženklo (:), tuščio tarpo ir reikšmės, kurią norite priskirti, įrašymas.

Norint patikrinti POST užklausas žiniatinklio serveriui prieš baigiant konfigūruoti kitus komponentus, galima užmegzti ryšį su serveriu ir rankiniu būdu siųsti duomenis. Pavyzdžiui, Linux kompiuteryje užtektų naudoti telnet polaridad.es 80 kur polaridad.es yra serverio pavadinimas, o 80 yra prievado numeris, kuriuo paslauga atsako. HTTP.

Prisijunkite prie polaridad.es žiniatinklio serverio naudodami Telnet ir saugokite daiktų interneto duomenis

Kelių platformų įrankis gali būti naudojamas Linux, Windows arba OS PuTTY, apie kurį buvo kalbama straipsnyje valdyti UART serijinius įrenginius iš kompiuterio, kad užmegztumėte ryšį nenaudojant konsolės.

Prisijunkite prie polaridad.es žiniatinklio serverio naudodami PuTTY, kad saugotumėte IoT duomenis

Kitame HTTP antraščių sąrašas Yra dauguma tų, kurios gali būti naudingos a POST užklausa į interneto serveris daiktų internetui.

  • Accept Jis naudojamas tipui nurodyti Mime kad užklausa tikisi, kad serveris naudos atsakyme. Jis išreiškiamas kaip tipo/subtipo kurį galima apibendrinti naudojant žvaigždutę (*) kaip pakaitos ženklą, pavyzdžiui, kaip */* nurodyti bet kurį arba tipo/* nurodyti visus potipius tipo

    Dažniausiai naudojami šie:

    • text/plain Nors tai pats paprasčiausias, jis taip pat dažniausiai naudojamas. Jis tikisi, kad serveris pateiks paprastą (paprastą) tekstinį atsakymą, kurio pakanka pranešti, kad operacija buvo teisinga, ir daugiausia pridės papildomos informacijos, pvz., įrašytų duomenų užsakymo numerį, palyginimo rezultatą, operacijos datą. serveris…

    • application/xml o text/xml Palaukite, kol serveris atsakys į užklausą formatu XML. Pasirinkimo prasmė text vietoj application leidžia lengviau skaityti „žmogiškai“ (palyginti su „automatiniu“). Šis dvilypumas atsiras kituose MIME tipai tačiau standarto ateities tendencija yra pirmenybė application prieš text Formatas XML leidžia labai tvirtai struktūrizuoti atsakymą, kuriame yra daug duomenų, trūkumas yra tas, kad jis prideda daug dirbtinio tinklo duomenų, todėl atsakymas užima daugiau nei reikia, todėl reikia daugiau pralaidumo ir tikriausiai daugiau atmintį daiktų interneto įrenginyje, kad ją apdorotų.

    • text/html Naudojamas, kai serverio atsakymas yra HTML užkoduotas kaip paprastas tekstas (paprastas tekstas), paprastai formatuojant atsakymą. Kadangi kalbama apie duomenų saugojimą ir atsakymas pasiektų nedidelį įrenginį be daug resursų, tokio tipo naudojimas nėra įprastas.

    • application/xhtml+xml Iš esmės tai yra versija XHTML (HTML kaip XML galioja) ankstesniame skyriuje pateiktą informaciją.

    • application/json Jis dažniausiai naudojamas, kai serverio atsakyme yra keli duomenys, įskaitant daugiau ar mažiau sudėtingą struktūrą. Formatas JSON bendrinti su formatu XML tvirta struktūra ir prideda pranašumą, nes struktūra pridėta teksto yra glaustesnė.

  • Accept-Charset Nustato teksto kodavimą, kurį prašoma naudoti atsakyme. Norėdami užkoduoti lotyniškus simbolius, UTF-8, pats išsamiausias, ISO-8859 15, kuriame yra euro ženklas (€) ir ISO-8859 1, kuris yra pats elementariausias.

  • Accept-Encoding Nurodo formatą, pagal kurį serverio atsakymas gali būti užkoduotas. Iš esmės tai nurodo suspaudimo tipą. Kai kurie iš dažniausiai pasitaikančių yra gzip deflate (kurį galima išsamiau nurodyti su deflate-raw o deflate-http) Neįprasta jį naudoti mažuose įrenginiuose, prijungtuose prie daiktų interneto, nes tam reikia tam tikrų išteklių (atminties ir apdorojimo laiko), kurių paprastai trūksta tokio tipo įrangoje. Nebūtina nurodyti, kad suspaudimas nenaudojamas Accept-Encoding: identity kadangi tokia aplinkybė laikoma pagal nutylėjimą.

  • Accept-Language Išreiškia kalbą, kurią galima vartoti atsakyme. Pavyzdžiui, Ispanijos ispanų kalba būtų nurodyta kaip es-ES arba Jungtinių Amerikos Valstijų anglų kalba kaip en-US

  • Connection Jis naudojamas norint nurodyti, ką daryti su ryšiu, užmegztu tarp kliento (IoT įrenginio) ir interneto serveris kai duomenys bus gauti. Paprastai naudojamas su verte close formatu Connection: close nurodyti, kad atsiliepus klientui ryšys turi būti nutrauktas.

  • Content-Length Tai leidžia nurodyti baitų skaičių, kurį užima užklausos dalis, kurioje yra duomenys, esanti po antraščių ir atskirta tuščia eilute. Tai labai naudinga, nes padeda patikrinti siunčiamos informacijos vientisumą; Jei jis neįvertina to, kas buvo deklaruota, jis nesaugomas, nes laikoma, kad jis atvežtas netinkamai. Paprastai to reikalauja dauguma viešųjų IoT serverių.

  • Content-Type Jis skirtas nurodyti MIME tipas kuriuo užkoduojama į serverį siunčiama informacija. Paprastai naudojami tipai text/html kai į serverį siunčiami duomenys išreiškiami kaip paprastas reikšmių sąrašas (kažkas panašaus į a=3.6&b=4.8) Ir application/jsonrequest (tai būtų tipo atitikmuo application/json apie kurį kalbama Accept), kai reikalinga sudėtingesnė struktūra, tačiau galima siųsti bet kurį iš toliau nurodytų dalykų MIME tipų sąrašas.

  • Cookie Jis naudojamas pridėti seanso identifikatorių, su kuriuo palaikoma perdavimo grandinė (užklausa, atsakymas, užklausa...), kuri yra sudėtingesnė nei viena užklausa, su kuria būtų siunčiami tam tikri susiję, bet skirtingu laiku gaunami duomenys.

  • Turinys
    • Referer URL, iš kurio kilo POST užklausa, pavyzdžiui, tinklalapis, iš kurio ji buvo išsiųsta. Jei naudojama daiktų internetui, ji neprideda svarbios informacijos, nes informacija siunčiama tiesiogiai, be ankstesnio puslapio, todėl ji nėra dažnai naudojama.

    • User-Agent Praneša apie užklausą pateikusį įrenginį. Esant įprastam interneto srautui, daiktų internete naudojama naršyklė leidžia serveriui nurodyti elektroninio įrenginio tipą, pateikiantį užklausą. Atpažinus save serveryje, atsakymas kiekvienu atveju gali būti suformatuotas skirtingai, pavyzdžiui, grąžinant sudėtingą tinklalapį į naršyklę ir kelis įspėjamuosius duomenis į mažą IoT įrenginį.

    Antraštėse galima nurodyti kableliais atskirtą parinkčių sąrašą, o ne vieną reikšmę, kad būtų parodyta, kad vienu metu palaikomos kelios skirtingos reikšmės. Šios vertės gali turėti prioriteto tvarką, kuri išreiškiama pagal kiekvienos iš jų kokybės koeficientą q. Kokybės koeficientai yra atskirti kabliataškiu (;), o žvaigždutės (*) taip pat gali būti naudojamos bet kuriam tipui ar potipiui nurodyti.

    Accept: text/plain,text/xml,application/json;q=0.8,text/*;q=0.9,application/json

    Ankstesniame pavyzdyje formato prioritetas JSON didžiausias (0.9) yra paprasto teksto ir suformatuoto teksto. XML, kurie atitinka specifikacijas text/*, yra mažesnis (0.8) ir lygus tarp jų. Jei įmanoma, serveris turėtų reaguoti užkoduodamas atsakymą kaip JSON.

    Toliau pateiktame išsamesnės POST užklausos pavyzdyje serverio, pavadinto polaridad.es, /iot/grabar_temperatura puslapis pasiekiamas naudojant HTTP protokolo 1.1 versiją. Klientas, vadinamas Sensoreitor-2000, siunčia užkoduotus duomenis JSON, laukite atsakymo kaip paprasto teksto formatu UTF-8 naudojant ispanų kalbą iš Ispanijos nenaudojant suspaudimo, ko, beje, nebūtina nurodyti. Į serverį siunčiami duomenys užima 65 baitus. Siunčiant atsakymą ryšys tarp kliento ir serverio bus uždarytas.

    Šiame straipsnyje paaiškinama kaip sukonfigūruoti MySQL duomenų bazę, kad būtų saugoma IoT objektų siunčiama informacija

    Rašyti komentarą

    Galbūt praleidote