Ukladajte údaje na webovom serveri IoT pomocou požiadaviek HTTP POST

Ukladajte údaje na webovom serveri IoT pomocou požiadaviek HTTP POST

Ukladajte údaje na webovom serveri IoT pomocou požiadaviek HTTP POST

IoT webový serverHTTP POST IoT webový serverDatabáza MySQL. IoT webový serverWebový server IoT v jazyku PHP

Ako je vysvetlené v prvom článku série uchovávať údaje získané zariadeniami internetu vecí, aj keď uložené údaje skončia na serveri MySQL o mariadb a používa sa jazyk PHP na manipuláciu s nimi na vstupe a výstupe sa tok informácií medzi elektronickým zariadením a databázou uskutočňuje pomocou a webový server s kým komunikujete podľa HTTP protokol.

Na začiatku definície HTTP protokol Existovali použitia porovnateľné s tým, ktoré je opísané, ale faktom je, že nakoniec nebol plne využitý z rôznych dôvodov, čiastočne bezpečnosti a čiastočne preto, že sa nikdy nedosiahol pokrok v definovaní špecifickejšieho alebo efektívnejšieho protokolu, takže v súčasnosti najmä na verejných serveroch je najbežnejšie použitie pripojenia HTTP čo robí a POST žiadosť na server na uloženie informácií alebo a GET na jeho obnovenie, zvyčajne na zobrazenie webovej stránky, ktorá ho prezentuje a dokonca na ktorej môžete interagovať.

Najzákladnejší text odoslaný na server v požiadavke HTTP POST obsahuje riadok s typom požiadavky (POST) cesta k webovej stránke, na ktorej budú uložené informácie a verzia HTTP protokol; ďalší riadok s názvom hostiteľa (ktorý umožňuje virtuálne servery na rovnakom serveri a/alebo na rovnakej IP adrese) a nakoniec ďalší, ktorý obsahuje zaznamenané údaje, navzájom oddelené znakom & a od predchádzajúcich riadkov jedným prázdna.

Vo vyššie uvedenom príklade by server s názvom polaridad.es obsahoval stránku v /iot/grabar_temperatura na správu informácií pomocou verzie 1.1 HTTP protokol

Je vidieť, že sa používajú dva znaky &, čo ukazuje, že sú uložené tri polia. Názov polí je naľavo od znamienka rovnosti a na ich definovanie boli použité iba dve písmená. Ako názov polí (alebo premenných, ak chcete) požiadavky HTTP Nesúvisia s tými v databáze, nie je zvlášť dôležité používať popisné texty a zvyčajne sa volia krátke názvy (párne očíslované polia), aby sa ušetril text v komunikácii so serverom a urýchlil proces odosielania dát.

Údaje, ktoré IoT zariadenie bežne odosiela na server, sú číselného typu, najmä celé čísla a jednoduché desatinné miesta. Keď sa hodnoty odosielajú v textovom formáte, ako je to v prípade premennej „ne“ v príklade, môžu nastať nepriaznivé okolnosti, ktoré je možné v závislosti od prípadu vyriešiť s väčším alebo menším úspechom a ľahkosťou. Pri tejto príležitosti sa na oddelenie slov používajú znamienka plus (+), ktoré nahradia medzery, ktoré by inak zmenili znak POST žiadosť. Všeobecným spôsobom odosielania údajov, ktorý rieši väčšinu prípadov, je uvedenie hexadecimálneho kódu znakov, ktorému predchádza znak percenta (%) Logicky sa neodporúča používať tento zdroj okrem prípadov, keď je zakódované problematické, pretože dĺžka toho, čo sa zvyšuje, čo vo všeobecnosti vyžaduje viac zdrojov, aj keď je určite veľmi malé.

Aj keď je možné prevádzkovať a webový server Pre internet vecí len s informáciami z predchádzajúceho príkladu, mnohé servery, najmä verejné, pridávajú do POST dotazu ďalšie údaje (bohužiaľ nie vždy obmedzené na protokol). -známy server.verejný pre internet vecí ThingSpeak.

Okrem niektorých osobných údajov, ako napr X-THINGSPEAKAPIKEY (a ktorá zodpovedá identifikátoru každého klienta) v predchádzajúcom príklade môžete vidieť, že existujú ďalšie hlavičky, ktoré k požiadavke pridávajú ďalšie informácie.

