Simpan data di server web IoT menggunakan permintaan HTTP POST

Simpan data di server web IoT menggunakan permintaan HTTP POST

Simpan data di server web IoT menggunakan permintaan HTTP POST

Server web IoTServer Web HTTP POST IoTBasis Data MySQL. Server web IoTServer Web IoT Bahasa PHP

Seperti yang dijelaskan di artikel pertama seri ini menyimpan data yang diperoleh perangkat Internet of Things, meskipun data yang disimpan berakhir di server MySQL o MariaDB dan bahasa digunakan PHP untuk memanipulasinya pada input dan output, aliran informasi antara peralatan elektronik dan database terjadi dengan menggunakan a web servidor dengan siapa Anda berkomunikasi menurut protokol HTTP.

Di awal definisi protokol HTTP Ada kegunaan yang sebanding dengan yang dijelaskan tetapi faktanya adalah bahwa pada akhirnya hal itu belum sepenuhnya dieksploitasi karena berbagai alasan, sebagian karena keamanan dan sebagian karena kemajuan tidak pernah dicapai dalam mendefinisikan protokol yang lebih spesifik atau lebih efisien, sehingga saat ini, khususnya di server publik, hal yang paling umum adalah menggunakan koneksi HTTP apa yang membuat a permintaan POSTING ke server untuk menyimpan informasi atau a DAPATKAN untuk memulihkannya, biasanya untuk menampilkan halaman web yang menyajikannya dan bahkan tempat Anda dapat berinteraksi.

Teks paling dasar dikirim ke server dalam permintaan HTTP POST menyertakan baris dengan jenis permintaan (POST) jalur ke halaman web yang akan menyimpan informasi dan versinya protokol HTTP; baris lain dengan nama host (yang memungkinkan server virtual berada di server yang sama dan/atau pada alamat IP yang sama) dan terakhir baris lain yang berisi data yang dicatat, dipisahkan satu sama lain dengan tanda & dan dari baris sebelumnya dengan satu kosong.

Dalam contoh di atas, server bernama polaridad.es akan berisi halaman di /iot/grabar_temperatura untuk mengelola informasi menggunakan versi 1.1 dari protokol HTTP

Terlihat digunakan tanda dua & yang menunjukkan bahwa tiga field disimpan. Nama bidang berada di sebelah kiri tanda sama dengan dan hanya dua huruf yang digunakan untuk mendefinisikannya. Sebagai nama bidang (atau variabel, jika Anda mau) permintaan HTTP Mereka tidak terkait dengan yang ada di database, tidak terlalu penting untuk menggunakan teks deskriptif dan nama pendek biasanya dipilih (bidang bernomor genap) untuk menyimpan teks dalam komunikasi dengan server dan mempercepat proses pengiriman data.

Data yang biasanya dikirim perangkat IoT ke server adalah tipe numerik, terutama bilangan bulat dan desimal sederhana. Ketika nilai dikirim dalam format teks, seperti halnya dengan variabel "ne" dalam contoh, keadaan buruk mungkin muncul yang dapat diselesaikan, tergantung pada kasusnya, dengan lebih atau kurang berhasil dan mudah. Pada kesempatan ini, tanda plus (+) digunakan untuk memisahkan kata, menggantikan spasi yang dapat mengubah kata tersebut permintaan POSTING. Cara umum mengirimkan data yang menyelesaikan sebagian besar kasus adalah dengan menunjukkan kode heksadesimal karakter, didahului dengan tanda persentase (%) Logikanya, tidak disarankan untuk menggunakan sumber daya ini kecuali jika apa yang dikodekan bermasalah karena Panjangnya berapa yang dikirim meningkat, yang umumnya membutuhkan sumber daya lebih banyak, meskipun ukurannya tentu sangat kecil.

Meskipun dimungkinkan untuk mengoperasikan a web servidor Untuk Internet of Things hanya dengan informasi dari contoh sebelumnya, banyak server, terutama yang publik, menambahkan data lain ke query POST (sayangnya tidak selalu terbatas pada protokol).Contoh di bawah ini sesuai dengan permintaan posting yang diminta oleh sumur -server yang dikenal publik untuk internet of things Bicaralah.

Selain beberapa data pribadi, seperti X-THINGSPEAKAPIKEY (dan yang sesuai dengan pengidentifikasi masing-masing klien) pada contoh sebelumnya Anda dapat melihat bahwa ada header lain yang menambahkan lebih banyak informasi ke permintaan.

