HTTP POST isteklerini kullanarak verileri bir IoT web sunucusunda depolayın

HTTP POST isteklerini kullanarak verileri bir IoT web sunucusunda depolayın

HTTP POST isteklerini kullanarak verileri bir IoT web sunucusunda depolayın

IoT web sunucusuHTTP POST IoT Web SunucusuMySQL Veritabanı. IoT web sunucusuPHP Dili IoT Web Sunucusu

Serinin ilk makalesinde açıklandığı gibi Nesnelerin İnterneti cihazları tarafından elde edilen verileri depolamak, kaydedilen veriler bir sunucuda bulunsa da MySQL o MariaDB ve dil kullanılır PHP Bunları giriş ve çıkışta manipüle etmek için, elektronik ekipman ile veri tabanı arasındaki bilgi akışı, bir web sunucusu göre kiminle iletişim kurduğunuz HTTP protokolü.

Tanımın başında HTTP protokolü Açıklananlara benzer kullanımlar vardı, ancak gerçek şu ki, kısmen güvenlik ve kısmen de daha spesifik veya daha etkili bir protokolün tanımlanmasında hiçbir zaman ilerleme kaydedilmemesi nedeniyle, sonuçta çeşitli nedenlerle tam olarak yararlanılamamıştır. halka açık sunucularda en yaygın şey bir bağlantı kullanmaktır HTTP ne yapar POST isteği bilgileri depolamak için sunucuya veya GET onu kurtarmak için, normalde onu sunan ve hatta etkileşimde bulunabileceğiniz bir web sayfasını görüntülemek için.

Bir istekte sunucuya gönderilen en temel metin HTTP POST istek türünü içeren bir satır içerir (POST) bilgileri ve sürümünü saklayacak web sayfasının yolu HTTP protokolü; ana bilgisayar adının bulunduğu başka bir satır (aynı sunucuda ve/veya aynı IP adresindeki sanal sunuculara izin verir) ve son olarak birbirinden & işaretiyle ve önceki satırlardan birer birer ayrılmış, kaydedilen verileri içeren başka bir satır boşluk.

Yukarıdaki örnekte, polaridad.es adlı bir sunucu, /iot/grabar_temperatura'nın 1.1 sürümünü kullanarak bilgileri yönetmek için bir sayfa içerecektir. HTTP protokolü

Üç alanın saklandığını gösteren iki & işaretinin kullanıldığı görülmektedir. Alanların adı eşittir işaretinin solundadır ve bunları tanımlamak için yalnızca iki harf kullanılmıştır. İsteğin alanlarının (veya isterseniz değişkenlerin) adı olarak HTTP Veritabanındakilerle ilişkili değildir, açıklayıcı metinlerin kullanılması özellikle önemli değildir ve sunucuyla iletişim halindeki metni kaydetmek ve veri gönderme sürecini hızlandırmak için genellikle kısa adlar seçilir (çift numaralı alanlar).

Bir IoT cihazının normalde sunucuya gönderdiği veriler, esas olarak tam sayılar ve basit ondalık sayılar olmak üzere sayısal türdedir. Örnekte "ne" değişkeninde olduğu gibi değerler metin formatında gönderildiğinde, duruma göre az ya da çok başarı ve kolaylıkla çözülebilecek olumsuz durumlar ortaya çıkabilir. Bu durumda, sözcükleri ayırmak için artı işaretleri (+) kullanılır ve aksi takdirde sözcük biçimini değiştirecek boşluklar değiştirilir. POST isteği. Çoğu durumu çözen veri göndermenin genel bir yolu, karakterlerin onaltılık kodunun önünde yüzde işareti (%) koyarak belirtmektir. Mantıksal olarak, kodlananın sorunlu olduğu durumlar dışında bu kaynağın kullanılması tavsiye edilmez. boyutu kesinlikle çok küçük olmasına rağmen, genellikle daha fazla kaynak gerektiren, gönderilen miktarın artmasıdır.

Çalıştırmak mümkün olmasına rağmen web sunucusu Nesnelerin İnterneti için yalnızca önceki örnekteki bilgilerle birçok sunucu, özellikle halka açık olanlar, POST sorgusuna başka veriler ekler (maalesef her zaman protokolle sınırlı değildir).Aşağıdaki örnek, kuyunun talep ettiği gönderi isteğine karşılık gelir. -bilinen sunucu. nesnelerin interneti için herkese açık Şey Konuşması.

gibi bazı kişisel verilere ek olarak X-THINGSPEAKAPIKEY (ve her istemcinin tanımlayıcısına karşılık gelir) önceki örnekte, isteğe daha fazla bilgi ekleyen başka başlıkların olduğunu görebilirsiniz.