Ako používať hlavičku v a POST žiadosť Jednoducho pozostáva z napísania jeho názvu, dvojbodky (:), prázdneho miesta a hodnoty, ktorú mu chcete priradiť.

Aby bolo možné otestovať požiadavky POST na webový server pred dokončením konfigurácie ostatných komponentov, je možné vytvoriť spojenie so serverom a manuálne odoslať údaje. Napríklad na linuxovom počítači by to stačilo použiť telnet polaridad.es 80 kde polaridad.es je názov servera a 80 je číslo portu, na ktorom služba odpovedá. HTTP.

Pripojte sa k webovému serveru polaridad.es pomocou telnetu na ukladanie údajov IoT

Tento multiplatformový nástroj je možné použiť v systéme Linux, Windows alebo OS PuTTY, o ktorom sa hovorilo v článku ovládať sériové zariadenia UART z počítača, aby ste sa pripojili bez použitia konzoly.

Pripojte sa k webovému serveru polaridad.es pomocou PuTTY na ukladanie údajov internetu vecí

V ďalšom Zoznam hlavičiek HTTP Existuje väčšina tých, ktoré môžu byť užitočné pre a POST žiadosť má a webový server pre internet vecí.

  • Accept Používa sa na označenie typu Mim že požiadavka očakáva, že server použije v odpovedi. Vyjadruje sa ako tipo/subtipo ktorý možno zovšeobecniť pomocou hviezdičky (*) ako zástupného znaku, napríklad ako */* odvolávať sa na akékoľvek resp tipo/* odkazovať na všetky podtypy tipo

    Najčastejšie používané sú:

    • text/plain Hoci je najzákladnejšia, je aj najpoužívanejšia. Očakáva, že server vráti jednoduchú (obyčajnú) textovú odpoveď, ktorá postačuje na oznámenie, že transakcia bola správna, a nanajvýš pridá doplnkové informácie, ako je číslo objednávky zaznamenaných údajov, výsledok porovnania, dátum server…

    • application/xml o text/xml Počkajte, kým server odpovie na požiadavku vo formáte XML. Význam výberu text namiesto application umožňuje jednoduchšie „ľudské“ (na rozdiel od „automatického“) čítanie. Táto dualita sa prejaví v iných Typy MIME ale budúci trend normy je preferovať application pred text Formát XML umožňuje veľmi solídnu štruktúru odpovede, ktorá obsahuje veľa údajov, nevýhodou je, že pridáva k sieťovým údajom veľa umelosti, vďaka čomu odpoveď zaberá viac, než je potrebné, a preto si vyžaduje väčšiu šírku pásma a pravdepodobne aj viac pamäte v zariadení IoT na jeho spracovanie.

    • text/html Používa sa, keď je odpoveď servera HTML zakódovaný ako obyčajný text (obyčajný text), ktorý zvyčajne formátuje odpoveď. Keďže ide o ukladanie dát a odozva by sa bez veľkého množstva prostriedkov dostala aj na malé zariadenie, nie je bežné používať tento typ.

    • application/xhtml+xml V podstate ide o verziu XHTML (HTML ako XML platné) informácií v predchádzajúcej časti.

    • application/json Najčastejšie sa používa, keď odpoveď servera obsahuje niekoľko údajov vrátane viac či menej komplexnej štruktúry. Formát JSON zdieľať s formátom XML pevnú štruktúru a pridáva výhodu stručnejšieho textu pridaného štruktúrou.

  • Accept-Charset Určuje kódovanie textu, ktoré sa má použiť v odpovedi. Ak chcete zakódovať znaky latinky, UTF-8, najkompletnejšie, ISO-8859 15, ktorá obsahuje znak Euro (€) a znak ISO-8859 1, ktorá je najzákladnejšia.

  • Accept-Encoding Označuje formát, podľa ktorého môže byť zakódovaná odpoveď servera. V podstate slúži na označenie typu kompresie. Niektoré z najčastejších sú gzip deflate (ktoré možno podrobnejšie špecifikovať pomocou deflate-raw o deflate-http) Nie je bežné používať ho v malých zariadeniach pripojených k internetu vecí, pretože si vyžaduje určitú spotrebu zdrojov (pamäť a čas spracovania), ktoré sú v týchto typoch zariadení zvyčajne obmedzené. Nie je potrebné uvádzať, že kompresia sa nepoužíva s Accept-Encoding: identity keďže takáto okolnosť sa posudzuje štandardne.

  • Accept-Language Vyjadruje jazyk, ktorý možno použiť v odpovedi. Napríklad španielčina Španielska by bola špecifikovaná ako es-ES alebo angličtina Spojených štátov amerických ako en-US

  • Connection Používa sa na určenie toho, čo sa má urobiť s pripojením, ktoré bolo vytvorené medzi klientom (zariadením internetu vecí) a webový server po prijatí údajov. Zvyčajne sa používa s hodnotou close vo formáte Connection: close na označenie, že po odpovedi klientovi by sa spojenie malo ukončiť.

  • Content-Length Umožňuje vám uviesť počet bajtov, ktoré zaberá časť požiadavky, ktorá obsahuje údaje, teda tá za hlavičkami a oddelená prázdnym riadkom. Je to veľmi užitočné, pretože slúži na overenie integrity odosielaných informácií; Ak nemeria to, čo bolo deklarované, neuloží sa, pretože sa má za to, že neprišlo správne. Zvyčajne to vyžaduje väčšina verejných serverov IoT.

  • Content-Type Slúži na označenie Typ MIME pomocou ktorého sú zakódované informácie odosielané na server. Typy sa zvyčajne používajú text/html keď sú údaje odoslané na server vyjadrené ako jednoduchý zoznam hodnôt (niečo ako a=3.6&b=4.8) A application/jsonrequest (čo by bolo ekvivalentom typu application/json o ktorom sa hovorí v Accept), keď je potrebná zložitejšia štruktúra, ale je možné odoslať ktorúkoľvek z nasledujúcich možností zoznam typov MIME.

  • Cookie Používa sa na pridanie identifikátora relácie, pomocou ktorého sa udržiava reťaz prenosov (dopyt, odpoveď, dotaz...), ktorý je zložitejší ako jedna požiadavka, pomocou ktorej sa odosielajú určité súvisiace údaje, ale získava sa v rôznych časoch.

  • Obsah
    • Referer Adresa URL, z ktorej pochádza požiadavka POST, napríklad webová stránka, z ktorej bola odoslaná. V prípade použitia pre IoT nepridáva relevantné informácie, pretože informácie sa odosielajú priamo, bez predchádzajúcej stránky, takže nie sú často používané.

    • User-Agent Hlási zariadenie, ktoré zadáva požiadavku. Pri bežnom webovom prenose prehliadač používaný v Internete vecí umožňuje serveru uviesť typ elektronického zariadenia, ktoré požaduje. Identifikácia na serveri umožňuje, aby bola odpoveď v každom prípade naformátovaná inak, napríklad vrátenie zložitej webovej stránky do prehliadača a niekoľko varovných údajov do malého zariadenia internetu vecí.

    Namiesto jednej hodnoty v hlavičkách je možné zadať zoznam možností oddelených čiarkami, čím sa označí, že je súčasne podporovaných niekoľko rôznych hodnôt. Tieto hodnoty môžu mať poradie priority, ktoré je vyjadrené podľa koeficientu kvality q pre každú z nich. Koeficienty kvality sú oddelené bodkočiarkou (;) a na označenie akéhokoľvek typu alebo podtypu možno použiť aj hviezdičky (*).

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

    V predchádzajúcom príklade priorita formátu JSON najväčší (0.9) je obyčajný text a formátovaný text. XML, ktoré spĺňajú špecifikáciu text/*, je menšia (0.8) a je medzi nimi rovnaká. Ak je to možné, server by mal reagovať zakódovaním odpovede ako JSON.

    V nasledujúcom príklade úplnejšej požiadavky POST sa na stránku /iot/grabar_temperatura servera s názvom polaridad.es pristupuje pomocou verzie 1.1 protokolu HTTP. Klient s názvom Sensoreitor-2000 posiela zakódované údaje JSON, odpoveď očakávajte ako obyčajný text vo formáte UTF-8 pomocou španielčiny zo Španielska bez použitia kompresie, ktorú mimochodom nie je potrebné uvádzať. Údaje odoslané na server zaberajú 65 bajtov. Pri odoslaní odpovede sa spojenie medzi klientom a serverom uzavrie.

    Nasledujúci článok vysvetľuje ako nakonfigurovať databázu MySQL na ukladanie informácií odosielaných objektmi internetu vecí

    Pridať komentár

    Možno ste zmeškali