Cara menggunakan header di a permintaan POSTING Ini hanya terdiri dari penulisan namanya, tanda titik dua (:), spasi kosong dan nilai yang ingin Anda tetapkan.

Untuk menguji permintaan POST ke server web sebelum menyelesaikan konfigurasi komponen lainnya, koneksi ke server dapat dibuat dan data dikirim secara manual. Misalnya di komputer Linux saja sudah cukup untuk digunakan telnet polaridad.es 80 di mana polaridad.es adalah nama server dan 80 adalah nomor port yang direspon oleh layanan. HTTP.

Hubungkan ke server web polaridad.es menggunakan telnet untuk menyimpan data IoT

Alat lintas platform dapat digunakan di Linux, Windows atau OS Putty, yang dibicarakan dalam artikel tersebut mengontrol perangkat serial UART dari komputer, untuk membuat koneksi tanpa menggunakan konsol.

Hubungkan ke server web polaridad.es menggunakan PuTTY untuk menyimpan data IoT

Selanjutnya Daftar header HTTP Ada sebagian besar yang dapat berguna untuk a permintaan POSTING ke a web servidor untuk Internet hal.

  • Accept Ini digunakan untuk menunjukkan jenisnya PANTOMIM bahwa permintaan tersebut mengharapkan server untuk digunakan dalam respons. Hal ini dinyatakan sebagai tipo/subtipo yang dapat digeneralisasikan dengan menggunakan tanda bintang (*) sebagai tanda wildcard, misalnya sebagai */* untuk merujuk pada salah satu atau tipo/* untuk merujuk ke semua subtipe tipo

    Yang paling umum digunakan adalah:

    • text/plain Meskipun ini yang paling mendasar, ini juga yang paling banyak digunakan. Ia mengharapkan server mengembalikan respon teks sederhana (biasa) yang cukup untuk memberitahukan bahwa transaksi telah benar dan paling banyak menambahkan informasi tambahan seperti nomor urut dari data yang direkam, hasil perbandingan, tanggal transaksi. pelayan…

    • application/xml o text/xml Tunggu hingga server merespons permintaan dalam format XML. Arti memilih text di tempat application memungkinkan pembacaan “manusia” (versus “otomatis”) yang lebih mudah. Dualitas ini akan muncul dengan sendirinya pada orang lain Jenis MIME tetapi tren standar di masa depan adalah lebih memilih application di depan text Format XML memungkinkan respons yang berisi banyak data untuk disusun dengan cara yang sangat solid, kelemahannya adalah ia menambahkan banyak kecerdasan pada data bersih, yang membuat respons memakan waktu lebih dari yang diperlukan, oleh karena itu memerlukan lebih banyak bandwidth dan mungkin lebih banyak memori di perangkat IoT untuk memprosesnya.

    • text/html Digunakan ketika respon server adalah HTML dikodekan sebagai teks biasa (teks biasa) biasanya memformat respons. Karena ini tentang menyimpan data dan responsnya akan menjangkau perangkat kecil tanpa banyak sumber daya, jenis ini tidak umum digunakan.

    • application/xhtml+xml Pada dasarnya ini adalah versinya XHTML (HTML sebagai XML valid) dari informasi di bagian sebelumnya.

    • application/json Ini paling banyak digunakan ketika respons server berisi beberapa data termasuk struktur yang lebih atau kurang kompleks. Format JSON berbagi dengan format XML struktur yang kokoh dan menambahkan keuntungan karena lebih ringkas dalam teks yang ditambahkan struktur.

  • Accept-Charset Menentukan pengkodean teks yang diminta untuk digunakan dalam respons. Untuk mengkodekan karakter Latin, itu UTF-8, terlengkap, ISO-8859 15, yang mencakup tanda Euro (€) dan ISO-8859 1, yang merupakan yang paling mendasar.

  • Accept-Encoding Menunjukkan format yang sesuai dengan respons server yang dapat dikodekan. Pada dasarnya ini berfungsi untuk menunjukkan jenis kompresi. Beberapa yang paling sering terjadi adalah gzip deflate (yang dapat ditentukan lebih detail dengan deflate-raw o deflate-http) Tidak umum menggunakannya pada perangkat kecil yang terhubung ke Internet of Things karena memerlukan konsumsi sumber daya tertentu (memori dan waktu pemrosesan) yang biasanya langka pada peralatan jenis ini. Tidak perlu menunjukkan bahwa kompresi tidak digunakan Accept-Encoding: identity karena keadaan seperti itu dianggap secara default.

  • Accept-Language Mengekspresikan bahasa yang dapat digunakan dalam jawabannya. Misalnya, bahasa Spanyol dari Spanyol akan ditetapkan sebagai es-ES atau bahasa Inggris Amerika Serikat sebagai en-US

  • Connection Ini digunakan untuk menentukan apa yang harus dilakukan dengan koneksi yang telah dibuat antara klien (perangkat IoT) dan web servidor setelah data diterima. Biasanya digunakan dengan nilai close dalam format Connection: close untuk menunjukkan bahwa koneksi harus ditutup setelah merespons klien.

  • Content-Length Ini memungkinkan Anda untuk menunjukkan jumlah byte yang ditempati oleh bagian permintaan yang berisi data, yaitu byte setelah header dan dipisahkan oleh baris kosong. Ini sangat berguna karena berfungsi untuk memverifikasi integritas informasi yang dikirimkan; Apabila tidak mengukur apa yang dinyatakan, maka tidak disimpan karena dianggap belum sampai dengan benar. Biasanya diperlukan oleh sebagian besar server IoT publik.

  • Content-Type Ini berfungsi untuk menunjukkan Jenis MIME dengan mana informasi yang dikirim ke server dikodekan. Tipe-tipe tersebut biasanya digunakan text/html ketika data yang dikirim ke server dinyatakan sebagai daftar nilai sederhana (seperti a=3.6&b=4.8) Dan application/jsonrequest (yang setara dengan tipe application/json yang dibicarakan di Accept) ketika struktur yang lebih kompleks diperlukan, namun salah satu dari berikut ini dapat dikirimkan daftar tipe MIME.

  • Cookie Ini digunakan untuk menambahkan pengidentifikasi sesi yang dapat digunakan untuk memelihara rantai transfer (kueri, respons, kueri...) yang lebih kompleks daripada satu permintaan untuk mengirim data terkait tertentu tetapi diperoleh pada waktu yang berbeda.

  • Daftar Isi
    • Referer URL asal permintaan POST, misalnya halaman web asal permintaan POST. Dalam hal digunakan untuk IoT tidak menambah informasi yang relevan karena informasi dikirim langsung, tanpa halaman sebelumnya, sehingga tidak sering digunakan.

    • User-Agent Melaporkan perangkat yang membuat permintaan. Dalam lalu lintas web normal, browser yang digunakan di Internet of Things memungkinkan server menunjukkan jenis perangkat elektronik yang membuat permintaan. Mengidentifikasi dirinya sendiri ke server memungkinkan respons diformat secara berbeda dalam setiap kasus, misalnya, mengembalikan halaman web yang kompleks ke browser dan beberapa data peringatan ke perangkat IoT kecil.

    Dimungkinkan untuk menentukan daftar opsi yang dipisahkan koma alih-alih satu nilai di header untuk menunjukkan bahwa beberapa nilai berbeda didukung secara bersamaan. Nilai-nilai ini dapat memiliki urutan prioritas yang dinyatakan menurut koefisien kualitas q untuk masing-masing nilai. Koefisien kualitas dipisahkan dengan titik koma (;) dan tanda bintang (*) juga dapat digunakan untuk merujuk pada tipe atau subtipe apa pun.

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

    Pada contoh sebelumnya prioritas format JSON yang terbesar (0.9) adalah teks biasa dan teks berformat. XML, yang memenuhi spesifikasi text/*, lebih kecil (0.8) dan sama di antara keduanya. Jika memungkinkan, server harus bereaksi dengan menyandikan respons sebagai JSON.

    Dalam contoh permintaan POST yang lebih lengkap berikut ini, halaman /iot/grabar_temperatura dari server bernama polaridad.es diakses menggunakan protokol HTTP versi 1.1. Klien, yang disebut Sensoreitor-2000, mengirimkan data yang disandikan JSON, mengharapkan respons sebagai format teks biasa UTF-8 menggunakan bahasa Spanyol dari Spanyol tanpa menggunakan kompresi, yang tidak perlu disebutkan. Data yang dikirim ke server memakan waktu 65 byte. Saat mengirimkan respon, koneksi antara klien dan server akan ditutup.

    Artikel berikut menjelaskan cara mengkonfigurasi database MySQL untuk menyimpan informasi yang dikirim oleh objek IoT

    Anda mungkin melewatkannya