Bir başlıkta başlık nasıl kullanılır? POST isteği Basitçe adını, iki nokta üst üste işaretini (:), bir boşluk ve atamak istediğiniz değeri yazmaktan oluşur.

Diğer bileşenlerin konfigürasyonunu tamamlamadan önce web sunucusuna gelen POST isteklerini test etmek için sunucuyla bağlantı kurulabilir ve veriler manuel olarak gönderilebilir. Örneğin, bir Linux bilgisayarda şunu kullanmak yeterli olacaktır: telnet polaridad.es 80 burada polaridad.es, sunucunun adıdır ve 80, hizmetin yanıt verdiği bağlantı noktası numarasıdır. HTTP.

IoT verilerini depolamak için telnet kullanarak polaridad.es web sunucusuna bağlanın

Çapraz platform aracı Linux, Windows veya işletim sistemi üzerinde kullanılabilir PuTTYmakalede bahsedilen UART seri cihazlarını bilgisayardan kontrol etmeBağlantıyı konsolu kullanmadan yapmak için.

IoT verilerini depolamak için PuTTY kullanarak polaridad.es web sunucusuna bağlanın

Gelecek HTTP üstbilgileri listesi Bir kişi için yararlı olabileceklerin çoğu var POST isteği bir web sunucusu nesnelerin interneti için.

  • Accept Tür belirtmek için kullanılır MIME isteğin sunucunun yanıtta kullanmasını beklediği. Şu şekilde ifade edilir tipo/subtipo yıldız işareti (*) joker karakter olarak kullanılarak genelleştirilebilir, örneğin */* herhangi birine atıfta bulunmak veya tipo/* tüm alt türlere atıfta bulunmak için tipo

    En sık kullanılanlar şunlardır:

    • text/plain En temel olmasına rağmen aynı zamanda en çok kullanılanıdır. Sunucunun, işlemin doğru olduğunu bildirmeye ve en fazla kaydedilen verilerin sipariş numarası, karşılaştırma sonucu, işlemin tarihi gibi ek bilgileri eklemeye yetecek basit (düz) bir metin yanıtı döndürmesini bekler. sunucu…

    • application/xml o text/xml Sunucunun isteğe formatta yanıt vermesini bekleyin XML. Seçmenin anlamı text yerine application "insan" ("otomatik" yerine) okumayı kolaylaştırır. Bu ikilik kendini başkalarında da gösterecek MIME türleri ancak standardın gelecekteki eğilimi tercih etmektir application karşı text Formatı XML Çok fazla veri içeren bir yanıtın çok sağlam bir şekilde yapılandırılmasına izin verir; dezavantajı, net verilere çok fazla yapaylık katmasıdır, bu da yanıtın gereğinden fazla yer almasına neden olur, dolayısıyla daha fazla bant genişliği ve muhtemelen daha fazla bant genişliği gerektirir. Bunu işlemek için IoT cihazındaki hafıza.

    • text/html Sunucu yanıtı olduğunda kullanılır HTML genellikle bir yanıtı biçimlendiren düz metin (düz metin) olarak kodlanır. Verilerin depolanmasıyla ilgili olduğundan ve yanıt çok fazla kaynağa ihtiyaç duymadan küçük bir cihaza ulaşacağından bu türün kullanılması yaygın değildir.

    • application/xhtml+xml Temel olarak bu sürüm XHTML (HTML olarak XML önceki bölümdeki bilgilerin geçerli olduğu anlamına gelir.

    • application/json En çok, sunucu yanıtının az çok karmaşık bir yapı içeren çeşitli veriler içerdiği durumlarda kullanılır. Biçim JSON formatla paylaş XML sağlam bir yapı ve yapının eklediği metinlerin daha kısa olması avantajını katıyor.

  • Accept-Charset Yanıtta kullanılması istenen metin kodlamasını belirler. Latin karakterlerini kodlamak için UTF-8, en eksiksiz, ISO-8859 15Euro işaretini (€) ve ISO-8859 1, en temel olanıdır.

  • Accept-Encoding Sunucu yanıtının kodlanabileceği biçimi belirtir. Temel olarak bir sıkıştırma türünü belirtmeye yarar. En sık görülenlerden bazıları şunlardır: gzip deflate (bu daha ayrıntılı olarak belirtilebilir) deflate-raw o deflate-http) Nesnelerin İnterneti'ne bağlı küçük cihazlarda kullanılması, bu tür ekipmanlarda genellikle kıt olan belirli bir kaynak tüketimi (bellek ve işlem süresi) gerektirdiğinden yaygın değildir. Sıkıştırmanın kullanılmadığını belirtmeye gerek yoktur. Accept-Encoding: identity çünkü böyle bir durum varsayılan olarak kabul edilir.

  • Accept-Language Cevapta kullanılabilecek dili ifade eder. Örneğin, İspanya İspanyolcası şu şekilde belirtilecektir: es-ES veya Amerika Birleşik Devletleri'nin İngilizcesi en-US

  • Connection Client (IoT cihazı) ile istemci arasında kurulan bağlantı ile ne yapılması gerektiğini belirtmek için kullanılır. web sunucusu veri alındıktan sonra. Genellikle değerle birlikte kullanılır close biçiminde Connection: close istemciye yanıt verdikten sonra bağlantının kapatılması gerektiğini belirtmek için.

  • Content-Length İsteğin verileri içeren, başlıklardan sonraki ve boş bir satırla ayrılmış kısmının kapladığı bayt sayısını belirtmenize olanak tanır. Gönderilen bilginin bütünlüğünü doğrulamaya yaradığı için çok kullanışlıdır; Beyan edileni ölçmüyorsa doğru ulaşmadığı düşünüldüğünden saklanmaz. Genellikle çoğu genel IoT sunucusu için gereklidir.

  • Content-Type Şunu belirtmeye yarar: MIME türü Sunucuya gönderilen bilgilerin kodlandığı. Türler genellikle kullanılır text/html sunucuya gönderilen veriler basit bir değer listesi olarak ifade edildiğinde (gibi bir şey) a=3.6&b=4.8) Y application/jsonrequest (bu türün eşdeğeri olacaktır) application/json içinde konuşulan Accept) daha karmaşık bir yapıya ihtiyaç duyulduğunda ancak aşağıdakilerden herhangi biri gönderilebilir MIME türlerinin listesi.

  • Cookie Belirli ilgili verileri göndermek için kullanılan ancak farklı zamanlarda elde edilen tek bir istekten daha karmaşık olan bir aktarım zincirini (sorgu, yanıt, sorgu...) sürdürmek için bir oturum tanımlayıcısı eklemek için kullanılır.

  • İçindekiler
    • Referer POST isteğinin kaynağı olan URL (örneğin, isteğin gönderildiği web sayfası). IoT için kullanılması durumunda, bilgiler bir önceki sayfa olmadan doğrudan gönderildiği için ilgili bilgileri eklemez, dolayısıyla sıklıkla kullanılmaz.

    • User-Agent Talepte bulunan cihazı raporlar. Normal web trafiğinde Nesnelerin İnterneti'nde kullanılan tarayıcı, sunucunun istekte bulunan elektronik cihazın türünü belirtmesine olanak tanır. Kendini sunucuya tanımlamak, yanıtın her durumda farklı şekilde biçimlendirilmesine olanak tanır; örneğin, karmaşık bir web sayfasının bir tarayıcıya ve birkaç uyarı verisinin küçük bir IoT cihazına döndürülmesi gibi.

    Birkaç farklı değerin aynı anda desteklendiğini belirtmek için başlıklarda tek bir değer yerine virgülle ayrılmış seçenekler listesi belirtmek mümkündür. Bu değerler, her biri için bir kalite katsayısı q'ya göre ifade edilen bir öncelik sırasına sahip olabilir. Kalite katsayıları noktalı virgülle (;) ayrılır ve yıldız işaretleri (*) herhangi bir tür veya alt türe atıfta bulunmak için de kullanılabilir.

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

    Önceki örnekte formatın önceliği JSON en büyüğü (0.9) düz metin ve biçimlendirilmiş metindir. XMLspesifikasyonu karşılayan text/*, daha küçüktür (0.8) ve aralarında eşittir. Mümkünse, sunucu yanıtı şu şekilde kodlayarak tepki vermelidir: JSON.

    Daha eksiksiz bir POST isteğinin aşağıdaki örneğinde, polaridad.es adlı sunucunun /iot/grabar_temperatura sayfasına HTTP protokolünün 1.1 sürümü kullanılarak erişilir. Sensoreitor-2000 adı verilen istemci, kodlanmış verileri JSON, yanıtı formatta düz metin olarak bekleyin UTF-8 İspanya'dan İspanyolca'yı sıkıştırma kullanmadan kullanmak, bu arada bunu belirtmeye gerek yok. Sunucuya gönderilen veriler 65 byte yer kaplamaktadır. Yanıt gönderilirken istemci ile sunucu arasındaki bağlantı kapatılacaktır.

    Aşağıdaki makale açıklıyor IoT nesneleri tarafından gönderilen bilgileri depolamak için MySQL veritabanı nasıl yapılandırılır

    Yorum Ekle

    Kaçırmış Olabilirsiniz